Python 计算表达式外部为true,内部为false
我很抱歉,如果这是一个重复,但我找不到任何关于这个 (Python 2.7.6) 在本质上,我使用了以下代码的变体:Python 计算表达式外部为true,内部为false,python,if-statement,types,python-2.x,Python,If Statement,Types,Python 2.x,我很抱歉,如果这是一个重复,但我找不到任何关于这个 (Python 2.7.6) 在本质上,我使用了以下代码的变体: def isnum(a): try: float(a) return True except ValueError: return False 它确定用户输入是否确实是数字 isnum(3) True isnum("3") True 如果我使用以下代码: def input(): while True:
def isnum(a):
try:
float(a)
return True
except ValueError:
return False
它确定用户输入是否确实是数字
isnum(3)
True
isnum("3")
True
如果我使用以下代码:
def input():
while True:
a = raw_input("Please enter a number:")
if isnum(a):
print float(a)
break
else:
print "Please enter only numbers!",a,'is invalid'
input()
我还想指出,我也尝试了isnum(a)==True
当提示输入“3”时,我收到“仅输入数字”错误提示
Please enter a number:"3"
Please enter only numbers! "3" is invalid
提前感谢。您将
“3”
作为输入,而不是3
“3”
是一个包含3的字符串。但是当你把它发送到原始输入时,它变成了“'3”
,它是由引号包围的3,不是一个数字。你不应该输入“3”
,只是3
,float('3“)
不同于float(“3”)
。另外,str.isdigit()
是一个内置的,它实现了你的isnum()
是的。我自己刚意识到。无论如何谢谢你!