Как исправить одну ошибку в tkinter . В моем коде выводит ошибку IndexError: list index out of range.
Как исправить одну ошибку в tkinter . В моем коде выводит ошибку 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 in l1[0:3]:
sl = "франция"
elif slovo in l1[4:7]:
sl = "сша"
elif slovo in l1[8:12]:
sl = "китай"
elif slovo in l1[12:16]:
sl = "россия"
l2 = ["сша", "китай", "россия", "франция"]
vs = random.choice(l2)
def point():
global po
if slovo in l1[0:3] and sl == "франция":
po += 1
elif slovo in l1[4:7] and sl == "сша":
po += 1
elif slovo in l1[8:12] and sl == "китай":
po += 1
elif slovo in l1[12:16] and sl == "россия":
po += 1
lab2["text"] = f"Очки: {po}"
root = Tk()
root.title("Да или нет: Столицы и города")
root.geometry("250x250")
but = Button(text="да", command=point)
but2 = Button(text="нет", command=point)
lab = Label(text="Hi")
lab2 = Label(text="Очки: 0")
but2.pack(side=LEFT)
but.pack(side=LEFT)
lab.pack()
lab2.pack()
root.mainloop()
В этом коде исправлены следующие ошибки:
- Добавлен оператор
global
перед переменнойpo
в функцииpoint
, чтобы изменения переменной были видны в глобальной области видимости. - Заменены операторы сравнения
==
на операторыin
в условных выражениях, чтобы проверять вхождение элемента в список. - Исправлены индексы в условных выражениях, чтобы они соответствовали диапазонам списков.
- Исправлено обращение к элементу
lab2
с использованием квадратных скобок на обращение с использованием точки.