我知道类似的问题以前已经有人问过并得到了回答,比如这里:如何在Python中检查字符串是否为数字(浮点数)?
然而,它并没有提供我所需要的答案。我要做的是:
def main():
print "enter a number"
choice = raw_input("> ")
# At this point, I want to evaluate whether choice is a number.
# I don't care if it's an int or float, I will accept either.
# If it's a number (int or float), print "You have entered a number."
# Else, print "That's not a number."
main()
大多数问题的答案建议使用try..except,但这只允许我评估int或floats,即
def is_number(s):
try:
float(choice)
return True
except ValueError:
return False
如果我使用这段代码,整数值将最终出现在异常中。
我看到的其他方法包括str.isdigit。然而,这会返回True(对于整数)和False(对于浮点数)。
float('123')
返回123.0
,不会出现ValueError
。因此你的函数运行良好。 - Remi Guan