Menu
CoddyTech

Daftar Berdasarkan Kursus

Termasuk bagian Logika dan Alur dalam perjalanan Python di Coddy. Pelajaran 44 dari 78.

challenge icon

Tantangan

Mudah

Pertahankan semua yang kamu tulis pada langkah-langkah sebelumnya dalam proyek ini: seluruh file akan dijalankan, jadi student_records dan add_student harus tetap ada.

Buat fungsi bernama list_students_by_course yang menerima satu argumen: course (string). Fungsi ini harus:

  1. Menelusuri dictionary student_records dan menemukan semua siswa yang terdaftar di course yang ditentukan.
  2. Mengembalikan list nama siswa yang terdaftar di kursus tersebut.
  3. Jika tidak ada siswa yang terdaftar di kursus tersebut, kembalikan list kosong.

Tambahkan (ganti dengan) blok kode berikut di bagian bawah kodemu:

add_student("Alice", 20, ["Math", "Physics"])
add_student("Bob", 22, ["Math", "Biology"])
add_student("Diana", 23, ["Chemistry", "Physics"])
print(list_students_by_course("Math"))  # Should return ["Alice", "Bob"]
print(list_students_by_course("Physics"))  # Should return ["Alice", "Diana"]
print(list_students_by_course("Biology"))  # Should return ["Bob"]
print(list_students_by_course("History"))  # Should return an empty list

Coba sendiri

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Python online