0% encontró este documento útil (0 votos)
5 vistas

Python II

El documento es una introducción a Python, un lenguaje de programación interpretado y de tipado dinámico, que se destaca por su sintaxis sencilla y su uso en diversas aplicaciones. Se abordan conceptos fundamentales como variables, operadores, cadenas, estructuras de control, funciones, y programación orientada a objetos, así como ejemplos prácticos para facilitar el aprendizaje. Además, se mencionan implementaciones de Python y su instalación, junto con herramientas básicas para ejecutar código.

Cargado por

elarjouniabde
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas

Python II

El documento es una introducción a Python, un lenguaje de programación interpretado y de tipado dinámico, que se destaca por su sintaxis sencilla y su uso en diversas aplicaciones. Se abordan conceptos fundamentales como variables, operadores, cadenas, estructuras de control, funciones, y programación orientada a objetos, así como ejemplos prácticos para facilitar el aprendizaje. Además, se mencionan implementaciones de Python y su instalación, junto con herramientas básicas para ejecutar código.

Cargado por

elarjouniabde
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 35

1.

Qué es Python
2. Por qué Python
3. Mi primer programa en Python
4. Variables
5. Operadores
6. Cadenas (strings)
7. Entrada y salida estándar
8. Conversión de tipos
9. Operadores de comparación
10. Colecciones
10.1. Listas
10.2. Diccionarios
11. Sentencias condicionales
11.1. if:
11.2. if: ... else:
11.3. if: ... elif: ... else:
12. Bucles
12.1. While
12.2. For... in
12.3. Range
13. Funciones
14. Orientación a Objetos
14.1. Clases y Objetos
14.2. Herencia
14.3. Herenciamúltiple
14.4. Encapsulación
15. Programación funcional
15.1. Funciones de orden superior
15.2. Funciones lambda
15.3. Compresión de listas
15.4. Generadores
Programación ______________________________________________________________ Python

16. Excepciones
17. Módulos y paquetes
17.1. Módulos
18. Anexo I: Revisitando Objetos
18.1. Diccionarios
18.2. Cadenas
18.3. Listas
19. Anexo II: Salida estándar completa
20. A if C else B
21. Tuplas

IES Mare Nostrum 2


Programación ______________________________________________________________ Python

1. Qué es Python
Python es un lenguaje de programación creado por Guido van Rossum a principios de los años
90 cuyo nombre está inspirado en el grupo de cómicos ingleses “Monty Python”.

Vídeo con explicaciones : https://www.youtube.com/watch?v=IimBRwHhW54

Lenguaje interpretado o de script


Un lenguaje interpretado o de script es aquel que se ejecuta utilizando un programa
intermedio llamado intérprete, en lugar de compilar el código a lenguaje máquina que pueda
comprender y ejecutar directamente una computadora (lenguajes compilados).

Python tiene, no obstante, muchas de las características de los lenguajes compilados, por lo
que se podría decir que es semi interpretado. En Python, como en Java y muchos otros lenguajes,
el código fuente se traduce a un pseudo código máquina intermedio llamado bytecode la primera
vez que se ejecuta, generando archivos .pyc o .pyo (bytecode optimizado), que son los que se
ejecutarán en sucesivas ocasiones.

Tipado dinámico
La característica de tipado dinámico se refiere a que no es necesario declarar el tipo de dato
que va a contener una determinada variable, sino que su tipo se determinará en tiempo de
ejecución según el tipo del valor al que se asigne, y el tipo de esta variable puede cambiar si se le
asigna un valor de otro tipo.

Fuertemente tipado
No se permite tratar a una variable como si fuera de un tipo distinto al que tiene, es
necesario convertir de forma explícita dicha variable al nuevo tipo previamente. Por ejemplo, si
tenemos una variable que contiene un texto (variable de tipo cadena o string) no podremos tra-
tarla como un número (sumar la cadena “9” y el número 8). En otros lenguajes el tipo de la
variable cambiaría para adaptarse al comportamiento esperado, aunque esto es más propenso a
errores.

2. Por qué Python


Desarrollar una aplicación en Python sea sencillo, muy rápido y, lo que es más importante,
divertido. La sintaxis de Python es tan sencilla y cercana al lenguaje natural que los programas
elaborados en Python parecen pseudocódigo. Por este motivo se trata además de uno de los
mejores lenguajes para comenzar a programar.

Python no es adecuado sin embargo para la programación de bajo nivel o para aplicaciones en
las que el rendimiento sea crítico.

IES Mare Nostrum 3


Programación ______________________________________________________________ Python

Algunos casos de éxito en el uso de Python son Google, Yahoo, la NASA y todas las
distribuciones Linux, en las que Python cada vez representa un tanto por ciento mayor de los
programas disponibles.

Instalación de Python
Existen varias implementaciones distintas de Python: CPython, Jython, IronPython, PyPy, etc.

CPython es la más utilizada, la más rápida y la más madura. Cuando la gente habla de Python
normalmente se refiere a esta implementación. En este caso tanto el intérprete como los módulos
están escritos en C.
Jython es la implementación en Java de Python, mientras que IronPython es su contrapartida
en C# (.NET).
PyPy, por último, como habréis adivinado por el nombre, se trata de una implementación en
Python de Python.

Herramientas básicas
Existen dos formas de ejecutar código Python. Podemos escribir líneas de código en el
intérprete y obtener una respuesta del intérprete para cada línea (sesión interactiva) o bien
podemos escribir el código de un programa en un archivo de texto y ejecutarlo.

3. Mi primer programa en Python


El primer programa que vamos a escribir en Python es el clásico Hola Mundo, y en este
lenguaje es tan simple como:
print (“Hola Mundo”)

1. Vamos a probarlo primero en el intérprete. Ejecuta python, escribe la línea anterior y


pulsa Enter. El intérprete responderá mostrando en la consola el texto Hola Mundo.
2. Vamos ahora a crear un archivo de texto. Abre tu editor de texto preferido o bien el IDE
que hayas elegido y copia la línea anterior. Guárdalo como hola.py, por ejemplo.Ejecutar
este programa es tan sencillo como indicarle el nombre del archivo a ejecutar al
intérprete de Python
python hola.py

Si utilizas Windows los archivos .py ya estarán asociados al intérprete de Python, por lo que
basta hacer doble clic sobre el archivo para ejecutar el programa. Sin embargo como este
programa no hace más que imprimir un texto en la consola, la ejecución es demasiado rápida para
poder verlo si quiera. Para remediarlo, vamos a añadir una nueva línea que espere la entrada de
datos por parte del usuario.
print (“Hola Mundo”)
input()

De esta forma se mostrará una consola con el texto Hola Mundo hasta que pulsemos Enter.

IES Mare Nostrum 4


Programación ______________________________________________________________ Python

4. Variables
Las variables son como cajitas donde podemos guardar datos. Estos datos pueden ser de
diferentes tipos: números, textos, … todo lo que se nos ocurra guardar.

