'How do i do some stuff and count time in parallel in python?

I want my code to take some integers for some time (e.g. 10 seconds) and to count and print time every second. So it prints time permanently and i enter some numbers whenever i want. Maybe i should use async functions?

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)


Solution 1:[1]

You can move the timing code to a different thread. I would recommend researching about multi-threading in Python if you aren't aware about it.

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()))

The countTime function will keep on running on another thread, and will not be paused by the input statement

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Saksham