2017-07-06 21 views
-1

目前,我正在學習關於codeacademy蟒蛇,我試圖做這個代碼的最後一個函數如下:目前我正在學習關於codeacademy Python和我無法弄清楚什麼是錯的這個代碼

  1. 定義一個名爲get_class_average的函數,它具有一個參數student。

  2. 你可以期望學生成爲一個列表,包含你的三名學生。 首先,創建一個名爲results的空列表。

  3. 對於班級列表中的每個學生項目,計算get_average(student),然後用該結果調用results.append()。

  4. 最後,返回調用average()和結果的結果。 但我不斷收到此錯誤,我試圖運行代碼。

    「哎呀,再試一次get_class_average([愛麗絲])如預期回到80.55,而不是91.15。」

    lloyd = { 
        "name": "Lloyd", 
        "homework": [90.0, 97.0, 75.0, 92.0], 
        "quizzes": [88.0, 40.0, 94.0], 
        "tests": [75.0, 90.0] 
    } 
    alice = { 
        "name": "Alice", 
        "homework": [100.0, 92.0, 98.0, 100.0], 
        "quizzes": [82.0, 83.0, 91.0], 
        "tests": [89.0, 97.0] 
    } 
    tyler = { 
        "name": "Tyler", 
        "homework": [0.0, 87.0, 75.0, 22.0], 
        "quizzes": [0.0, 75.0, 78.0], 
        "tests": [100.0, 100.0] 
    } 
    
    # Add your function below! 
    def average(numbers): 
        total = sum(numbers) 
        total = float(total) 
        return total/len(numbers) 
    
    def get_average(student): 
        homework = average(student["homework"]) 
        quizzes = average(student["quizzes"]) 
        tests = average(student["tests"]) 
        return 0.1 * homework + 0.3 * quizzes + 0.6 * tests 
    
    def get_letter_grade(score): 
        if score >= 90: 
         return "A" 
        elif score >= 80: 
         return "B" 
        elif score >= 70: 
         return "C" 
        elif score >= 60: 
         return "D" 
        else: 
         return "F" 
    
    def get_class_average(students): 
        students = [lloyd, alice, tyler] 
        results = [] 
        for student in students: 
         results.append(get_average(student)) 
         return average(results) 
         print get_class_average(students) 
         print get_letter_grade(get_class_average) 
    
+1

您正在覆蓋函數get_class_average中的'students'。 「學生」是該功能的一個參數是有原因的。 – Matthias

回答

0

第一:return "F"後,你有一個非常不一致的壓痕。將第一行除外的所有選項卡移至第一行(student = ...)

第二:在get_class_average的第一行中,擦除學生傳遞給函數並寫入新數組。要麼在外面初始化學生並將其傳遞給函數,要麼傳遞任何內容並構造數組。

首先比較好。

+0

謝謝。我不得不從我的codeacademy編輯器複製,這就是爲什麼。我正在刪除數組Students。 –

相關問題