Siswa Terbaik
Termasuk bagian Logika dan Alur dalam perjalanan Python di Coddy. Pelajaran 45 dari 78.
Tantangan
MudahBuat fungsi bernama filter_top_students yang menerima satu argumen: threshold (float). Fungsi ini harus:
- Menelusuri dictionary
student_recordsdan menemukan semua siswa yang nilai rata-ratanya lebih besar darithresholdyang ditentukan. - Menggunakan fungsi
calculate_average_gradeuntuk mendapatkan nilai rata-rata setiap siswa. - Mengembalikan list nama siswa dengan nilai tertinggi.
- Jika tidak ada siswa yang memenuhi kriteria, kembalikan list kosong.
Tambahkan (ganti) 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"])
add_grade("Alice", 90)
add_grade("Alice", 85)
add_grade("Bob", 75)
add_grade("Diana", 95)
print(filter_top_students(80)) # Should return ["Alice", "Diana"]
print(filter_top_students(90)) # Should return ["Diana"]
print(filter_top_students(100)) # Should return an empty listLuangkan waktu sejenak untuk merenungkan bagaimana kamu telah menggabungkan dictionary, set, dan pengambilan keputusan untuk membuat program yang berfungsi sepenuhnya. Bagus sekali! 🚀
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)
def list_students_by_course(course):
students_in_course = []
for name, details in student_records.items():
if course in details["courses"]:
students_in_course.append(name)
return students_in_course
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 listSemua pelajaran di Logika dan Alur
1Eksplorasi Variabel
KonstantaPenugasan Beberapa VariabelMenukar VariabelVariabel PenampungPembulatan AngkaKonversi ke list4Aplikasi Buku Kontak
Tampilkan MenuTambahkan Kontak7Set Bagian 2
Operasi Matematika Bagian 1Operasi Matematika Bagian 2Ulasan: Berburu Harta KarunSubset dan SupersetMelakukan Perulangan pada SetUlasan: Pelacak Turnamen10Dasar list comprehension
SintaksnyaMembuat list sederhanaMenambahkan kondisiMenggunakan agregasi dataRangkuman: Rumah ListRangkuman: Elemen Kebebasan13Sistem Manajemen Inventaris
Ikhtisar ProyekTambahkan Barang2dictionary Bagian 1
Apa Itu dictionary?Membuat dictionaryMengakses NilaiMengubah dictionaryRangkuman: Pengelola Resep5Pengambilan Keputusan Lanjutan
Operator TernaryPemeriksaan KeanggotaanPemeriksaan IdentitasError IndentasiRangkuman: Filter Liburan8Pengelola Data Siswa
Gambaran Umum ProyekTambah Siswa3dictionary Bagian 2
Method pada dictionarydictionary BersarangMemeriksa keyMenelusuri dictionary dengan perulanganRingkasan: Penghitung Frekuensi9Agregasi Data Lanjutan
Menggunakan SumMenemukan Nilai Minimum dan MaksimumMengurutkan Data dengan EfisienRangkuman: Pengurut dictionaryLatihan sendiri: Compiler Python online