亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我的 python 腳本在生成錯誤時,即使所有變量都是 int

我的 python 腳本在生成錯誤時,即使所有變量都是 int

慕桂英546537 2022-11-29 17:14:15
我在 (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 ...) 較短,您很可能會更早地發現此錯誤。您可能會考慮將各種操作分成多行,以免忽視大局。


查看完整回答
反對 回復 2022-11-29
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號