Приведенный ниже код предназначен для подсчета очков для карточной игры, над которой я работаю. Мой вопрос связан с оператором if/elif внутри моей функции Round_Points. Всякий раз, когда я запускаю код, Trick_Base устанавливается только на 878 (просто случайное число, которое я выбрал для проверки) из последнего оператора else, даже когда я ввожу значение от 6 до 10 для Tricks_Bid в графическом интерфейсе (я использую tkinter в Питон 3.4). Нужно ли мне что-то добавить, чтобы убедиться, что для Trick_Base задано соответствующее значение из оператора if? Или может быть что-то не так в моем виджете входа? Ничто из того, что я искал до сих пор, не дало мне ни малейшего представления о том, что не так. Заранее спасибо за любую помощь или предложения!
PS: я основывал свой код на этом примере калькулятора: https://www.tkdocs.com/tutorial/firstexample.html Проблемы начались, когда я начал добавлять операторы if и elif.
from tkinter import *
from tkinter import ttk
def Round_Points():
if Tricks_Bid == 10:
Trick_Base = 400
elif Tricks_Bid == 9:
Trick_Base = 300
elif Tricks_Bid == 8:
Trick_Base= 200
elif Tricks_Bid == 7:
Trick_Base = 100
elif Tricks_Bid == 6:
Trick_Base = 90
else:
Trick_Base=878
global Suit_Base
Points.set(Trick_Base+Suit_Base)
root = Tk()
root.title("Tricks")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
Points = IntVar()
Suit_Base = 80
Tricks_Bid=IntVar()
Trick_Base=IntVar()
Tricks_Bid = ttk.Entry(mainframe, width=7, textvariable=Tricks_Bid)
Tricks_Bid.grid(column=2, row=1, sticky=(W, E))
ttk.Label(mainframe, textvariable=Points).grid(column=2, row=2, sticky=(W, E))
ttk.Button(mainframe, text="Calculate", command=Round_Points).grid(column=3, row=3, sticky=W)
ttk.Label(mainframe, text="Tricks").grid(column=3, row=1, sticky=W)
#ttk.Label(mainframe, text="is equivalent to").grid(column=1, row=2, sticky=E)
ttk.Label(mainframe, text="Points").grid(column=3, row=2, sticky=W)
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
Tricks_Bid.focus()
root.bind('<Return>', Round_Points)
root.mainloop()