我是 python 編程的初學(xué)者。我編寫了一個(gè)系統(tǒng)來計(jì)算學(xué)生的分?jǐn)?shù)。一切都按預(yù)期工作,但我只fail顯示一次。此外,如果平均值超過 50,我也會(huì)收到一條fail消息。我不明白為什么。這是我的代碼 from tkinter import * def Ok(): result = int(e1.get()) + int(e2.get()) + int(e3.get()) totText.set(result) average = result/3 avgText.set(average) if (average > 50) : grade = "pass" else : grade = "fail" gradeText.set(grade) root = Tk() root.title("Calculator") root.geometry("300x400") global e1 global e2 global e3 global totText global avgText global gradeText totText = StringVar() avgText = StringVar() gradeText = StringVar() Label(root, text="Marks1").place(x=10, y=10) Label(root, text="Marks2").place(x=10, y=40) Label(root, text="Marks3").place(x=10, y=80) Label(root, text="Total:").place(x=10, y=110) Label(root, text="Avg:").place(x=10, y=140) Label(root, text="Grade:").place(x=10, y=180) e1 = Entry(root) e1.place(x=100, y=10) e2 = Entry(root) e2.place(x=100, y=40) e3 = Entry(root) e3.place(x=100, y=80) result = Label(root, text="", textvariable=totText).place(x=100, y=110) avg = Label(root, text="", textvariable=avgText).place(x=100, y=140) grade = Label(root, text="", textvariable=gradeText).place(x=100, y=180) Button(root, text="Cal", command=Ok ,height = 1, width = 3).place(x=10, y=220) marks1 = Entry(root) marks2 = Entry(root) marks3 = Entry(root) root.mainloop()
2 回答

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
格式化您的代碼:
if (average > 50): grade = "pass" else: grade = "fail" gradeText.set(grade)
代替:
if (average > 50): grade = "pass" else: grade = "fail" gradeText.set(grade)
正如您現(xiàn)在看到的,您在 else 條件之外設(shè)置了 de gradeText。
編輯:在 python 中格式化代碼非常重要(就像在所有其他語言中一樣)要小心。

陪伴而非守候
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
Python 強(qiáng)制執(zhí)行一個(gè)強(qiáng)大的縮進(jìn)系統(tǒng)。看一下這個(gè):
if (average > 50) : grade = "pass" else : grade = "fail" gradeText.set(grade)
這里grade = "pass"
縮進(jìn)太多了。這也會(huì)導(dǎo)致該else
語句也被跳過,可能帶有一些警告。下一條要執(zhí)行的指令是 thengrade = "fail"
和gradeText.set(grade)
。請(qǐng)使用正確的縮進(jìn)檢查您的代碼
if (average > 50) : grade = "pass" else : grade = "fail" gradeText.set(grade)
添加回答
舉報(bào)
0/150
提交
取消