Clase 1: Clase de Repaso de Python¶
Strings¶
Los strings (cadenas de texto) son secuencias de caracteres inmutables.
Pueden incluir letras, símbolos, números y espacios.
Se declaran con comillas simples 'texto'
, dobles "texto"
o triples '''texto'''
para varias líneas.
Se pueden manipular con operaciones como:
- Concatenación: unir dos strings. Ejemplo:
"Hola" + " Mundo"
- Repetición: repetir un string varias veces. Ejemplo:
"a" * 3
→"aaa"
- Acceso a caracteres: con índices. Ejemplo:
"Hola"[1] # 'o'
- Slicing: subcadenas. Ejemplo:
"Hola"[1:3] # "ol"
Ejercicio¶
Escribir un programa que reciba una frase, elimine los signos de puntuación, pase todo a minúsculas y cuente cuántas veces aparece cada palabra.
frase = "Hola, hola. ¿Qué tal? Tal vez sí, tal vez no."
# Resultado esperado:
# hola -> 2
# tal -> 2
# vez -> 2
# sí -> 1
# qué -> 1
# no -> 1
Listas¶
Las listas son estructuras de datos ordenadas, mutables y heterogéneas, es decir, pueden almacenar elementos de distintos tipos (enteros, strings, booleanos, otras listas, entre otros.).
Se definen usando corchetes []
o el constructor list()
y los elementos están separados por comas.
Ejercicio¶
Convertir una lista de temperaturas en grados Celsius a Fahrenheit. Eliminar duplicados, redondear a un decimal y ordenar de mayor a menor.
Estructura de control if
¶
La instrucción if
permite ejecutar código sólo si se cumple una condición.
Puede complementarse con elif
(condición alternativa) y else
(caso por defecto).
Las condiciones se evalúan como valores booleanos (True
o False
).
Ejemplo de sintaxis:
Ejercicio¶
Escribir un programa que reciba tres notas. El estudiante reprueba si alguna nota es menor que 50 o si el promedio de las tres es menor que 70.
for
loop¶
El bucle for
permite recorrer secuencias como listas, cadenas o rangos, y ejecutar un bloque de código para cada elemento.
Es una herramienta fundamental para procesar datos en colecciones.
Ejemplos comunes¶
colores = ["rojo", "verde", "azul"]
for indice, color in enumerate(colores):
print(f"{indice}: {color}")
Ejercicio¶
Construir un histograma textual. Por cada número en una lista, imprimir una línea con esa cantidad de asteriscos *
.
while
loop¶
El bucle while
permite repetir instrucciones mientras se cumpla una condición lógica.
Se utiliza cuando no se conoce de antemano cuántas repeticiones se deben realizar.
Consideraciones importantes¶
- Si la condición nunca deja de cumplirse, el bucle será infinito.
- Se puede usar
break
para salir del bucle en un momento determinado. - También se puede usar
continue
para saltar a la siguiente iteración sin ejecutar el resto del bloque.
Ejercicio¶
Simular una calculadora interactiva.
El programa debe permitir al usuario ingresar una operación (+
, -
, *
, /
) y dos números.
El ciclo se repite hasta que el usuario escriba "salir"
como operación.
Debe manejar el caso de división por cero.
Tuplas¶
Una tupla es una estructura de datos similar a una lista, pero inmutable.
Sus elementos no pueden ser modificados una vez creada.
Se define con paréntesis ()
o con el constructor tuple()
.
Las tuplas son útiles para representar datos agrupados que no deben cambiar, como coordenadas, fechas o pares clave-valor temporales.
Propiedades importantes¶
Ejercicio¶
Dada una lista de coordenadas (pares (x, y)
), determinar cuál está más cerca del origen (0, 0)
.
Diccionarios¶
Un diccionario es una colección de pares clave-valor. Permite almacenar y acceder a valores usando claves personalizadas, como strings o números.
Se define con llaves {}
, y cada par clave-valor se separa por :
.
Operaciones comunes¶
Ejercicio¶
Guardar en un diccionario las calificaciones de varios estudiantes. Cada estudiante tiene una lista de notas. Se debe calcular el promedio de cada uno y mostrar:
- El estudiante con el mejor promedio
- El estudiante con el peor promedio
# Entrada:
notas = {
"Ana": [90, 85, 88],
"Luis": [100, 100, 90],
"María": [70, 65, 60]
}
# Resultado esperado:
# Mejor promedio: Luis
# Peor promedio: María
Funciones¶
Una función es un bloque de código reutilizable que realiza una tarea específica. Permite organizar el código, evitar repeticiones y facilitar la lectura.
Se define con la palabra clave def
, se le da un nombre, se indican los parámetros entre paréntesis y se coloca el bloque indentado.
def saludar(nombre):
return f"Hola, {nombre}"
print(saludar("Luis")) # 'Hola, Luis'
Otras posibilidades¶
Ejercicio¶
Escribir una función que determine si una frase es un pangrama, es decir, si contiene todas las letras del abecedario al menos una vez (no importa el orden).
Recursividad¶
La recursividad es una técnica en la que una función se llama a sí misma para resolver un problema dividiéndolo en subproblemas más pequeños. Cada llamada reduce el problema hasta llegar a un caso base, que detiene la recursión.
Consideraciones importantes¶
# Olvidar el caso base puede generar un error por límite de recursión
def infinito():
return infinito() # Error: RecursionError
Ejercicio¶
Implementar una función recursiva que reciba un número entero n
y genere todas las cadenas binarias posibles de longitud n
.
La función debe devolver una lista con todas las combinaciones generadas.