Para usar una variable solo tenemos que darle un nombre y asignarle un dato.
Ejemplos:
variable = “Esto es un texto” #En python se conoce como string
numero = 27 #En python se conoce como int
decimal = 3.6 #En python se conoce como float

Hay un tipo de datos que se llama booleano y solo puede tener 2 valores: True o False. Los
usaremos cuando queramos saber si una condición se cumple, por ejemplo si pedimos la edad al
usuario y queremos saber si es mayor de 18.
verdadero = True #En python se conoce como b
falso = False

Acabamos de ver cómo asignar valores a una variable usando el operador =


Podemos también asignar el valor de una variable a otra:
Numero2 = 25

numero1 = numero2 + 3 #Con esto asignamos a numero1 el valor 28

Podremos mostrar al usuario el valor contenido en una variable de la siguiente forma:


print(numero1)

5. Operadores

Ejemplo de programa de prueba:

IES Mare Nostrum 5


Programación ______________________________________________________________ Python

1) Resuelve las siguientes cuestiones (puedes escribir todo en un archivo.py:


a. Crea un variable llamada a y asígnale el valor 12.
b. Crea una variable llamada b y asígnale el valor 0.

c. Muestra el contenido de las dos variables usando el comando print.


d. Asigna a la variable a, el valor que ya tenía +1
e. Copia el valor de la variable a en la variable b.
f. Imprime el valor de las dos variables con print().

2) Crea un programa que contenga las variables necesarias para guardar las notas de tus 3
últimos exámenes y muestra con el comando print la nota media.

3) Crea un programa que contenga 2 variables de tipo número entero, asígnales los valores 10 y 2
respectivamente y prueba los operadores /, // y % . Para probarlos y poder ver el resultado,
usa el comando print.

4) Coloca los paréntesis en su lugar correspondiente para la expresión 4 + 5 * 6 de forma que:


a. Python realice primero las sumas.
b. Python realice primero las multiplicaciones.

6. Cadenas (strings)
Las cadenas no son más que texto encerrado entre comillas simples (‘cadena’) o dobles
(“cadena”).
Las cadenas también admiten operadores como +, que funciona realizando una concatenación
de las cadenas utilizadas como operandos y *, en la que se repite la cadena tantas veces como lo
indique el número utilizado como segundo operando.
a = “uno”
b = “dos”
c=a+b # c es “unodos”
c=a*3 # c es “unounouno”

IES Mare Nostrum 6


Programación ______________________________________________________________ Python

Dentro de las comillas se pueden añadir caracteres especiales escapándolos con \, como \n, el
carácter de nueva línea, o \t, el de tabulación.
También es posible encerrar una cadena entre triples comillas (simples o dobles). De esta
forma podremos escribir el texto en varias líneas, y al imprimir la cadena, se respetarán los
saltos de línea que introdujimos
triple = “““primera linea
esto se verá en otra linea”””

Las cadenas de texto se pueden indexar (subíndices), el primer carácter de la cadena tiene
el índice 0. No hay un tipo de dato para los caracteres; un carácter es simplemente una cadena
de longitud uno:

Los índices quizás sean números negativos, para empezar a contar desde la derecha:

Podemos usar rebanadas para obtener un trozo de la cadena:

Los índices de las rebanadas tienen valores por defecto útiles; el valor por defecto para el
primer índice es cero, el valor por defecto para el segundo índice es la longitud de la cadena a
rebanar.

Las cadenas de Python no pueden ser modificadas -- son inmutables. Por eso, asignar a
una posición indexada de la cadena resulta en un error:

IES Mare Nostrum 7


Programación ______________________________________________________________ Python

Si necesitas modificarla tienes que crear una cadena nueva:

La función len() devuelve la longitud de una cadena de texto:

5) Escribe tu nombre dentro de una variable llamada nombre:

Escribe tus apellidos dentro de una variable llamada apellidos:


Crea una variable llamada nombre_completo donde se almacenen las dos variables anteriores:
nombre y apellidos.
Muestra su contenido usando print, seguramente te falte intercalar un espacio en blanco para
separar las dos palabras, arréglalo!

6) Crea un programa que muestre 4 veces seguidas una palabra o frase introducida por teclado.
Hazlo de 2 formas diferentes. Puedes utilizar la función input, aquí tienes un ejemplo de cómo
funciona: nombre = input(“Como te llamas? “)

7) Realiza lo siguiente:
 Muestra la pregunta ¿Cuál es tu nombre? y almacénala en la variable nombre.
 Guarda la primera letra del contenido de la variable nombre dentro de la variable
inicial.

8) Realiza lo siguiente:
 Crea la variable s= “Carlos Gómez Pérez” copia solo el nombre Gómez en una variable
llamada m utilizando índices. Muestra su contenido para comprobar que se ha hecho
bien.

9) Haz un programa que pida una frase al usuario y le diga cuántos caracteres tiene (puedes usar
la función len(cadena)).

10) Haz un programa que pida una frase al usuario y le diga la misma frase en mayúsculas. Fíjate
en el siguiente ejemplo como pista:

IES Mare Nostrum 8


Programación ______________________________________________________________ Python

Ten en cuenta que de la misma forma podrías usar texto.lower() para pasar a minúsculas.

Queremos hacer un programa que pida al usuario una frase cualquiera, nuestro programa debe
mostrar esa frase con los siguientes cambios:
 Cada vez que aparezca la palabra “un”, debemos sustituirlo por “1”.
 Cada vez que aparezca la palabra “coma”, debemos sustituirlo por “,”

 Cada vez que aparezca la palabra “punto”, debemos sustituirlo por “.”
Para llevar a cabo nuestra práctica debemos buscar en internet el funcionamiento de la función
replace y utilizarla, ánimo, es más fácil de lo que parece.

7. Entrada y salida estándar

nombre = input(“Como te llamas? “)


print(“Encantado, “ + nombre)

Veamos un uso avanzado de print con ejemplos:

Código Salida por pantalla

print("Hola","Adiós") Hola Adiós

print("Hola") Hola
print("Adiós")
Adiós

La función print() permite incluir variables o expresiones como argumento, lo que nos permite
combinar texto y variables:

nombre="Pepe" Me llamo Pepe y tengo 25


edad=25 años.
print("Me llamo",nombre,"y tengo",edad,"años.")

semanas=4 En 4 semanas hay 28


print("En",semanas,"semanas hay",7*semanas,"días.") días.

IES Mare Nostrum 9


Programación ______________________________________________________________ Python

8. Conversión de tipos
Con la función input conseguimos un string (un texto) que el usuario escribe por teclado. Si
queremos que ese texto se convierta en otro valor usaremos las siguientes funciones:

bool: Esta función devuelve False si el elemento incluido como argumento es cero (si se trata
de un número) o una cadena de texto vacía (si se trata de una cadena de texto). Si no es cero o
no es una cadena de texto vacía, devuelve True.

float: convierte el valor incluido como argumento en un nº con decimales (de coma flotante).
Si es texto lo convierte a nº primero.

int: en este caso convierte el argumento en un nº entero (sin decimales).


str: convierte el argumento a texto.

