【发布时间】:2016-06-19 04:06:33
【问题描述】:
所以我需要一个非常有效的代码,它可以从用户那里接受 0 到 1 之间的任何数字,并不断提示他们重试,直到他们的输入符合这个标准。 这是我到目前为止所得到的:
def user_input():
while True:
global initial_input
initial_input = input("Please enter a number between 1 and 0")
if initial_input.isnumeric() and (0 <= float(initial_input) <= 1):
initial_input = float(initial_input)
return(initial_input)
print("Please try again, it must be a number between 0 and 1")
user_input()
这有效,但只有当数字实际上是 1 或 0 时。如果你在这两者之间输入一个小数(例如 0.6),它会崩溃
【问题讨论】:
-
如果你在这些之间输入一个小数(例如 0.6),它会崩溃....错误信息是什么?
-
除了“类'float'的未解析的属性引用'是数字'”之外没有错误消息。循环就像我输入一个不在 1 和 0 之间的数字一样运行(不断要求我再试一次)@Xoce
-
您将输入转换为浮点数两次,一次 before 您尝试对其调用字符串方法。逐行查看您的代码,直到您了解每个代码在做什么。
-
那你知道怎么解决吗? @jonrsharpe
-
是的,但我认为你应该自己解决。
标签: python-3.x error-handling floating-point