|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如题,可以达到的效果是用户输入名字后,自动查找他原来的分数,然后加上获得的分数再更新字典,可是报错了,请教一下怎么修改呢?- import tkinter as tk
- dict1 = {'小白':8}
- #在字典查找然后更新分数
- def add():
- str1 = v1.get()
- a = int(dict1.get(str1))
- b = a + int(v2.get())
- dict1.update(str1 = b)
- root=tk.Tk()
- v1=tk.StringVar()
- v2=tk.StringVar()
- tk.Label(root,text='请输入姓名:').grid(row=0,column=0)
- tk.Entry(root,textvariable=v1).grid(row=0,column=1)
- tk.Label(root,text='请输入分值:').grid(row=1,column=0)
- tk.Entry(root,textvariable=v2).grid(row=1,column=1)
- tk.Button(root,text = '完成',command = add).grid(row = 2,column = 1)
- root.mainloop()
复制代码
系统的报错是这样的:- Exception in Tkinter callback
- Traceback (most recent call last):
- File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
- return self.func(*args)
- File "C:/Users/Administrator/Desktop/测试.py", line 8, in add
- a = int(dict1.get(str1))
- TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
复制代码
你根本就没写怎么反应,怎么会有反应?
而且你的代码逻辑上还有问题,又给你改了一下 - import tkinter as tk
- dict1 = {'小白':8}
- #在字典查找然后更新分数
- def add():
- str1 = v1.get()
- dict1[str1]=dict.get(str1,0)+int(v2.get())
- root=tk.Tk()
- v1=tk.StringVar()
- v2=tk.StringVar()
- tk.Label(root,text='请输入姓名:').grid(row=0,column=0)
- tk.Entry(root,textvariable=v1).grid(row=0,column=1)
- tk.Label(root,text='请输入分值:').grid(row=1,column=0)
- tk.Entry(root,textvariable=v2).grid(row=1,column=1)
- tk.Button(root,text = '完成',command = add).grid(row = 2,column = 1)
- root.mainloop()
复制代码
|
|