Ошибка при выборе из случайного списка в Python - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь выбрать случайное прилагательное из списка и затем отображать его в качестве метки.

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

Когда я запускаю этот код, он возвращает эту ошибку в строке "label2" в функции doit (): TypeError: can only concatenate str (not "list") to str

Я понимаю, что мне нужно преобразовать список встрока, как мне это сделать?

1 Ответ

0 голосов
/ 17 октября 2018

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
...