python - TypeError: can only concatenate str (not "int") to str: 这是什么意思?
问题描述
from tkinter import*
import random
from tkinter import messagebox
window=Tk()
window.title("Random Tools")
window.configure(background="light green")
textvaria = IntVar()
textvaria2 = IntVar()
label0 = Label(window, text = "Min", bg ="light green")
label0.grid(row=1, column=0)
spinboxmin = Spinbox(window, from_=1, to=9999, increment=1, textvariable=textvaria)
spinboxmin.grid(row=2, column=0)
a = spinboxmin.get()
label1 = Label(window, text="Max", bg="light green")
label1.grid(row=3, column=0)
spinboxmax = Spinbox(window, from_=1, to=9999, increment=1, textvariable=textvaria2)
spinboxmax.grid(row = 4, column =0)
b = spinboxmax.get()
def submit2():
if a <= b:
answertext.delete('1.0', END)
else:
messagebox.showerror("Error", "Max must be greater than min!")
submit = Button(text="Submit", command=submit2)
submit.grid(row=4, column=2)
n = random.randint(a, b+1)
answertext = Text(text=n)
answertext.grid(row=5, column=0)
window.mainloop()
我正在做一个随机数的 GUI。但是当我在 Python 模块中运行它时,它说:“TypeError: can only concatenate str (not "int") to str" 有人可以帮我吗?非常感谢。
解决方案
spinbox的文档指出 get() 方法将 spinbox 的当前内容作为字符串返回。您不能像在此处尝试那样将数字添加到字符串中
n = random.randint(a, b+1)
所以你必须将 b 转换为 int 然后添加到它。
n = random.randint(a, int(b)+1)
推荐阅读
- python - 如何使用 Python 和正则表达式替换符号之间的一组字母
- c++ - 如何恢复ffmpeg streamer网络断开一段时间但最终恢复
- javascript - 如何引用动态创建的元素?
- javascript - 数据可以在 HTML 中访问,但不能在 JavaScript 中访问
- security - 远程服务器上的 msfconsole
- google-apps-script - 创建一个表单,允许您选择要在哪些工作表中运行宏
- javascript - 如何复制具有值的表单
- c - printf("%f") 或 printf("%lf") 用于 c 中的双打?
- prometheus - 在 peometheus 查询中忽略 old 系列
- c# - 不为 textchanged 命令调用 WPF 多转换器