De esta forma, si queremos obtener un número con el que luego realiar cálculos, no sería
correcto lo siguiente:
Numero_entero=input(“Dime un número entero”)
Deberíamos convertir el resultado del input de la siguiente forma:
Numero_entero=int(input(“Dime un número entero”) )

11) ¿Qué devuelven los siguientes trozos de código? Puedes contestar directamente o bien
probarlo en Python poniéndolo en un print para ver el resultado,

Expresión Resultado

float (3)

float (4.5)

int (3.0)

int (“3”)

str (3)

12) Imprime las siguientes variables x = 10; y = 20; z = 35 en un solo comando. El resultado
debería ser: 10 20 35.

13) Ahora modifica el comando anterior para que el resultado se muestre separado por comas 10,
20, 35.

14) Ahora modifica el comando anterior para que el resultado se muestre separado por el signo
de suma 10 + 20 + 35.

IES Mare Nostrum 10


Programación ______________________________________________________________ Python

15) Ahora modifica el comando para que al final añada el signo de igual: 10 + 20 + 35 =

16) Elaborar un programa que pida al usuario dos números enteros, calcule la suma de éstos y la
muestre en la pantalla (recuerda convertir a número entero el valor que se obtiene con el
input). Incluye algún comentario con explicaciones usando el símbolo #.

17) Elaborar un programa que pida al usuario las horas trabajadas y el pago por hora. Con esos
dos datos debe calcular el sueldo neto y mostrarlo en la pantalla, sabiendo lo siguiente:

Sueldo Neto = Sueldo bruto + Beneficios – Descuentos

• Sueldo bruto = Horas trabajadas x Pago por hora.


• Beneficios = 25% del Sueldo bruto + 200 (calculamos el 25% de un número
multiplicando por 0,25)
• Descuentos = 10% del Sueldo bruto + 50.
Incluye algún comentario con explicaciones usando el símbolo #.

9. Operadores de comparación
Sirven para ver si una condición se cumple.
Devuelven un valor booleano (True / False).

Gracias a estos operadores, podremos por ejemplo crear una aplicación para comprobar si un
usuario es mayor de cierta edad para entrar a ver una película en el cine o podríamos por ejemplo
ver si la temperatura del aire es menor a 22 grados para conectar de forma automática la
calefacción.

Podemos unir varios operadores condicionales creando condiciones más complejas de la


siguiente forma:

IES Mare Nostrum 11


Programación ______________________________________________________________ Python

Veamos el siguiente ejemplo:

Será True solo si la edad es mayor a 18 y además es menor que 30.

18) Copia el programa el ejemplo anterior en Thonny y pruébalo con varios valores en la variable
edad. Prueba por ejemplo con los siguientes valores para la variable edad: 15, 18, 22, 30 y 50.

19) Cambia el programa anterior para que si la edad está entre 18 y 30 (incluídos) también sea
True.

20) Piensa el resultado que debe producir el siguiente código, luego pruébalo:

21) Prueba ahora el siguiente código y trata de entender los resultados:

IES Mare Nostrum 12


Programación ______________________________________________________________ Python

22) Ahora haz un programa que pregunte al usuario por un número, debemos mostrar el valor
True en caso de que ese número sea el 18 o el 27.

23) Modifica el programa anterior para que muestre el valor True solo si el número es distinto de
33.

10. Sentencias condicionales


10.1. if:
fav = “mnostrum.es”
if fav == “mnostrum.es”:
print(“Tienes buen gusto!” )
print(“Gracias”)
10.2. if: ... else:
if fav == “mnostrum.es”:
print(“Tienes buen gusto!” )
print(“Gracias”)
else:
print(“Vaya, que lástima”)
10.3. if: ... elif: ... else:
Equivale al Switch que hay en otros lenguajes de programación:
if numero < 0:
print(“Negativo”)
elif numero > 0: #Se lee como "Sino, si numero>0...."
print (“Positivo”)
else:
print (“Cero”)

Veamos un ejemplo:

IES Mare Nostrum 13


Programación ______________________________________________________________ Python

Fíjate bien en varios detalles:

1) La sangria

2) Elif solo se ejecuta si falla la condición anterior


3) Else solo se ejecuta si fallan las condiciones anteriores.
4) El print final se ejecuta siempre.

24) Elaborar un programa que pida al usuario tres números enteros, calcule la suma de éstos y
muestre un mensaje en la pantalla indicando si la suma es o no mayor que 50.

25) Elaborar un programa que pida al usuario tres notas de un estudiante, calcule el promedio y
muestre en la pantalla un mensaje indicando si está aprobado o no.

26) Elaborar un programa que pida al usuario un número entero e indique en pantalla si el número
es par o impar (para saber si un número es par debemos dividirlo entre 2 y ver si el resto es
cero).

27) Elaborar un programa que pida al usuario dos números (un entero que indique el número de
horas que ha trabajado durante la semana y un real que indique el salario que cobrará por
hora de trabajo).
• Mostrar en la pantalla un mensaje indicando el total que cobrará por ese
trabajo (haz el cálculo necesario).
• Si las horas trabajadas exceden las 40, el exceso deberá pagarse con un
incremento del 50% porque son horas extra.

28) Crea un programa que pregunte al usuario qué nota cree que sacará de media a final de curso.
En función de la nota numérica que el usuario diga , tu programa debe indicarle su calificación
según la siguiente tabla:

Nota numérica Calificación

IES Mare Nostrum 14


Programación ______________________________________________________________ Python

0 Pufff

1 Vergonzoso

2 Hay que esforzarse

3 Vamos que puedes

4 Insuficiente

5 Suficiente

6 Bien

7 Notable

8 Notable alto

9 Sobresaliente

10 Eres increíble 😊

29) Haz el mismo programa pero ahora el usuario puede usar decimales así que tú debes usar los
operadores booleanos (and, or, not) y los de comparación (<,>,<=,…) para conseguir lo siguiente:

Nota numérica Calificación

0.0 a 5.0 (no incluido) Insuficiente

5.0 a 6 (no incluido) Vergonzoso

6.0 a 7 (no incluido) Bien

7.0 a 9 (no incluido) Notable

9.0 a 10 Eres increíble


😊

30) Vamos a crear un conversor de escalas de temperatura. El programa debe preguntar al


usuario por una temperatura a convertir y también debe preguntar si esa temperatura está
en grados Fahrenheit o en Centígrados. El programa convertirá la temperatura a la otra
escala, veamos unos ejemplos de su funcionamiento:

Para elaborar el programa debes buscar en internet cómo se convierte de Fahrenheit a


Centígrados y viceversa.
Ten en cuenta que el usuario puede introducir la “C”’ o la “F” en minúsculas o en mayúsculas.

IES Mare Nostrum 15


Programación ______________________________________________________________ Python

(Puedes ver la solución en el vídeo que se recomendó al inicio del tema sobre el minuto 40
pero no la mires hasta que no lo hayas resuelto)

11. Colecciones
En esta lección veremos algunos tipos de colecciones de datos: listas, tuplas y diccionarios.

