我在 (in module 'average') 行中有一個錯誤return如您所見,我已經(jīng)嘗試用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()注意:輸入始終是完整的數(shù)字 (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貢獻(xiàn)1835條經(jīng)驗 獲得超7個贊
罪魁禍?zhǔn)资?code>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)
您可能已經(jīng)發(fā)現(xiàn):該input函數(shù)返回一個字符串,這就是wert / 100失敗的原因。您正試圖將一個字符串 ( wert) 除以一個數(shù)字。
如果您將此特定代碼段包裹起來wert,int那么只要您提供有效數(shù)字,如果您提供其他內(nèi)容(如abc),您的程序就會崩潰。
我想指出,如果此特定行 ( return ...) 較短,您很可能會更早地發(fā)現(xiàn)此錯誤。您可能會考慮將各種操作分成多行,以免忽視大局。
添加回答
舉報
0/150
提交
取消
