I’m trying to write a program in Python where the user is asked to input a number of hours after which a countdown starts in seconds, however I want to also make sure that no floats/strings are inputted and if they are, the user needs to be prompted with the same question and input a correct value. If an integer is inputted then I want the program to jump to the next statement (hence ‘pass’ on line 4). However, whatever I type in, the program always jumps to the next statement, regardless of whether it’s a string or a float.
TimeHours = input("Countdown time in hours:")
while isinstance(TimeHours, int) is True:
pass
if float(TimeHours) / 1 != int(float(TimeHours)):
input('Please input a whole number, decimals are not accepted.')
elif isinstance(TimeHours, str):
input('Alphabetical letters or unknown characters are not allowed, e.g. A, B, C, (, *')
continue
I tried using if statements and defining functions, but I can’t seem to make it work.
Advertisement
Answer
like this
while True:
TimeHours = input("Countdown time in hours:")
try:
TimeHours = int(TimeHours)
break
except ValueError as e:
print('Alphabetical letters or unknown characters are not allowed, e.g. A, B, C, (, *')
continue