想结合tk和字典做一个字典更新,但是失败了
如题,可以达到的效果是用户输入名字后,自动查找他原来的分数,然后加上获得的分数再更新字典,可是报错了,请教一下怎么修改呢?import tkinter as tkdict1 = {'小白':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()
a = int(dict1.get(str1,0))
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()
永恒的蓝色梦想 发表于 2020-4-30 14:39
这样就可以了
感谢回复,但是我输入完成后点击完成没有反应呀 lbxx916 发表于 2020-4-30 14:44
感谢回复,但是我输入完成后点击完成没有反应呀
你根本就没写怎么反应,怎么会有反应?
而且你的代码逻辑上还有问题,又给你改了一下import tkinter as tk
dict1 = {'小白':8}
#在字典查找然后更新分数
def add():
str1 = v1.get()
dict1=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()
#在字典查找然后更新分数
def add():
str1 = v1.get()
dict1=dict1.get(str1,0)+int(v2.get())
{:10_315:} import tkinter as tk
dict1 = {'小白':8}
#在字典查找然后更新分数
def add():
str1 = v1.get()
a = int(dict1.get())
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()
试试吧
页:
[1]