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

关于#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 01: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,所以上面程序的输出会有一些小问题。

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    fzy114514 2023-02-05 05:35

    谢谢,万分感谢

    回复
    fzy114514 2023-02-05 05:38

    错误代码和问题一样

    回复
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 2月12日
  • 已采纳回答 2月5日
  • 修改了问题 2月5日
  • 创建了问题 2月4日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部