Кликер на Python через tkinter
Задали написать кликер на питоне с помощью tkinter.
Я написал, но решил заморочиться. Нужно чтобы код выводил с помощью функции nplus() такие значения:
- если n = 1, то выводит число Рубль.
- если n <= 3, то выводит число Рубля.
- если больше трёх, то выводит число Рублей.
Помогите пожалуйста, пробовал и так, и сяк, не получается.
import tkinter as tk
root = tk.Tk() # Основное окно
root.title("Кликер") # Надпись в топе окна
root.geometry("700x350") # Размер окна X
root.resizable(False,False) # Запрещение изменение окна по X и Y
root.configure(bg="#d1ddde") # Фон окна
n = 0 # Счётчик
def nplus():
global n
n += 1
if n <= 3:
label1["text"] = str(n) + " Рубля."
if n == 1:
label1["text"] = str(n) + " Рубль."
def nsbros():
global n
n = 0
label1["text"] = str(n) + " Рублей."
# Счётчик кликера:
label1 = tk.Label(root, text=str(n) + " Pублей.", font=("Helvetica 50"), background="#d1ddde")
label1.pack()
# Кнопка 1:
btn1 = tk.Button(text="Клик", background="#75a9fa", foreground="#fff",
padx="150", pady="10", font="16", command=nplus)
btn1.pack()
# Кнопка 2:
btn2 = tk.Button(text="Сброс", background="#e08e79", foreground="#fff",
padx="150", pady="10", font="16", command=nsbros)
btn2.pack()
root.mainloop()
Ответы (2 шт):
Автор решения: Amgarak
→ Ссылка
Вроде поправил, проверьте пожалуйста:
import tkinter as tk
# Создание главного окна:
root = tk.Tk() # Основное окно
root.title("Кликер") # Надпись в топе окна
root.geometry("700x350") # Размер окна X
root.resizable(False, False) # Запрещение изменения окна по X и Y
root.configure(bg="#d1ddde") # Фон окна
n = 0 # Счётчик
def nplus():
global n
n += 1
if n == 1:
label1["text"] = str(n) + " Рубль."
elif 1 < n <= 3:
label1["text"] = str(n) + " Рубля."
else:
label1["text"] = str(n) + " Рублей."
def nsbros():
global n
n = 0
label1["text"] = str(n) + " Рублей."
# Счётчик кликера:
label1 = tk.Label(root, text=str(n) + " Рублей.", font=("Helvetica 50"), background="#d1ddde")
label1.pack()
# Кнопка 1:
btn1 = tk.Button(text="Клик", background="#75a9fa", foreground="#fff",
padx="150", pady="10", font="16", command=nplus)
btn1.pack()
# Кнопка 2:
btn2 = tk.Button(text="Сброс", background="#e08e79", foreground="#fff",
padx="150", pady="10", font="16", command=nsbros)
btn2.pack()
root.mainloop()
Автор решения: S. Nick
→ Ссылка
Как вариант, проверьте.
import tkinter as tk
root = tk.Tk() # Основное окно
root.title("Кликер") # Надпись в топе окна
root.geometry("700x350") # Размер окна X
root.resizable(False,False) # Запрещение изменение окна по X и Y
root.configure(bg="#d1ddde") # Фон окна
n = 0 # Счётчик
def nplus():
global n
n += 1
# !!! vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
n_1 = str(n)[-1]
n_2 = str(n)[-2:]
#print(f'{n_1} --- {n_2}')
if '11' <= n_2 < '15':
label1["text"] = str(n) + " рублей."
elif n_1 == '1':
label1["text"] = str(n) + " pубль."
elif '2' <= n_1 < '5':
label1["text"] = str(n) + " pубля."
else :
label1["text"] = str(n) + " рублей."
# !!! ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
def nsbros():
global n
n = 0
label1["text"] = str(n) + " рублей."
# Счётчик кликера:
label1 = tk.Label(root,
text=str(n)+" рублей.",
font=("Helvetica 50"),
background="#d1ddde"
)
label1.pack()
# Кнопка 1:
btn1 = tk.Button(text="Клик", background="#75a9fa", foreground="#fff",
padx="150", pady="10", font="16", command=nplus)
btn1.pack()
# Кнопка 2:
btn2 = tk.Button(text="Сброс", background="#e08e79", foreground="#fff",
padx="150", pady="10", font="16", command=nsbros)
btn2.pack()
root.mainloop()
