Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как исправить одну ошибку в tkinter

Каролина кузнецова Ученик (158), на голосовании 10 месяцев назад
В моем коде выводит ошибку IndexError: list index out of range. Помогите плиз код:
from tkinter import *
import random
vs = [""]
l1 = ["бордо", "орлеан", "париж", "брест", "оммаха", "новый орлеан", "берлингтон", "бостон", "циндао", "ланьжоу", "пекин", "шанхай", "ордос", "казань", "сыктывкар", "беломорск", "грозный"]
po = 0
word = random.randint(0, 16)
slovo = l1[word]
if slovo == l1[0:3]:
sl = "франция"
elif slovo == l1[4:7]:
sl = "сша"
elif slovo == l1[8:12]:
sl = "китай"
elif slovo == l1[12:16]:
sl = "россия"
l2 = ["сша, китай, россия, франция"]
vs = l2[random.randint(0, 3)]
def point(po=0):
if slovo == l1[0:3] and sl == "франция":
po += 1
elif slovo == l1[4:7] and sl == "сша":
po += 1
elif slovo == l1[8:12] and sl == "китай":
po += 1
elif slovo == l1[13:16] and sl == "россия":
po += 1

lab2 = Label(text="Очки")
lab2["text"] = f"Очки: {point}"

root = Tk()
root.title("Да или нет: Столицы и города")
root.geometry("250x250")

but = Button(text="да", command=point)
but2 = Button(text="нет", command= point)
lab = Label(text="Hi")

but2.pack(side=LEFT)
but.pack(side=LEFT)
lab.pack()

root.mainloop()
Голосование за лучший ответ
Иван Дюкин Знаток (366) 11 месяцев назад
l2 = ["сша, китай, россия, франция"]
vs = l2[random.randint(0, 3)]
В этой строке в списке l2 лежит только одна строка:
"сша, китай, россия, франция".
Попробуй поменять на:
l2 = ["сша", "китай", "россия", "франция"]
Каролина кузнецоваУченик (158) 11 месяцев назад
Спаибо!
Похожие вопросы