【发布时间】:2023-01-02 21:21:15
【问题描述】:
我正在尝试用 Python 编写一个程序,要求用户输入几个小时,然后以秒为单位开始倒计时,但是我还想确保没有输入浮点数/字符串,如果是,用户需要提示相同的问题并输入正确的值。如果输入一个整数,那么我希望程序跳转到下一条语句(因此在第 4 行“通过”)。然而,无论我输入什么,程序总是跳转到下一条语句,不管它是字符串还是浮点数。
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
我尝试使用 if 语句和定义函数,但我似乎无法使其工作。
【问题讨论】:
-
你是
passing。 -
isinstance(TimeHours, int)永远不会是True。 -
如果我删除“通过”,它出于某种原因会做同样的事情。另外,如果答案是整数,我需要它通过,如果不是,我希望它出错并重新启动语句。
-
@erip
pass是空操作在这种情况下无关紧要 -
input() 的返回始终是一个字符串,而不是整数、浮点数或其他任何东西(除非您仍在使用 Python 2)。如果需要数字,则必须自己将字符串转换为数字。
标签: python