Menu
Coddy logo textTech

התלמידים המצטיינים

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Python של Coddy. שיעור 45 מתוך 78.

challenge icon

אתגר

קל

צרו פונקציה בשם filter_top_students שמקבלת ארגומנט אחד: threshold (מספר ממשי). הפונקציה צריכה:

  1. לעבור על המילון student_records ולאתר את כל התלמידים שהציון הממוצע שלהם גדול מהערך שצוין ב-threshold.
  2. להשתמש בפונקציה calculate_average_grade כדי לקבל את הציון הממוצע של כל תלמיד.
  3. להחזיר רשימה של שמות התלמידים המצטיינים.
  4. אם אף תלמיד לא עומד בקריטריונים, להחזיר רשימה ריקה.

הוסיפו (החליפו) את בלוק הקוד הבא בסוף הקוד שלכם:

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 list

הקדישו רגע למחשבה על האופן שבו שילבתם מילונים, קבוצות וקבלת החלטות כדי ליצור תוכנית פונקציונלית לחלוטין. עבודה נהדרת! 🚀

נסו בעצמכם

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 list

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Python אונליין