Как сделать повтор функции в python?

У меня есть функция open(). Мне нужно, чтобы когда пользователю предлагают заново её воспроизвести, чтобы он нажимал на цифру 1 и она всегда воспроизводилась до тех пор, пока он не нажмёт любую другую клавишу, чтобы программа завершилась

open()

numberS = input("Желаете продолжить?\n"
                  "Если да, то нажмите 1, если нет, то любую клавишу ")

Пытаюсь делать

while numberS == 1:
    open()
    numberS += 1

Но в итоге она просто завершается.

Как сделать, чтобы она была бесконечной в том случае, если всегда нажимать на 1?


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

Автор решения: Abdullo Alimov

Может поможет...

def open():
    print("Функция open")

open()
while True:

    numberS = int(input("Желаете продолжить?\n"
                    "Если да, то нажмите 1, если нет, то любую клавишу "))

    if numberS == 1:
        open()
    else:
        break
→ Ссылка
Автор решения: Jack_oS

Если open() вызывается всегда и потом повторяется вызов при вводе "1", можно так:

def open():
    print('in open() now')

while True:
    open()
    numberS = input('Желаете продолжить?\nЕсли да, то нажмите 1, если нет, то любую клавишу ')
    if numberS != '1':
        break
→ Ссылка
Автор решения: Vasyl Kolomiets

Ну или так:

def open():
    print('in open() now')


while input('Желаете продолжить?\nЕсли да, то нажмите 1, если нет, то любую клавишу ') == "1":
    open()
→ Ссылка
Автор решения: HelloWorld

Думаю, чтобы ответить на ваш вопрос нужно будет использовать библиотеку Threading. Эта библиотека нужна для управления потоками и процессами.

import threading


def open():
    # do smth
    return ''


def quest():
    q = input('Желаете продолжить?\n" \
                  "Если да, то нажмите 1, если нет, то любую клавишу')
    if q != '1':
        return quest()


t1 = threading.Thread(target=quest)
t1.start()

while t1.is_alive():
    open()

Если вы в дальнейшем захотите использовать бинд клавиш, то бишь получить полный доступ к клаве, то вам подойдет библиотека keybooard.Это я к тому, если у вы захотите приостановить программу с помощью клавиш, а не ввода через input().

→ Ссылка