我试过
def iNput():
try:
int(entry.get())
x=entry.get()
y=x+3
answer.config(text=y)
except ValueError:
answer.config(text="doesnt work")
我得到一个错误说:
can only concatenate str (not "int") to str
1 def iNput():
2 try:
3 int(entry.get())
4
5 x = entry.get()
6 y = x + 3
7
8 answer.config(text=y)
9
10 except ValueError:
11 answer.config(text="doesn't work")
在第3行中,您从条目中获取用户输入,并将其转换为int,结果却将其丢弃(因为您没有对int执行任何操作(。在第5行中,您再次获取它并将其分配给x
,但这次没有将其转换为数字。因此,您正在尝试在第6行添加一个字符串和一个数字。这不起作用(试着在脑子里加上字母a
和数字1
!!(。如果用户要输入一个数字,而您希望在answer
中显示该数字+3
,则以下代码应该有效:
def iNput():
try:
x = int(entry.get())
y = str(x + 3) # x + 3 produces a number, which you have to convert back to a string
answer.config(text=y)
except ValueError:
answer.config(text="doesnt work")
同样的事情可以做得更短:
def iNput():
try:
answer.config(text=str(int(entry.get()) + 3))
except ValueError:
answer.config(text="doesnt work")