@DarkFox201561
Начинающий программист.Учу пайтон.

Не могу понять почему пишет ошибку?

Пишу программу но столкнулся с ошибкой хочу чтобы когда нажимал на кнопку с названием "btn2" переменная Words1 и Words2 меняла значение.И в тоже время когда нажимаешь кнопку "btn" переменная Words1 Рандомно перемешивалась.Вот весь код:

from tkinter import *
import time
import random

tk = Tk()
canvas = Canvas(tk, width=1000, height=800)
tk.resizable(0, 0)
my_background = PhotoImage(file=r'D:\\prog\\Darkand\\background.gif')
w = my_background.width()
h = my_background.height()
errors = 0
for x in range(0, 5):
    for y in range(0, 5):
        canvas.create_image(x * w, y * h, image=my_background, anchor='nw')
Words2 = ('Press a difficulty button')
Words1 = ('Press a difficulty button')


def Easy():
    Words2 = ('Огонь', 'Слово', 'Три', 'Молоко', 'Пять', 'Кошка')
    Words1 = ('огонь', 'слово', 'три', 'молоко', 'пять', 'кошка')
    pass

btn2 = Button(tk, text='Easy', command=Easy())
btn2.pack()
tk.update()


def words():
    random.shuffle(Words1)
    time.sleep(0.02)
    canvas.create_text(230, 600, text=Words1, font=('Helvetica', 20))
    Guess = str(input('Введи Слово 1:')).strip()
    if Guess == Words2[0] or Words1[0]:
        canvas.create_arc(700, 700, 50, 50)
        canvas.create_text(100, 300, text="Правильно!", font=('Helvetica', 20))
    else:
        canvas.create_text(100, 300, text="Неправильно!", font=('Helvetica', 20))
    Guess = str(input('Введи Слово 2:')).strip()
    if Guess == Words2[1] or Words1[1]:
        print('123')
        canvas.create_text(100, 300, text="Правильно!", font=('Helvetica', 20))
    else:
        canvas.create_text(100, 300, text="Неправильно!", font=('Helvetica', 20))
    Guess = str(input('Введи Слово 3:')).strip()
    if Guess == Words2[2] or Words1[2]:
        canvas.create_text(500, 300, text="Правильно!", font=('Helvetica', 20))
    else:
        canvas.create_text(100, 300, text="Неправильно!", font=('Helvetica', 20))
    Guess = str(input('Введи Слово 4:')).strip()
    if Guess == Words2[3] or Words1[3]:
        canvas.create_text(500, 540, text="Правильно!", font=('Helvetica', 20))
    else:
        canvas.create_text(100, 320, text="Неправильно!", font=('Helvetica', 20))
    Guess = str(input('Введи Слово 5:')).strip()
    imagethree = PhotoImage(file=r'D:\\prog\\Darkand\\three.gif')
    canvas.create_image(30, 500, image=imagethree, anchor='nw')
    if Guess == Words2[4] or Words1[4]:
        canvas.create_text(500, 540, text="Правильно!", font=('Helvetica', 20))
    else:
        canvas.create_text(100, 320, text="Неправильно!", font=('Helvetica', 20))
    Guess = str(input('Введи Слово 6:')).strip()
    if Guess == Words2[5] or Words1[5]:
        canvas.create_text(500, 540, text="Правильно!", font=('Helvetica', 20))
    else:
        canvas.create_text(100, 320, text="Неправильно!", font=('Helvetica', 20))


def clear():
    errors = 0
    canvas.delete("all")
    for x in range(0, 5):
        for y in range(0, 5):
            canvas.create_image(x * w, y * h, image=my_background, anchor='nw')
    canvas.pack()
    tk.update()


b = Button(tk, text="Clear", command=clear)
btn = Button(tk, text="Words", command=words)
canvas.pack()
btn.pack()
b.pack()
tk.update()
tk.mainloop()


def __init__():
    pass

Ошибку пишет такую:
Exception in Tkinter callback
Traceback (most recent call last):
File "D:\prog\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "D:/prog/Darkand/Darkandv2test.py", line 30, in words
random.shuffle(Words1)
File "D:\prog\lib\random.py", line 278, in shuffle
x[i], x[j] = x[j], x[i]
TypeError: 'str' object does not support item assignment
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
Winsik
@Winsik
сис.админ, недопрограммист :)
Words1 =['Огонь', 'Слово', 'Три', 'Молоко', 'Пять', 'Кошка']

;)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы