My code is:
import random
from inputimeout import inputimeout, TimeoutOccurred
# todo inputs
b = input("press enter to start")
lowest_numb = input("lowest number")
highish_numb = input("highish_numb")
time_for_qus = int(input("time for question"))
num_qus = int(input("How many questions?"))
print(type(time_for_qus))
def ask_question(num_qus=num_qus):
ran_1 = random.randint(int(lowest_numb), int(highish_numb))
ran_2 = random.randint(int(lowest_numb), int(highish_numb))
print(f"{ran_1}x{ran_2}", end="")
try:
answer = inputimeout("", time_for_qus)
num_qus -= 1
except TimeoutOccurred:
print("Times up!!!")
ask_question(num_qus)
if num_qus == 0:
quit()
ask_question(num_qus)
I was expecting it to print out a times table question and stop after num_qus
is equal to 0 but it just carry's on printing questions.
Can you help?
The issue with your code is that when you call ask_question(num_qus), it doesn't correctly stop when num_qus reaches 0. Instead, it recursively calls itself without decrementing num_qus properly.
import random
from inputimeout import inputimeout, TimeoutOccurred
input("Press enter to start")
lowest_numb = int(input("Lowest number: "))
highish_numb = int(input("Highest number: "))
time_for_qus = int(input("Time for question (seconds): "))
num_qus = int(input("How many questions? "))
def ask_questions(num_qus):
while num_qus > 0:
ran_1 = random.randint(lowest_numb, highish_numb)
ran_2 = random.randint(lowest_numb, highish_numb)
print(f"{ran_1} x {ran_2} = ", end="")
try:
answer = inputimeout("", time_for_qus)
except TimeoutOccurred:
print("Time's up!!!")
num_qus -= 1
ask_questions(num_qus)