Menu
Coddy logo textTech

Listar por curso

Parte de la sección Logic & Flow del Journey de Python de Coddy — lección 44 de 78.

challenge icon

Desafío

Fácil

Crea una función llamada list_students_by_course que toma un argumento: course (string). La función debe:

  1. Iterar a través del diccionario student_records y encontrar a todos los estudiantes inscritos en el course especificado.
  2. Devolver una lista de nombres de estudiantes que están inscritos en el curso.
  3. Si no hay estudiantes inscritos en el curso, devolver una lista vacía.

Añade (reemplaza) el siguiente bloque de código al final de tu código:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Math", "Biology"])
add_student("Diana", 23, ["Chemistry", "Physics"])
print(list_students_by_course("Math"))  # Debería devolver ["Alice", "Bob"]
print(list_students_by_course("Physics"))  # Debería devolver ["Alice", "Diana"]
print(list_students_by_course("Biology"))  # Debería devolver ["Bob"]
print(list_students_by_course("History"))  # Debería devolver una lista vacía

Pruébalo tú mismo

student_records = {}

def add_student(name, age, courses):
    if name in student_records:
        print(f"Student '{name}' already exists.")
        return
    student_records[name] = {"age": age, "grades": set(), "courses": set(courses)}
    print(f"Student '{name}' added successfully.")

def add_grade(name, grade):
    if name not in student_records:
        print(f"Student '{name}' not found.")
        return
    student_records[name]["grades"].add(grade)
    print(f"Grade {grade} added for student '{name}'.")

def is_enrolled(name, course):
    if name not in student_records:
        print(f"Student '{name}' not found.")
        return False
    return course in student_records[name]["courses"]

def calculate_average_grade(name):
    if name not in student_records:
        print(f"Student '{name}' not found.")
        return None
    grades = student_records[name]["grades"]
    if not grades:
        return 0
    return sum(grades) / len(grades)


add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Biology", "Chemistry"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
print(calculate_average_grade("Alice"))  # Should return 87.5
print(calculate_average_grade("Bob"))  # Should return 75.0
print(calculate_average_grade("Charlie"))  # Non-existent student, should print message and return None
print(calculate_average_grade("Alice"))  # Should return 87.5 again

Todas las lecciones de Logic & Flow