Я хочу, чтобы мой код принимал некоторые целые числа в течение некоторого времени (например, 10 секунд) и подсчитывал и печатал время каждую секунду. Таким образом, он постоянно печатает время, и я ввожу некоторые числа, когда захочу. Может быть, мне следует использовать асинхронные функции?
def accepting_bets():
global list_of_bets
list_of_bets = []
list_of_bets.append(int(input()))
def main():
i = 10
while True:
print(f"{i} seconds remaining...")
time.sleep(1)
i -= 1
accepting_bets()
if i == 0:
break
print(list_of_bets)
Вы можете переместить временной код в другой поток. Я бы порекомендовал изучить многопоточность в Python, если вы об этом не знаете.
import threading
import time
def countTime():
i = 10
while True:
print(f"{i} seconds remaining...")
time.sleep(1)
i -= 1
if i == 0:
break
print(list_of_bets)
thread1 = threading.Thread(target=countTime)
thread1.start()
# while you want to get the input
global list_of_bets
list_of_bets = []
list_of_bets.append(int(input()))
Функция countTime
продолжит работу в другом потоке и не будет приостановлена оператором ввода.
Да, вы можете использовать асинхронные функции!