Python 测验分数换算成百分比
还有别的办法吗?在结果框中,我想将变量总数转换为百分比。我试图将total变量转换成一个百分比,但它被定义为一个全局变量。这是我的代码。请看标记框。我试图将str(total)/2*100除以,但无法Python 测验分数换算成百分比,python,python-2.7,user-interface,python-3.x,button,Python,Python 2.7,User Interface,Python 3.x,Button,还有别的办法吗?在结果框中,我想将变量总数转换为百分比。我试图将total变量转换成一个百分比,但它被定义为一个全局变量。这是我的代码。请看标记框。我试图将str(total)/2*100除以,但无法 import Tkinter import tkMessageBox total = 0 EasyBox1 = Tkinter.Tk() EasyBox1.geometry("250x200") EasyBox1.title("Quesion 1") E
import Tkinter
import tkMessageBox
total = 0
EasyBox1 = Tkinter.Tk()
EasyBox1.geometry("250x200")
EasyBox1.title("Quesion 1")
EasyBox2 = Tkinter.Tk()
EasyBox2.geometry("250x200")
EasyBox2.title("Quesion 2")
ResultBox = Tkinter.Tk()
ResultBox.geometry("320x260")
ResultBox.title("Results")
def next1():
global total
if not answr1.get(): tkMessageBox.showerror('no answer')
elif int(answr1.get()) == 8: total += 1
print "total after 1:",total
EasyBox1.withdraw()
EasyBox2.deiconify()
def mark():
global total
if not answr2.get(): tkMessageBox.showerror('no answer')
elif answr2.get() in ["B", "b"]: total += 1
print "total after 2:", total
EasyBox2.withdraw()
LabelName5 = Tkinter.Label(ResultBox, text="Marks : " + (str(total))/2*100, font=("Impact",20))
LabelName5.grid(row=2,column=0)
ResultBox.deiconify()
# window 2
Tkinter.Label (EasyBox1, text="answer:").pack()
answr1 = Tkinter.Entry (EasyBox1)
answr1.pack()
LabelName2 = Tkinter.Label (EasyBox1, text="State the number of edges in a cube")
LabelName2.grid(row=1,column=0)
LabelName2.pack()
# window 2
Tkinter.Label (EasyBox2, text="answer:").pack()
answr2 = Tkinter.Entry (EasyBox2)
answr2.pack()
LabelName2 = Tkinter.Label (EasyBox2, text="What is the place value of the digit 4 in 76421?")
LabelName2.grid(row=1,column=0)
LabelName2.pack()
LabelName2 = Tkinter.Label (EasyBox2, text="A.Thousands B.Hundreds C.Ones D.Tens")
LabelName2.grid(row=1,column=0)
LabelName2.pack()
# hide windows
EasyBox2.withdraw()
ResultBox.withdraw()
Tkinter.Button(EasyBox1, text="Next", command=next1).pack()
Tkinter.Button(EasyBox2, text="result", command=mark).pack()
EasyBox1.mainloop()
您试图将一个数字转换为字符串,然后将其除以100。您可以修改变量,无论它是局部变量还是全局变量 我认为应该使用格式字符串。%%打印%符号。而%.2f将浮点(f)转换为一个带2位小数(.2)的字符串
@我需要你的帮助。你能帮我吗?@adrianus你有什么想法吗?还是不工作。错误为无法对函数调用进行签名错误为无法对函数调用进行签名。我已经改成了你给我的文本代码,你能提供输出,准确地说明错误行吗?我以前从未听说过此错误。我将此代码LabelName5=Tkinter.Label(ResultBox,text=“Marks:”+(str(total))/2*100,font=(“Impact”,20))更改为您提供给我的代码。我理解这一点。有一个输出,说明错误和发生错误的行。我希望看到描述代码不工作原因的输出。错误的描述是模糊的,我们需要确切地了解问题是什么。
text="Marks : %.2f %%" % (total/2*100.0)