11.1. Listas
La lista es un tipo de colección ordenada. Sería equivalente a lo que en otros lenguajes se
conoce por arrays, o vectores.
Las listas pueden contener cualquier tipo de dato: números, cadenas, booleanos, … y también
listas. Así que nos sirven para agrupar varias variables en una.
Crear una lista es tan sencillo como indicar entre corchetes, y separados por comas, los
valores que queremos incluir en la lista:
l = [22, True, “una lista”, [1, 2]]
Podemos acceder a cada uno de los elementos de la lista escribiendo el nombre de la lista e
indicando el índice del elemento entre corchetes. Ten en cuenta sin embargo que el índice del
primer elemento de la lista es 0, y no 1:
l [0] #Sería 22
Las listas funcionan con rebanadas igual que las cadenas.
Además hay multitud de funciones interesantes, veamos 3 ejemplos:
del l [2] #Elimina el elemento que ocupa la posición 2
l.append (‘otro elemento’) #Añade “otro elemento” al final de la lista
l.insert (2,”una lista”) #Añade el elemento “una lista” en la posición 2 de nuevo.

31) Prueba y trata de comprender los siguientes 2 ejemplos:

a.

b.
32) Crea una lista que contenga tu nombre, peso, edad y altura. Muéstrala con print.
33) Crea la lista del ejercicio anterior pero ahora debes hacerlo preguntando al usuario sus datos.
Muéstrala con print.
34) ¿Cómo cambiarías el peso?
35) Elimina la tercera entrada de la lista

IES Mare Nostrum 16


Programación ______________________________________________________________ Python

36) Ahora añade tus apellidos en la segunda entrada de la lista (índice0)


#Si tienes dudas en los ejercicios puedes ver el vídeo recomendado en torno al minuto 50.

12. Bucles
Mientras que los condicionales nos permiten ejecutar distintos fragmentos de código
dependiendo de ciertas condiciones, los bucles nos permiten ejecutar un mismo fragmento de
código un cierto número de veces, mientras se cumpla una determinada condición.

12.1. While
Podemos mostrar los 4 primeros números con este simple código:

Pero esta no es la mejor manera, es preferible usar un buble While, El bucle while (mientras)
ejecuta un fragmento de código mientras se cumpla una condición.
Para usar un bucle while necesitaremos un valor inicial, de forma general en el Mundo se usa la
variable i, que en el ejemplo le daremos el valor 1:

La variable i comienza valiendo 1. Como la condición de que i es menor o igual que 5 es cierta (1
es menor que 5), se entra en el bucle. Se imprime el mensaje y se aumenta i en 1.
Ahora se vuelve a evaluar la condición, y 1 sigue siendo menor o igual que 5, por lo que se
vuelve a ejecutar el código que imprime el mensaje y se aumenta i en 1. El bucle continuará
ejecutándose hasta que i sea mayor a 5, momento en el cual la condición dejará de cumplirse y el
programa continuaría ejecutando las instrucciones siguientes al bucle.
Ahora imaginemos que se nos olvidara escribir la instrucción que aumenta la i. En ese caso
nunca se dejaría de cumplir la condición, y el bucle continuaría indefinidamente escribiendo en
pantalla siempre el número 1.

37) Escribe las líneas que faltan en el código para que se escriba del 1 al 12.
a=0

IES Mare Nostrum 17


Programación ______________________________________________________________ Python

print(a)

38) Modifica el código anterior para que se cree un bucle infinito (que nunca se acabe).

39) Escribe la línea de código que falta de forma que el programa pregunte por el nombre, hasta
que se escriba Luis.

nombre = input(“Escribe tu nombre: “)
print(‘¡Hola Luis!’)

12.2. For... in
For se utiliza como una forma genérica de iterar sobre una secuencia (como por ejemplo una
lista):
lista = [“uno”, “dos”, “tres”]
for elemento in lista:
print(elemento)
Leamos la cabecera del bucle como si de lenguaje natural se tratara: “para cada elemento en
lista”. Y esto es exactamente lo que hace el bucle: para cada elemento que tengamos en la lista,
ejecuta estas líneas de código.

40) Crea un programa que haga exactamente lo mismo que el ejemplo anterior pero usando un
while en vez de un for. Razona qué opción te parece mejor¿Qué mostrará en pantalla el
programa siguiente?

12.3. Range
Range genera una secuencia de números que suele ser utilizada dentro del buble for. Esta
secuencia se genera ‘al vuelo’, después del for no queda rastro. Veamos su funcionamiento con
ejemplos:
>>>range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>range(5, 10)
[5, 6, 7, 8, 9]
>>>range(0, 10, 3)
[0, 3, 6, 9]
>>>range(0, -10, -1)
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>>range(5, -5, -2)
[5, 3, 1, -1, -3]

Ejemplo:
>>> for i in range(3):
>>>print (i)

IES Mare Nostrum 18


Programación ______________________________________________________________ Python

0
1
2
Para que la siguiente impresión se realizara en la misma línea tendríamos que colocar una coma
al final de la sentencia:
>>> for i in range(3): # range(3) genera 3 números (0,1,2)
>>>print (i,)
012

41) ¿Qué mostrará en pantalla el programa siguiente?


for n in range(1000):
if n == 3:
print(n)

42) Escribe el código para un bucle tipo for el cual imprime del número 0 hasta el 7. Utiliza una
variable auxiliar llamada n.

43) Modifica el rango del bucle anterior para que ahora imprima del número 1 hasta el 12.

44) Ahora modifica el bucle para que escriba de 3 en 3 hasta 99 números. Piensa con cuidado los
valores iniciales y finales del rango.

45) Programa un bucle que haga una cuenta atrás de 10 hasta 1 y por último escriba el mensaje
‘¡Despegue!’.

46) Crea un programa que muestre la tabla de multiplicar del 5.

47) Crea un programa que muestre la tabla de multiplicar que diga el usuario.

48) Crea un programa que muestre las tablas de multiplicar del 1 al 5, para ello debes usar dos
bucles for (uno dentro del otro). Piénsalo!.

13. Funciones
Una función es un fragmento de código con un nombre asociado que realiza una serie de
tareas y devuelve un valor.
En Python no existen los procedimientos, cuando el programador no especifica un valor de
retorno la función devuelve el valor None (nada)

IES Mare Nostrum 19


Programación ______________________________________________________________ Python

Además de ayudarnos a programar y depurar dividiendo el programa en partes las funciones


