未使用python成功显示等级

未使用python成功显示等级,python,Python,我是python编程的初学者。我编写了一个计算学生分数的系统 一切正常,但我只显示了一次fail。此外,如果平均值超过50,我还会收到一条fail消息。我不明白为什么。这是我的密码 from tkinter import * def Ok(): result = int(e1.get()) + int(e2.get()) + int(e3.get()) totText.set(result) average

我是python编程的初学者。我编写了一个计算学生分数的系统

一切正常,但我只显示了一次
fail
。此外,如果平均值超过50,我还会收到一条
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()
设置代码格式,以便:

    if (average > 50):
        grade = "pass"
    else:
        grade = "fail"

    gradeText.set(grade)
而不是:

    if (average > 50):
        grade = "pass"
    else:
        grade = "fail"

        gradeText.set(grade)
正如您现在看到的,您在else条件之外设置了降级文本

编辑:
python中的格式代码非常重要(就像在其他语言中一样),请小心。

python实施了强大的缩进系统。看看这个:

    if (average > 50) :
            grade = "pass"
    else :
        grade = "fail"

        gradeText.set(grade)
这里的
grade=“pass”
缩进太多。这也会导致跳过
else
语句,可能会有一些警告。接下来要执行的指令是
grade=“fail”
gradeText.set(grade)
。请用正确的缩进检查代码

    if (average > 50) :
        grade = "pass"
    else :
        grade = "fail"

    gradeText.set(grade)