如果寻找浮动的语句不起作用
If statement looking for float is not working
我正在学习 Python,我编写了一个简单的脚本来创建我今天需要完成的任务列表。在输入要完成的任务后,我让脚本询问完成该任务需要多长时间。它可以将浮点数添加到一个名为 "totaltime" 的变量中,但是如果你输入一个单词,它就会崩溃,所以我创建了一个 if else 语句来查找用户是否输入了整数和浮点数,如果他们没有输入,让他们重复这个过程。出于某种原因,当我 运行 它时,它无法查看输入是浮点数还是整数,它只是在 else 语句上移动并重复它。请帮忙!我一直在网上搜索,找不到解决方案。我添加了脚本的问题部分,这样更容易阅读(和 totaltime 变量)
totaltime = float()
while True:
print("How long will this task take?")
new_time = input("> ")
if new_time == int or new_time == float:
totaltime = float(totaltime) + float(new_time)
break
else:
print("You must enter a valid number, written as (H.M).")
您应该在 try
/except
块中进行转换,而不是检查类型。
totaltime = 0.0
while True:
try:
new_time = float(input("How long will this task take?\n> "))
totaltime += new_time
break
except ValueError:
print("You must enter a valid number, written as (H.M).")
无论如何,您检查类型的尝试是有缺陷的。来自 input
的 return 值将始终为 string
。
如果你确实想检查类型,你应该使用isinstance
例如
if isinstance(new_time, (int, float)):
但您的代码实际上是针对 new_time
的 值 测试类型 int
或 float
。这永远是错误的。
我正在学习 Python,我编写了一个简单的脚本来创建我今天需要完成的任务列表。在输入要完成的任务后,我让脚本询问完成该任务需要多长时间。它可以将浮点数添加到一个名为 "totaltime" 的变量中,但是如果你输入一个单词,它就会崩溃,所以我创建了一个 if else 语句来查找用户是否输入了整数和浮点数,如果他们没有输入,让他们重复这个过程。出于某种原因,当我 运行 它时,它无法查看输入是浮点数还是整数,它只是在 else 语句上移动并重复它。请帮忙!我一直在网上搜索,找不到解决方案。我添加了脚本的问题部分,这样更容易阅读(和 totaltime 变量)
totaltime = float()
while True:
print("How long will this task take?")
new_time = input("> ")
if new_time == int or new_time == float:
totaltime = float(totaltime) + float(new_time)
break
else:
print("You must enter a valid number, written as (H.M).")
您应该在 try
/except
块中进行转换,而不是检查类型。
totaltime = 0.0
while True:
try:
new_time = float(input("How long will this task take?\n> "))
totaltime += new_time
break
except ValueError:
print("You must enter a valid number, written as (H.M).")
无论如何,您检查类型的尝试是有缺陷的。来自 input
的 return 值将始终为 string
。
如果你确实想检查类型,你应该使用isinstance
例如
if isinstance(new_time, (int, float)):
但您的代码实际上是针对 new_time
的 值 测试类型 int
或 float
。这永远是错误的。