también permiten reutilizar código.
def mi_funcion(param1, param2):
print(param1 )
print(param2)
Es decir, la palabra clave def seguida del nombre de la función y entre paréntesis los
argumentos separados por comas. A continuación, en otra línea, indentado y después de los dos
puntos tendríamos las líneas de código que conforman el código a ejecutar por la función.
También podemos encontrarnos con una cadena de texto como primera línea del cuerpo de la
función. Estas cadenas se conocen con el nombre de docstring (cadena de documentación) y
sirven, como su nombre indica, a modo de documentación de la función.
def mi_funcion(param1, param2):
“““Esta funcion imprime los dos valores pasados
como parametros”””
print(param1 )
print(param2)
Volviendo a la declaración de funciones, es importante aclarar que al declarar la función lo
único que hacemos es asociar un nombre al fragmento de código que conforma la función, de
forma que podamos ejecutar dicho código más tarde referenciándolo por su nombre. Es decir, a
la hora de escribir estas líneas no se ejecuta la función. Para llamar a la función (ejecutar su
código) se escribiría:
mi_funcion(“hola”, 2)
Es decir, el nombre de la función a la que queremos llamar seguido de los valores que
queramos pasar como parámetros entre paréntesis.
Sin embargo también es posible modificar el orden de los parámetros si indicamos el nombre
del parámetro al que asociar el valor a la hora de llamar a la función:
mi_funcion(param2 = 2, param1 = “hola”)
El número de valores que se pasan como parámetro al llamar a la función tiene que coincidir
con el número de parámetros que la función acepta según la declaración de la función. En caso
contrario Python se quejará.

Los valores por defecto para los parámetros se definen situando un signo igual después del
nombre del parámetro y a continuación el valor por defecto:
def imprimir(texto, veces = 1):
print(veces * texto)
En el ejemplo anterior si no indicamos un valor para el segundo parámetro se imprimirá una
sola vez la cadena que le pasamos como primer parámetro:
>>> imprimir(“hola”)
hola
si se le indica otro valor, será este el que se utilice:

IES Mare Nostrum 20


Programación ______________________________________________________________ Python

>>> imprimir(“hola”, 2)
Holahola

Para definir funciones con un número variable de argumentos colocamos un último parámetro
para la función cuyo nombre debe precederse de un signo *:
def varios(param1, param2, *otros):
for val in otros:
print (val)
varios(1, 2)
varios(1, 2, 3)
varios(1, 2, 3, 4)
Esta sintaxis funciona creando una tupla (de nombre otros en el ejemplo) en la que se
almacenan los valores de todos los parámetros extra pasados como argumento. Para la primera
llamada, varios(1, 2), la tupla otros estaría vacía dado que no se han pasado más parámetros que
los dos definidos por defecto, por lo tanto no se imprimiría nada. En la segunda llamada otros
valdría (3, ), y en la tercera (3, 4).
Lo que se le pasa a la función como parámetros son copias de los valores y no las variables en
si. Si quisiéramos modificar el valor de uno de los argumentos y que estos cambios se reflejaran
fuera de la función tendríamos que pasar el parámetro por referencia.
def f(x, y):
x=x+3
y.append(23)
print (x, y)
x = 22
y = [22]
f(x, y)
print(x, y)
El resultado de la ejecución de este programa sería
25 [22, 23]
22 [22, 23]
Como vemos la variable x no conserva los cambios una vez salimos de la función porque los
enteros son inmutables en Python. Sin embargo la variable y si los conserva, porque las listas son
mutables.
En resumen: los valores mutables se comportan como paso por referencia, y los inmutables
como paso por valor.
Veamos por último cómo devolver valores, para lo que se utiliza la palabra clave return:
def sumar(x, y):
return x + y
print(sumar(3, 2))
También podríamos pasar varios valores que retornar a return.

IES Mare Nostrum 21


Programación ______________________________________________________________ Python

def f(x, y):


return x * 2, y * 2
a, b = f(1, 2)
Sin embargo esto no quiere decir que las funciones Python puedan devolver varios valores, lo
que ocurre en realidad es que Python crea una tupla al vuelo cuyos elementos son los valores a
retornar, y esta única variable es la que se devuelve.

49) Define una función llamada agradecimientoque imprima‘Hola’ seguido del nombre.

50) Cómo harías para ejecutar esta función en Python para decir hola a Álvaro? (lo que se pide es
que escribas la llamada a la función)
51) Una compañía de helados ha creado un código para que se le introduzca el saber del helado y
automáticamente indique el precio:
def precio(sabor):
if sabor == ‘chocolate’:
precio = 1.99
else:
precio = 2.49
return precio

Respecto al ejercicio anterior, ¿qué se mostrará por pantalla con las siguientes
instrucciones?
a. print(precio(‘banana’))
b. print(precio(‘chocolate’))
c. print(precio(‘vainilla’))

52) Crea un programa que muestre la tabla de multiplicar que le diga el usuario pero en este caso
debes hacer uso de una función que se llame tabla y que tenga como argumento la tabla de
multiplicar que el usuario haya elegido, la función se verá algo así como:
def tabla ( num_Tabla)
………. #completa el resto

13.1. Diccionarios
Los diccionarios relacionan una clave con un valor. Por ejemplo, veamos un diccionario con
películas y directores:
d = {“Love Actually “: “Richard Curtis”, “Kill Bill”: “Tarantino”, “Amélie”:
“Jean-Pierre Jeunet”}
Como clave podemos utilizar cualquier valor inmutable: podríamos usar números, cadenas,
booleanos, tuplas, … pero no listas o diccionarios, dado que son mutables.
La diferencia principal entre los diccionarios y las listas o las tuplas es que a los valores
almacenados en un diccionario se les accede no por su índice, porque de hecho no tienen orden,
sino por su clave, utilizando de nuevo el operador [].
d[“Love Actually “] # devuelve “Richard Curtis”

IES Mare Nostrum 22


Programación ______________________________________________________________ Python

Al igual que en las listas también se puede utilizar el [ ] para reasignar valores.
d[“Kill Bill”] = “Quentin Tarantino”
Sin embargo en este caso no se puede utilizar slicing (rebanadas), entre otras cosas porque
los diccionarios no son secuencias.

53) Crea un diccionario con al menos 10 palabras en castellano y su correspondiente traducción al


valenciano. Ahora pregunta al usuario por una palabra para traducir. El programa debe dar la
traducción a la palabra que diga el usuario.

14. Orientación a Objetos


La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma
de programación en el que los conceptos del mundo real relevantes para nuestro problema se
modelan a través de clases y objetos, y en el que nuestro programa consiste en una serie de
interacciones entre estos objetos.

14.1. Clases y Objetos


Un ejemplo de objeto podría ser un coche, en el que tendríamos atributos como la marca, el
número de puertas o el tipo de carburante y métodos como arrancar y parar. O bien cualquier
otra combinación de atributos y métodos según lo que fuera relevante para nuestro programa.
Una clase, por otro lado, no es más que una plantilla genérica a partirde la cuál instanciar los
objetos; plantilla que es la que define qué atributos y métodos tendrán los objetos de esa clase.
Volviendo a nuestro ejemplo: en el mundo real existe un conjunto de objetos a los que
llamamos coches y que tienen un conjunto de atributos comunes y un comportamiento común, esto
es a lo que llamamos clase.

En Python las clases se definen mediante la palabra clave class seguida del nombre de la
clase, dos puntos (:) y a continuación, indentado, el cuerpo de la clase. Como en el caso de las
funciones, si la primera línea del cuerpo se trata de una cadena de texto, esta será la cadena de
documentación de la clase o docstring.
class Coche:
“””Abstraccion de los objetos coche.”””
def __init__(self, gasolina):
self.gasolina = gasolina
print(“Tenemos”, gasolina, “litros” )
def arrancar(self):
if self.gasolina> 0:
print (“Arranca” )
else:
print(“No arranca” )
def conducir(self):
if self.gasolina> 0:
self.gasolina -= 1

