首页 > 解决方案 > 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" 有人可以帮我吗?非常感谢。

标签: pythonpython-3.xtkinterrandom

解决方案


spinbox的文档指出 get() 方法将 spinbox 的当前内容作为字符串返回。您不能像在此处尝试那样将数字添加到字符串中

n = random.randint(a, b+1)

所以你必须将 b 转换为 int 然后添加到它。

n = random.randint(a, int(b)+1)

推荐阅读