fzy114514 2023-02-04 23:48 采纳率: 100%
浏览 36
已结题

关于#NameError: name 'x ‘is not defined#的问题,如何解决?

编辑了一个点名器一直报错
显示Traceback (most recent call last):
File "C:\天翼云盘下载\点名.py", line 13, in
ans=int(input(i+"请答题:"
NameError: name 'i' is not defined
这是完整的代码

img


试图找出错误,尝试改缩进也不对

  • 写回答

3条回答 默认 最新

  • starlight_2007 2023-02-05 09:21
    关注
    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,所以上面程序的输出会有一些小问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月13日
  • 已采纳回答 2月5日
  • 修改了问题 2月5日
  • 创建了问题 2月4日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。