IES Mare Nostrum 23


Programación ______________________________________________________________ Python

print(“Quedan”, self.gasolina, “litros” )


else:
print(“No se mueve”)

Lo primero que llama la atención en el ejemplo anterior es el nombre tan curioso que tiene el
método __init__. Este nombre es una convención y no un capricho. El método __init__, con una
doble barra baja al principio y final del nombre, se ejecuta justo después de crear un nuevo
objeto a partir de la clase, proceso que se conoce con el nombre de instanciación. El método
__init__ sirve, como sugiere su nombre, para realizar cualquier proceso de inicialización que sea
necesario.
Como vemos el primer parámetro de __init__ y del resto de métodos de la clase es siempre
self. Esta es una idea inspirada en Modula-3 y sirve para referirse al objeto actual. Este
mecanismo es necesario para poder acceder a los atributos y métodos del objeto diferenciando,
por ejemplo, una variable local mi_var de un atributo del objeto self.mi_var.
Si volvemos al método __init__ de nuestra clase Coche veremos cómo se utiliza self para
asignar al atributo gasolina del objeto (self.gasolina) el valor que el programador especificó para
el parámetro gasolina. El parámetro gasolina se destruye al final de la función, mientras que el
atributo gasolina se conserva (y puede ser accedido) mientras el objeto viva.
Para crear un objeto se escribiría el nombre de la clase seguido de cualquier parámetro que
sea necesario entre paréntesis. Estos parámetros son los que se pasarán al método __init__, que
como decíamos es el método que se llama al instanciar la clase.
mi_coche = Coche(3)
Os preguntareis entonces cómo es posible que a la hora de crear nuestro primer objeto
pasemos un solo parámetro a __init__, el número 3, cuando la definición de la función indica
claramente que precisa de dos parámetros (self y gasolina). Esto es así porque Python pasa el
primer argumento (la referencia al objeto que se crea) automágicamente.
Ahora que ya hemos creado nuestro objeto, podemos acceder a sus atributos y métodos
mediante la sintaxis objeto.atributo y objeto.metodo():
>>>print(mi_coche.gasolina)
3
>>>mi_coche.arrancar()
Arranca
>>>mi_coche.conducir()
Quedan 2 litros
>>>mi_coche.conducir()
Quedan 1 litros
>>>mi_coche.conducir()
Quedan 0 litros
>>>mi_coche.conducir()
No se mueve
>>>mi_coche.arrancar()

IES Mare Nostrum 24


Programación ______________________________________________________________ Python

No arranca
>>>print(mi_coche.gasolina)
0
Como último apunte recordar que en Python, como ya se comentó en repetidas ocasiones
anteriormente, todo son objetos.

14.2. Herencia
Hay tres conceptos que son básicos para cualquier lenguaje de programación orientado a
objetos: el encapsulamiento, la herencia y el polimorfismo.
En un lenguaje orientado a objetos cuando hacemos que una clase (subclase) herede de otra
clase (superclase) estamos haciendo que la subclase contenga todos los atributos y métodos que
tenía la superclase. No obstante al acto de heredar de una clase también se le llama a menudo
“extender una clase”.
Supongamos que queremos modelar los instrumentos musicales de una banda, tendremos
entonces una clase Guitarra, una clase Batería, una clase Bajo, etc. Cada una de estas clases
tendrá una serie de atributos y métodos, pero ocurre que, por el mero hecho de ser instrumentos
musicales, estas clases compartirán muchos de sus atributos y métodos; un ejemplo sería el
método tocar().

Es más sencillo crear un tipo de objeto Instrumento con las atributos y métodos comunes e
indicar al programa que Guitarra, Batería y Bajo son tipos de instrumentos, haciendo que hereden
de Instrumento.
Para indicar que una clase hereda de otra se coloca el nombre de la clase de la que se hereda
entre paréntesis después del nombre de la clase:
class Instrumento:
def __init__(self, precio):
self.precio = precio
def tocar(self):
print(“Estamos tocando musica” )
def romper(self):
print(“Eso lo pagas tu” )
print(“Son”, self.precio, “$$$”)
classBateria(Instrumento):
pass
class Guitarra(Instrumento):
pass

Como Bateria y Guitarra heredan de Instrumento, ambos tienen un método tocar() y un


método romper(), y se inicializan pasando un parámetro precio. Pero, ¿qué ocurriría si quisiéramos
especificar un nuevo parámetro tipo_cuerda a la hora de crear un objeto Guitarra? Bastaría con
escribir un nuevo método __init__ para la clase Guitarra que se ejecutaría en lugar del __init__
de Instrumento. Esto es lo que se conoce como sobreescribir métodos.

IES Mare Nostrum 25


Programación ______________________________________________________________ Python

14.3. Herenciamúltiple
En Python, a diferencia de otros lenguajes como Java o C#, se permite la herencia múltiple,
es decir, una clase puede heredar de varias clases a la vez. Por ejemplo, podríamos tener una
clase Cocodrilo que heredara de la clase Terrestre, con métodos como caminar() y atributos como
velocidad_caminar y de la clase Acuatico, con métodos como nadar() y atributos como
velocidad_nadar. Basta con enumerar las clases de las que se hereda separándolas por comas:
class Cocodrilo(Terrestre, Acuatico):
pass
En el caso de que alguna de las clases padre tuvieran métodos con el mismo nombre y número
de parámetros las clases sobreescribirían la implementación de los métodos de las clases más a
su derecha en la definición.
class Terrestre:
def desplazar(self):
print(“El animal anda”)
classAcuatico:
def desplazar(self):
print(“El animal nada”)
class Cocodrilo(Terrestre, Acuatico):
pass
c = Cocodrilo()
c.desplazar()

14.4. Encapsulación
La encapsulación se refiere a impedir el acceso a determinados métodos y atributos de los
objetos estableciendo así qué puede utilizarse desde fuera de la clase.
Java utilizando modificadores de acceso que definen si cualquiera puede acceder a esa
función o variable (public) o si está restringido el acceso a la propia clase (private).

En el acceso a una variable o función viene determinado por su nombre: si el nombre comienza
con dos guiones bajos (y no termina también con dos guiones bajos) se trata de una variable o
función privada, en caso contrario es pública.

class Ejemplo:
defpublico(self):
print(“Publico” )
def __privado(self):
print(“Privado”)
ej = Ejemplo()
ej.publico()

IES Mare Nostrum 26


Programación ______________________________________________________________ Python

ej.__privado()

el método o atributo no es realmente privado, y podemos acceder a él mediante una pequeña


trampa:
ej._Ejemplo__privado()

