почему мне выдаёт ошибку TabError

Хотел сделать симулятор открытия бокса на Python используя tkinter.

import tkinter as tk
from random import randint
from time import sleep

chance = randint(0,100)

def open():
    if chance > 90 and chance < 101:
        resp = ('leon')
    elif chance > 45 and chance < 91:
        resp = ('nita')
    elif chance > 0 and chance < 46:
        resp = ('shelly')
    res.set(resp)

win = tk.Tk()
win.resizable(False,False)
win.geometry('100x100')
win.title('Box Leon Farm')
win['bg'] = 'yellow'

res = tk.StringVar()

mainlb = tk.Label(text = 'Leon Farm',bg = 'yellow')
lb = tk.Label(textvariable=res)
btn =tk.Button(text = 'Open', height = 3,width = 6,command=open)
mainlb.pack()
lb.pack()
btn.pack()

tk.mainloop()

Все так, но выдаёт ошибку:

TabError, проверить наличие пространства и табов.


Ответы (1 шт):

Автор решения: S. Nick
  1. Правила оформления Python-кода:
  • Отступы. Рекомендуется использовать 4 пробела на каждый уровень отступа. Python 3 запрещает смешивание табуляции и пробелов в отступах.
    Код, в котором используются и те, и другие типы отступов, должен быть исправлен так, чтобы отступы в нем были расставлены только с помощью пробелов.
  1. Вы генерируете случайное целое число N, 0 ≤ N ≤ 100, а в функции open(), значение 0 (ноля) не обрабатываете.

import tkinter as tk
from random import randint
#from time import sleep

#chance = randint(0, 100)

def open():
    chance = randint(0, 100)                             # +++

    if chance > 90 and chance < 101:
        resp = ('leon')
    elif chance > 45 and chance < 91:
        resp = ('nita')
#    elif chance > 0 and chance < 46:
    elif chance >= 0 and chance < 46:                    # +++
        resp = ('shelly')
    res.set(resp)

win = tk.Tk()
win.resizable(False, False)
win.geometry('150x150')
win.title('Box Leon Farm')
win['bg'] = 'yellow'

res = tk.StringVar()

mainlb = tk.Label(text='Leon Farm', bg='yellow')
lb = tk.Label(textvariable=res)
btn =tk.Button(text='Open', height=3, width=6, command=open)
mainlb.pack()
lb.pack()
btn.pack()

tk.mainloop()

введите сюда описание изображения

→ Ссылка