需要在数学中使用entry.get()



我试过

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")

最新更新