Putting it all together · Poniéndolo todo junto
Juntando todo
- Ya sabes variables, entrada de datos,
if, bucles, listas, funciones y diccionarios. - Un programa real combina estas pequeñas piezas en una herramienta útil.
- En esta lección construirás un pequeño analizador de calificaciones, función por función.
El plan
- Tenemos una lista de calificaciones, como
[70, 90, 50, 80]. - Queremos tres respuestas: el promedio, cuántos aprobaron y un breve resumen.
- Escribiremos una pequeña función para cada tarea, que luego trabajarán juntas.
The analyzer calls each helper · El analizador llama a cada función auxiliar
A big program calls small functions in turn, each returning one answer. · Un programa grande llama a funciones pequeñas por turno, cada una devolviendo una respuesta.
Funciones integradas útiles para listas
- Python te ofrece ayudantes predefinidos que funcionan sobre una lista de números.
len(x)cuenta los elementos,sum(x)los suma,max(x)/min(x)encuentran el mayor / menor.- Úsalos en lugar de escribir un bucle cada vez.
scores = [70, 90, 50, 80]
print(len(scores)) # 4
print(sum(scores)) # 290
print(max(scores)) # 90
print(min(scores)) # 50
Un patrón que reutilizarás: contar elementos que cumplen una condición
- Una tarea muy común: recorrer una lista y contar los elementos que pasan alguna prueba.
- Inicia un contador en
0y súmale1cada vez que la condiciónifsea verdadera. - Aquí contamos las palabras largas; pronto contarás las calificaciones aprobatorias.
def how_many_long_words(words, min_length):
count = 0
for w in words:
if len(w) >= min_length:
count = count + 1
return count
print(how_many_long_words(["hi", "hello", "hey", "howdy"], 4)) # 2
Errores comunes
- Construye en partes pequeñas y prueba cada una antes de añadir la siguiente.
- Lee toda la tarea primero, luego planifica antes de programar.
Ahora tú intentas
- Construye el analizador en tres pasos:
average,count_passing, luegostats. - Cada función es pequeña. Juntas convierten una lista de calificaciones en respuestas reales.
- Presiona Check answer después de cada una.
Write average(scores) that returns the average (mean) of a list of numbers: the total divided by how many. If the list is empty · vacíos, return 0 (so it does not crash). Example: average([2, 4]) is 3.0. · Escribe average(scores) que devuelva el promedio (media) de una lista de números: el total dividido por cuántos hay. Si la lista está vacía, devuelve 0 (para que no falle). Ejemplo: average([2, 4]) es 3.0.
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.
Write count_passing(scores, pass_mark) that returns how many scores are greater than or equal to pass_mark. Loop the list and count. Example: count_passing([40, 50, 60], 50) is 2. · Escribe count_passing(scores, pass_mark) que devuelva cuántas puntuaciones son mayores o iguales que pass_mark. Recorre la lista y cuenta. Ejemplo: count_passing([40, 50, 60], 50) es 2.
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.
Write stats(scores) (assume at least one score) that returns a dictionary with three keys: "highest", "lowest", and "average". Example: stats([70, 90, 50, 80]) returns · retornos {"highest": 90, "lowest": 50, "average": 72.5}. · Escribe stats(scores) (asume al menos una puntuación) que devuelva un diccionario con tres claves: "highest", "lowest", y "average". Ejemplo: stats([70, 90, 50, 80]) devuelve {"highest": 90, "lowest": 50, "average": 72.5}.
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.
Write grade_counts(scores) that returns · retornos a dictionary counting grades: A for 80 and above, B for 60 and above, C for the rest. Always include all three keys: grade_counts([85, 72, 90, 40]) is {"A": 2, "B": 1, "C": 1}. · Escribe grade_counts(scores) que devuelva un diccionario que cuente las calificaciones: A para 80 o más, B para 60 o más, C para el resto. Siempre incluye las tres claves: grade_counts([85, 72, 90, 40]) es {"A": 2, "B": 1, "C": 1}.
Click Run to see the output here. · Haz clic en Ejecutar para ver la salida aquí.