我在 (in module 'average') 行中有一個錯誤return如您所見,我已經嘗試用int().這是代碼:g_grade_list = []k_grade_list = []def g_sum(): s = 0 for i in g_grade_list: s += int(i) return sdef k_sum(): s = 0 for i in k_grade_list: s += int(i) return sdef average(): g_grade = input("Geben Sie Ihre Grundnoten ein.") k_grade = input("Geben Sie Ihre Klausurnoten ein.") wert = input("Geben Sie die Wertigkkeit der Klausurnoten ein.(in %)") g_grade_list.extend(g_grade.split(',')) g_grade_avg = int((g_sum() * len(g_grade_list))) k_grade_list.extend(k_grade.split(',')) k_grade_avg = int((k_sum() * len(k_grade_list))) return ((k_grade_avg * int(int(wert) / int(100)) + (g_grade_avg * int(1 - (int(wert / int(100)))))))average()注意:輸入始終是完整的數字 (1,2,3...)。錯誤代碼: return ((k_grade_avg * int(int(wert) / int(100)) + (g_grade_avg * int(1 - (int(wert / int(100)))))))TypeError: unsupported operand type(s) for /: 'str' and 'int'
1 回答

qq_花開花謝_0
TA貢獻1835條經驗 獲得超7個贊
罪魁禍首是wert
。
您正在此處初始化變量:
wert = input("Geben Sie die Wertigkkeit der Klausurnoten ein.(in %)")
并在這里使用它:
return ((k_grade_avg * int(int(wert) / int(100)) + (g_grade_avg * int(1 - (int(wert / int(100)))))))
讓我指出失敗的具體操作:
wert / int(100)
您可能已經發現:該input
函數返回一個字符串,這就是wert / 100
失敗的原因。您正試圖將一個字符串 ( wert
) 除以一個數字。
如果您將此特定代碼段包裹起來wert
,int
那么只要您提供有效數字,如果您提供其他內容(如abc
),您的程序就會崩潰。
我想指出,如果此特定行 ( return ...
) 較短,您很可能會更早地發現此錯誤。您可能會考慮將各種操作分成多行,以免忽視大局。
添加回答
舉報
0/150
提交
取消