【发布时间】:2015-11-03 18:22:27
【问题描述】:
我有一段代码用于验证用户输入的数据,以确保只采用大于零的数字,如下所示:
while True:
x = raw_input("Please enter a number greater than zero.")
try:
x = int(x)
num = True
except ValueError:
print "Sorry, you entered an invalid input. Please ensure you enter only numbers greater than zero."
if x > 0:
if num == True:
break
elif x <= 0:
print "Sorry, you entered an invalid input for time. Please ensure you enter only positive numbers. \n"
但是,此语句捕获大于零的十进制数,我想允许它通过。为了防止这种情况发生,我应该改变什么?
P.S:另外,谁能准确地解释一下为什么会发生这种情况?
【问题讨论】:
-
我想我是怎么做到的,将 int 更改为 float 并假设一切都是 float 数据类型?当然,您可以尝试 int、throw、尝试 float、throw
-
这是模糊的。请发布工作代码、示例输入、预期输出和实际结果。
-
如果用户输入“0.5”,你想要什么结果?
-
用户提出问题后再也回不来的那一刻……
-
对不起,我有一些家庭问题。我现在回来了。我想要做的是让用户能够给我任何输入,但是让我的程序抛出一个错误,告诉用户如果他们输入了数字以外的任何内容,他们做错了什么。我现在已经编辑了问题以包含工作代码。
标签: python python-2.7 floating-point decimal