我在 (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
提交
取消