Как мне зациклить функцию другим способом? Как решить проблему с переменными?

Есть функция btn_press() в которую вложен определенный макрос. Если после функции указать

while t <= v - 1:
    t = t + 1
    print('Вкладка ' + str(t) + ' из ' + str(v))
    btn_press()

else:
    pyautogui.moveTo(x=0, y=0, duration=0.1)
    pyautogui.click()

Где t = 0 и v = int(input()). В таком случае макрос будет повторяться v раз. Но дело в том, что переменную v хочется запрашивать у юзера после того как он нажмет на кнопку 'Спам открытых вкладок'. Если я эти переменные пишу в теле функции btn_press(), тогда цикл while не видит их. Если я укажу эти переменные как глобальные тогда у юзера будет слишком рано запрашиваться переменная v

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
import keyboard
import pyautogui

pyautogui.PAUSE = 0.2
pyautogui.FAILSAFE = True

from kivy.config import Config
Config.set('graphics', 'resizable', 0) #Запрет масштабирования
Config.set('graphics', 'width', '640') #Высота окна
Config.set('graphics', 'height', '480') #Ширина окна


class LanSPApp(App):
    def build(self):
        bl = GridLayout(rows=3, padding=[15], spacing=10)
        bl.add_widget(Button(
            text='Спам открытых вкладок',
            font_size = 20,
            on_press = self.btn_press,
            background_color = [.32,.85,.94,1],
            background_normal = '',
            size_hint = (.5, .25),
            pos = (0, 360)))
        bl.add_widget(Button(text='три'))#тест
        bl.add_widget(Button(text='два'))#тест
        return bl

    def btn_press(self, instance):
        """ СПАМ ОТКРЫТЫХ ВКЛАДОК """
        pyautogui.moveTo(x=421, y=464)
        pyautogui.click()
        pyautogui.vscroll(-500)
        pyautogui.moveTo(x=421, y=464)
        pyautogui.click()  #Клин на поле ввода текста
        pyautogui.hotkey('1', 'tab')
        pyautogui.moveTo(x=110, y=815)
        pyautogui.click()  #Отправка первого письма
        pyautogui.press('ESC')  #КОНЕЦ ПЕРВОГО ПИСЬМА
        pyautogui.moveTo(x=421, y=464)
        pyautogui.doubleClick()  #Клик на поле ввода второй раз
        keyboard.send('ctrl+a')
        pyautogui.hotkey('2', 'tab')
        pyautogui.moveTo(x=110, y=815)
        pyautogui.click()  #Отправка второго письма
        pyautogui.press('ESC')  #КОНЕЦ ВТОРОГО ПИСЬМА
        pyautogui.moveTo(x=421, y=464)
        pyautogui.doubleClick()  #Клик на поле ввода третий раз
        keyboard.send('ctrl+a')
        pyautogui.hotkey('3', 'tab')
        pyautogui.moveTo(x=110, y=815)
        pyautogui.click()  #Отправка третего письма
        keyboard.send('ctrl+w') #Следующая вкладка с закрытием старой


if __name__ == "__main__":
    LanSPApp().run()

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