Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Dia 3
Repaso
Estructuras de control
Las estructuras de control permiten modificar el flujo de ejecución de
las instrucciones de un programa. Se clasifica en:
• Selectivas: Ejecutan un bloque de instrucciones u otro, o saltan a un
subprograma o subrutina según se cumpla o no una condición.
• De simple selección.
• De selección múltiple.
• Iterativas: También llamadas de repetición, inician o repiten un
bloque de instrucciones si se cumple una condición o mientras se
cumple una condición.
• Precondicionales.
• Poscondicionales.
Estructuras de control - Selectivas
En Python, el bloque de código que comprende la estructura debe ir
identado.
if condición:
# si la condición es verdadera
# sentencia
else:
# si la condición es falsa
# sentencia
Estructuras de control - Selectivas
Múltiple Ternario
if condición1: esVerdadero() if condición1 else esFalso()
# sentencia
elif condición2:
# sentencia
elif condición3:
# sentencia
else:
# sentencia
Estructuras de control - Selectivas
Si necesitas comparar un mismo valor con muchas constantes, o
comprobar que tenga un tipo o atributos específicos, la sentencia
match recibe una expresión y compara su valor con patrones sucesivos
dados en uno o más bloques case.
match valor:
case a:
# sentencia
case b:
# sentencia
case _:
# sentencia
Estructuras de control - iterativas
La sentencia “for” de Python itera sobre los ítems de cualquier
secuencia.
Si se necesita iterar sobre una secuencia de números, es apropiado
utilizar la función integrada “range()”, la cual genera progresiones
aritméticas.
while precondición:
# sentencia
Sentencia “else”en estructuras iterativas
Las sentencias de bucle pueden tener una cláusula else que es ejecutada cuando el
bucle termina:
• después de agotar el iterable (con for)
• cuando la condición se hace falsa (con while).
Este se ejecuta siempre que no exista la sentencia “break” o se ocasione una
excepción en el bucle.
while precondición: for var in range(n):
# sentencia # sentencia
else: else:
# si la condición es falsa # si la condición es falsa
# sentencia # sentencia
Estructuras de control - iterativas
Instrucciones especiales:
• continue: Interrumpe la ejecución de la iteración actual del bucle y
continua con la siguiente iteración.
• break: Interrumpe la ejecución del bucle.
Sentencia “pass”
La sentencia “pass” no hace nada. Se puede usar cuando una sentencia
es requerida por la sintaxis, pero el programa no requiere ninguna
acción.
print(mi_función()) → algo
Definición
Las funciones sin la sentencia “return” si retornan un valor, este se
llama “None”, indica que no está predefinido.
def mi_función():
pass
print(mi_función()) → None
Definición
Notación PEP 483: las anotaciones de funciones son información
completamente opcional sobre los tipos usadas en funciones definidas
por el usuario, se almacenan en el atributo __annotations__
print(mi_función.__annotations__)
Argumentos por omisión
Permite crea una función que puede ser llamada con menos
argumentos de los que permite. Ejemplo:
def divisible(dividendo: float, divisor: float = 2) -> bool:
return dividendo % divisor == 0
print(divisible(5)) → False
Descripcion…
“””
pass
print(mi_función.__doc__)
Alcance de variables
La ejecución de una función introduce una nueva tabla de símbolos usada para las
variables locales de la función.
Todas las asignaciones de variables en la función almacenan el valor en la tabla de
símbolos local, así mismo la referencia a variables mira:
1. La tabla de símbolos local.
2. La tabla de símbolos local de las funciones externas.
3. La tabla de símbolos global.
4. La tabla de nombres predefinidos.
La sentencia “global” permite declarar una variable global dentro de una función:
def mi_función():
global varGlobal
varGlobal = 123
mi_funcion()
print(varGlbal)
Parámetros reales
• Los parámetros reales o “argumentos” para una llamada de función
se introducen en la tabla de símbolos local de la función llamada
cuando ésta se llama
• Los argumentos se pasan usando ”llamada por valor” (el valor es
siempre una referencia al objeto, no el valor del objeto)
Parámetros variables
Se profundizará en la próxima clase sobre su declaración y uso.
• Permiten obtener tuplas y diccionarios
• Cuando un parámetro formal esté de la forma **kwargs al final,
recibe un diccionario.
• Cuando un parámetro formal esté de la forma *args , recibe una
tupla conteniendo los argumentos posicionales.
Área = pi x radio^2
Escriba un programa separado para realizar cada uno de estos ejercicios. Guarde
cada programa con un nombre de archivo que siga las convenciones:
• No utilizar espacios, en su lugar utilice guion o guion bajo.
• La extensión del archivo debe terminar en “.py”
Ejercicio
Elabore una función que retorne la letra más utilizada en un texto que
obtenga como parámetro, luego permita al usuario ingresar una cadena e
imprima la letra más utilizada.
def funcion_recursiva(argumentos):
if caso_base:
# Código para el caso base
else:
# Código para el caso general, que incluye la llamada recursiva
Ejercicio
Escribir una función recursiva que reciba un número entero positivo y
devuelva su factorial.
Escriba un programa separado para realizar cada uno de estos ejercicios. Guarde cada
programa con un nombre de archivo que siga las convenciones:
• No utilizar espacios, en su lugar utilice guion o guion bajo.
• La extensión del archivo debe terminar en “.py”
Próximamente:
EDD - Listas