编辑了一个点名器一直报错
显示Traceback (most recent call last):
File "C:\天翼云盘下载\点名.py", line 13, in
ans=int(input(i+"请答题:"
NameError: name 'i' is not defined
这是完整的代码
试图找出错误,尝试改缩进也不对
import random
import time
import os
import tkinter
from tkinter import*
class tmp:
i = '000'
ans = '000'
def callback():
i = tmp.i
ans = input(i+"请答题: ")
tmp.ans = ans
def func():
things=[]#使用前请将things用姓名填充
answers = {}
for x in range(len(things)):
i = random.sample(things,1)[0]
tmp.i = i
root=Tk()
root.title("点名")
root.geometry("300x120")
root.resizable(0,0)
btn = tkinter.Button(root,relief="solid",width=10,height=2,text='开始点名',cnf={},command=callback)
btn.pack()
btn = tkinter.Button(root,relief="solid",width=10,height=2,text='退出',command=root.destroy)
btn.pack()
answers[i] = tmp.ans
root.mainloop()
return answers
answers = func()
print(answers)
主要问题在于没有封装回调函数,所以应该把函数封装起来,如上callback所示。
其实我也不是很会玩tkinter,所以上面程序的输出会有一些小问题。