Как сделать повтор функции в python?
У меня есть функция open(). Мне нужно, чтобы когда пользователю предлагают заново её воспроизвести, чтобы он нажимал на цифру 1 и она всегда воспроизводилась до тех пор, пока он не нажмёт любую другую клавишу, чтобы программа завершилась
open()
numberS = input("Желаете продолжить?\n"
"Если да, то нажмите 1, если нет, то любую клавишу ")
Пытаюсь делать
while numberS == 1:
open()
numberS += 1
Но в итоге она просто завершается.
Как сделать, чтобы она была бесконечной в том случае, если всегда нажимать на 1?
Ответы (4 шт):
Может поможет...
def open():
print("Функция open")
open()
while True:
numberS = int(input("Желаете продолжить?\n"
"Если да, то нажмите 1, если нет, то любую клавишу "))
if numberS == 1:
open()
else:
break
Если open() вызывается всегда и потом повторяется вызов при вводе "1", можно так:
def open():
print('in open() now')
while True:
open()
numberS = input('Желаете продолжить?\nЕсли да, то нажмите 1, если нет, то любую клавишу ')
if numberS != '1':
break
Ну или так:
def open():
print('in open() now')
while input('Желаете продолжить?\nЕсли да, то нажмите 1, если нет, то любую клавишу ') == "1":
open()
Думаю, чтобы ответить на ваш вопрос нужно будет использовать библиотеку 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().