En ocasiones también puede suceder que queramos permitir el acceso a algún atributo de
nuestro objeto, pero que este se produzca de forma controlada. Para esto podemos escribir
métodos cuyo único cometido sea este, métodos que normalmente, por convención, tienen
nombres como getVariable y setVariable; de ahí que se conozcan también con el nombre de
getters y setters.
class Fecha():
def __init__(self):
self.__dia = 1
def getDia(self):
return self.__dia
def setDia(self, dia):
if dia> 0 and dia< 31:
self.__dia = dia
else:
print(“Error”)
mi_fecha = Fecha()
mi_fecha.setDia(33)

Las clases tienen muchos métodos, cabe destacar el siguiente:


__init__(self, args)
Método llamado después de crear el objeto para realizar tareas de inicialización.

15. Programación funcional


15.1. Funciones de orden superior
Se refiere a la posibilidad de pasar funciones como parámetros de otras funciones o devolver
funciones como valor de retorno.
Veamos un pequeño ejemplo
def saludar(lang):
defsaludar_es():
print(“Hola” )
defsaludar_en():
print(“Hi” )
defsaludar_fr():

IES Mare Nostrum 27


Programación ______________________________________________________________ Python

print(“Salut” )
lang_func = { “es”: saludar_es,
“en”: saludar_en,
“fr”: saludar_fr}
returnlang_func[lang]
f = saludar(“es”)
f()

54) Prueba el código anterior, trata de comprenderlo y documéntalo añadiendo comentarios.

15.2. Funciones lambda


El operador lambda sirve para crear funciones anónimas en línea (es decir, sin nombre), estas
no podrán ser referenciadas más tarde.
Las funciones lambda se construyen mediante el operador lambda, los parámetros de la
función separados por comas (atención, SIN paréntesis), dos puntos (:) y el código de la función.
l = [1, 2, 3]
l2 = filter(lambda n: n % 2.0 == 0, l)

Sería lo mismo que:


defes_par(n):
return (n % 2.0 == 0)
l = [1, 2, 3]
l2 = filter(es_par, l)

15.3. Compresión de listas


Hay una serie de funciones muy útiles sobre listas como map, filter y reduce, pero estas
funciones ya no estarán listas por defecto a partir de Python 3. Todas se pueden sustituir
mediante la compresión de listas que consiste en crear listas a partir de otras.
El código siguiente equivale a lo que hacía la función map y se lee así "para cada n en la lista l
haz n**2":
l = [1, 2, 3]
l2 = [n ** 2 for n in l]
Si queremos conservar solo los números pares (función filter):
l2 = [n for n in l if n % 2.0 == 0]

15.4. Generadores
Funcionan de forma muy similar a la comprensión de listas pero no devuelve una lista sino un
generador. De hecho su sintaxis es exactamente igual, a excepción de que se utilizan paréntesis
en lugar de corchetes:

IES Mare Nostrum 28


Programación ______________________________________________________________ Python

l2 = (n ** 2 for n in l)
Un generador es una clase especial de función que genera valores sobre los que iterar. Para
devolver el siguiente valor sobre el que iterar se utiliza la palabra clave yield en lugar de return.
Veamos por ejemplo un generador que devuelva números de n a m con un salto s.
defmi_generador(n, m, s):
while(n <= m):
yield n
n += s
El generador se puede utilizar en cualquier lugar donde se necesite un objeto iterable. Por
ejemplo en un for-in:
for n in mi_generador(0, 5, 1):
print(n)
Peor el código anterior no se queda en memoria, solo genera un valor cada vez que se necesita,
es posible crear una lista a partir de un generador mediante la función list:
lista = list(mi_generador)

16. Excepciones
Las excepciones son errores detectados por Python durante la ejecución del programa.
Cuando el intérprete se encuentra con una situación excepcional, como el intentar dividir un
número entre 0 o el intentar acceder a un archivo que no existe, este genera o lanza una
excepción, informando al usuario de que existe algún problema.
Si la excepción no se captura el flujo de ejecución se interrumpe.
Veamos un pequeño programa que lanzaría una excepción al intentar dividir 1 entre 0.
def division(a, b):
return a / b
def calcular():
division(1, 0)
calcular()
Si lo ejecutamos obtendremos el siguiente mensaje de error:
$ python ejemplo.py
Traceback (most recent call last):
File “ejemplo.py”, line 7, in
calcular()
File “ejemplo.py”, line 5, in calcular
division(1, 0)
File “ejemplo.py”, line 2, in divisiona / b
ZeroDivisionError: integerdivisionor modulo byzero
Traceback consiste en una lista con las llamadas que provocaron la excepción.

IES Mare Nostrum 29


Programación ______________________________________________________________ Python

El error estuvo causado por la llamada a calcular() de la línea 7, que a su vez llama a division(1, 0) en la línea 5 y en
última instancia por la ejecución de la sentencia a / b de la línea 2 de division.
A continuación vemos el tipo de la excepción, ZeroDivisionError, junto a una descripción del error: “integerdivisionor
modulo byzero” (módulo o división entera entre cero).

En Python se utiliza una construcción try-except para capturar y tratar las excepciones.
try:
f = file(“archivo.txt”) #Código q puede petar
except:
print(“El archivo no existe” #Tratamiento)
Python permite utilizar varios except para un solo bloque try, de forma que podamos dar un
tratamiento distinto a la excepción dependiendo del tipo de excepción de la que se trate.
try:
num = int(“3a”)
print (“no_existe”)
exceptNameError:
print(“La variable no existe”)
exceptValueError:
print(“El valor no es un numero”)
La construcción try-except puede contar además con una clausulaelse
try:
num = 33
except:
print(“Hubo un error!”)
else:
print(“Todo esta bien”)

Podemos ver una lista completa de las excepciones en la página 68 del libro de referencia:
https://duenaslerin.com/tico2/pdfs/python-para-todos.pdf.

Aquí tenemos un ejemplo de uso de int y de str, además de cómo manejar una excepción para
evitar errores graves:
try:
edad = input(“Cuantos anyos tienes? “)
dias = int(edad) * 365
print(“Has vivido “ + str(dias) + “ dias”)
except ValueError:
print(“Eso no es un número”)

IES Mare Nostrum 30


Programación ______________________________________________________________ Python

55) Prueba el ejemplo anterior (el de try…except), ejecútalo y fíjate en lo que pasa cuando
introduces un valor que no es un número.

17. Módulos y paquetes


17.1. Módulos
Para facilitar el mantenimiento y la lectura los programas demasiado largos pueden dividirse
en módulos, agrupando elementos relacionados.
Vamos a crear nuestro primer módulo entonces creando un pequeño archivo modulo.py con el
siguiente contenido:
defmi_funcion():
print(“una funcion”)
class MiClase:
def __init__(self):
print(“una clase”)
print(“un modulo”)
Si quisiéramos utilizar la funcionalidad definida en este módulo en nuestro programa
tendríamos que importarlo.

Creemos un archivo programa.py en el mismo directorio


import modulo
modulo.mi_funcion()
El import no solo hace que tengamos disponible todo lo definido dentro del módulo, sino que
también ejecuta el código del módulo. Por esta razón nuestro programa, además de imprimir el
texto “una funcion” al llamar a mi_funcion, también imprimiría el texto “un modulo”, debido al
print del módulo importado. No se imprimiría, no obstante, el texto “una clase”, ya que lo que se
hizo en el módulo fue tan solo definir de la clase, no instanciarla.
La clausulaimport también permite importar varios módulos en la misma línea.

