Кликер на 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()

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

→ Ссылка