从 python 中的随机列表中选择时出错
Error when choosing from random list in python
我想从列表中随机选择一个形容词,然后将其显示为标签。
from tkinter import*
import random
root = Tk()
root.geometry("500x500")
root.title("amazing")
rchoice = ["is smart", " is dumb", " is ugl", " is ugly"]
random.choice(rchoice)
def doit():
text1 = word.get()
label2 = Label(root, text=text1 +rchoice, font=("Comic Sans MS", 20), fg="purple").place(x=210, y=350)
return
word = StringVar()
entry1 = Entry(root, textvariable=word, width=30)
entry1.pack
entry1.place(x=150, y=90)
heading = Label(root, text="app of truth", font=("Comic Sans MS", 40), fg="brown").pack()
Button = Button(root, text="buten", width=15, height=3, font=("Comic Sans MS", 20), fg="blue", bg="lightgreen", command=doit).pack(pady=90)
root.mainloop()
当我 运行 编写此代码时 returns 在 doit() 函数的 "label2" 行中出现此错误:TypeError: can only concatenate str (not "list") to str
我知道我需要将列表转换为字符串,我该怎么做?
rchoice
是一个列表,因此您不能将字符串 text1
与它连接起来。您应该将 random.choice(rchoice)
的返回值存储在一个变量中,并将 text1
与该变量连接起来:
rchoice = ["is smart", " is dumb", " is ugl", " is ugly"]
phrase = random.choice(rchoice)
def doit():
text1 = word.get()
label2 = Label(root, text=text1 + phrase, font=("Comic Sans MS", 20), fg="purple").place(x=210, y=350)
return
我想从列表中随机选择一个形容词,然后将其显示为标签。
from tkinter import*
import random
root = Tk()
root.geometry("500x500")
root.title("amazing")
rchoice = ["is smart", " is dumb", " is ugl", " is ugly"]
random.choice(rchoice)
def doit():
text1 = word.get()
label2 = Label(root, text=text1 +rchoice, font=("Comic Sans MS", 20), fg="purple").place(x=210, y=350)
return
word = StringVar()
entry1 = Entry(root, textvariable=word, width=30)
entry1.pack
entry1.place(x=150, y=90)
heading = Label(root, text="app of truth", font=("Comic Sans MS", 40), fg="brown").pack()
Button = Button(root, text="buten", width=15, height=3, font=("Comic Sans MS", 20), fg="blue", bg="lightgreen", command=doit).pack(pady=90)
root.mainloop()
当我 运行 编写此代码时 returns 在 doit() 函数的 "label2" 行中出现此错误:TypeError: can only concatenate str (not "list") to str
我知道我需要将列表转换为字符串,我该怎么做?
rchoice
是一个列表,因此您不能将字符串 text1
与它连接起来。您应该将 random.choice(rchoice)
的返回值存储在一个变量中,并将 text1
与该变量连接起来:
rchoice = ["is smart", " is dumb", " is ugl", " is ugly"]
phrase = random.choice(rchoice)
def doit():
text1 = word.get()
label2 = Label(root, text=text1 + phrase, font=("Comic Sans MS", 20), fg="purple").place(x=210, y=350)
return