18. Anexo I: Revisitando Objetos


En python todo con objetos: números, booleanos, cadenas de texto, diccionarios, listas y
tuplas.
Veremos a continuación algunos métodos útiles de estos objetos. Evidentemente, no es
necesario memorizarlos, pero si, al menos, recordar que existen para cuando sean necesarios.

18.1. Diccionarios
D.get(k[, d])
Busca el valor de la clave k en el diccionario. Es equivalente a utilizar D[k] pero al utilizar
este método podemos indicar un valor a devolver por defecto si no se encuentra la clave,
mientras que con la sintaxis D[k], de no existir la clave se lanzaría una excepción.

IES Mare Nostrum 31


Programación ______________________________________________________________ Python

D.has_key(k)
Comprueba si el diccionario tiene la clave k. Es equivalente a la sintaxis k in D.
D.items()
Devuelve una lista de tuplas con pares clave-valor.
D.keys()
Devuelve una lista de las claves del diccionario.

D.pop(k[, d])
Borra la clave k del diccionario y devuelve su valor. Si no se encuentra dicha clave se devuelve
d si se especificó el parámetro o bien se lanza una excepción.
D.values()
Devuelve una lista de los valores del diccionario.

18.2. Cadenas
S.count(sub[, start[, end]])
Devuelve el número de veces que se encuentra sub en la cadena. Los parámetros opcionales
start y end definen una subcadena en la que buscar.
S.find(sub[, start[, end]])

Devuelve la posición en la que se encontró por primera vez sub en la cadena o -1 si no se


encontró.
S.join(sequence)
Devuelve una cadena resultante de concatenar las cadenas de la secuencia seq separadas por
la cadena sobre la que se llama el método.
S.partition(sep)
Busca el separador sep en la cadena y devuelve una tupla con la subcadena hasta dicho
separador, el separador en si, y la subcadena del separador hasta el final de la cadena. Si no se
encuentra el separador, la tupla contendrá la cadena en si y dos cadenas vacías.
S.replace(old, new[, count])
Devuelve una cadena en la que se han reemplazado todas las ocurrencias de la cadena old por
la cadena new. Si se especifica el parámetro count, este indica el número máximo de ocurrencias
a reemplazar.
S.split([sep [,maxsplit]])
Devuelve una lista conteniendo las subcadenas en las que se divide nuestra cadena al dividirlas
por el delimitador sep. En el caso de que no se especifique sep, se usan espacios. Si se especifica
maxsplit, este indica el número máximo de particiones a realizar.

18.3. Listas
L.append(object)
Añade un objeto al final de la lista.

IES Mare Nostrum 32


Programación ______________________________________________________________ Python

L.count(value)
Devuelve el número de veces que se encontró value en la lista.
L.extend(iterable)
Añade los elementos del iterable a la lista.
L.index(value[, start[, stop]])
Devuelve la posición en la que se encontró la primera ocurrencia de value. Si se especifican,
start y stop definen las posiciones de inicio y fin de una sublista en la que buscar.
L.insert(index, object)
Inserta el objeto object en la posición index.
L.pop([index])
Devuelve el valor en la posición index y lo elimina de la lista. Si no se especifica la posición, se
utiliza el último elemento de la lista.
L.remove(value)

Eliminar la primera ocurrencia de value en la lista.


L.reverse()
Invierte la lista. Esta función trabaja sobre la propia lista desde la que se invoca el método,
no sobre una copia.
L.sort(cmp=None, key=None, reverse=False)
Ordena la lista. Si se especifica cmp, este debe ser una función que tome como parámetro
dos valores x e y de la lista y devuelva -1 si x es menor que y, 0 si son iguales y 1 si x es mayor
que y.

El parámetro reverse es un booleano que indica si se debe ordenar la lista de forma inversa,
lo que sería equivalente a llamar primero a L.sort() y después a L.reverse().
Por último, si se especifica, el parámetro key debe ser una función que tome un elemento de
la lista y devuelva una clave a utilizar a la hora de comparar, en lugar del elemento en si.

19. Anexo II: Salida estándar completa


Código Salida por pantalla

print("Hola","Adiós") Hola Adiós

print("Hola""Adiós") HolaAdios

print("Hola") Hola
print("Adiós")
Adiós

IES Mare Nostrum 33


Programación ______________________________________________________________ Python

print("Hola") Hola
print()
print("Adiós")
Adiós

Por defecto Python añade un salto de línea al final pero se puede modificar lo que queramos que se
añada al final, por ejemplo una cadena vacía con el argumento end="":

print("Hola",end="") HolaAdios
print("Adiós")

La función print() permite incluir variables o expresiones como argumento, lo que nos permite
combinar texto y variables:

nombre="Pepe" Me llamo Pepe y tengo 25


edad=25 años.
print("Me llamo",nombre,"y tengo",edad,"años.")

semanas=4 En 4 semanas hay 28


print("En",semanas,"semanas hay",7*semanas,"días.") días.

Los caracteres especiales empiezan por una contrabarra (\).

print("Las comillas dobles \" Las comillas dobles "


delimitan cadenas.") delimitan cadenas.
print("Una línea\nOtra línea") Una línea
Otra línea
print("1\t2\t3") 1 2 3

De acuerdo con la guía de estilo oficial de Python, las líneas de código no deben contener más de
79 caracteres, para facilitar la legibilidad. Si un programa contiene cadenas muy largas, las
cadenas se pueden simplemente partir en varias cadenas:

20. A if C else B
Una forma compacta de expresar un if…else
var = “par” if (num % 2 == 0) else “impar”

IES Mare Nostrum 34


Programación ______________________________________________________________ Python

21. Tuplas
Similares a las listas pero son inmutables, ocupan menos en memoria y son más rápidas.
La forma de definirla, para lo que se utilizan paréntesis en lugar de corchetes.
t = (1, 2, True, “python”) #Los paréntesis no son obligatorios pero dan claridad

Además hay que tener en cuenta que es necesario añadir una coma para tuplas de un solo
elemento, para diferenciarlo de un simple entero entre paréntesis.
t = (1,)

Podemos utilizar el operador [] debido a que las tuplas, al igual que las listas, forman parte de
un tipo de objetos llamados secuencias. Permitirme un pequeño inciso para indicaros que las
cadenas de texto también son secuencias, por lo que no os extrañará que podamos hacer cosas
como estas:
c = “hola mundo”
c[0] # h
c[5:] # mundo
c[::3] # hauo --> significa una letra de cada 3
Volviendo al tema de las tuplas, su diferencia con las listas estriba en que las tuplas no poseen
estos mecanismos de modificación a través de funciones tan útiles de los que hablábamos al final
de la anterior sección.

Además son inmutables, es decir, sus valores no se pueden modificar una vez creada; y tienen
un tamaño fijo.

IES Mare Nostrum 35

También podría gustarte