3 回答

TA贡献1802条经验 获得超6个赞
首先,正如其他人所建议的那样,使用raw_input()。
然后,您可以尝试将其转换为int或float。如果两者均失败,则您没有电话号码。如果要保留“原始”类型,可以使用以下命令:
def distance_from_zero(n):
try:
n = int(n)
except ValueError:
try:
n = float(n)
except ValueError:
print "Not a number!"
n = float("NaN")
return abs(n)
如果您不介意将输入1转换为1.0,则可以简化函数:
def distance_from_zero(n):
try:
return abs(float(n))
except ValueError:
print "Not a number!"
return float("NaN") # or remove this line to return None
在这两种情况下,您都应像下面这样调用该函数:
var = raw_input("Enter number: ")
print distance_from_zero(var)

TA贡献1895条经验 获得超3个赞
有两件事:
input()在Python 2.7中等效于eval(raw_input())。因此,如果您输入“ hello”,它将引发一个NameError(除非有变量hello)。如果您使用的是Python 2.7,请使用raw_input()。但是,如果您使用的是python 3,请使用input(),因为raw_input()Python 3中不存在(并且输入与3中的raw_input完全相同)
您还返回了n而不是var绝对值。
def distance_from_zero(n):
try:
return abs(float(n))
except ValueError:
return "That is not an integer or float!"
var = raw_input("Enter number:")
print var
distance_from_zero(var)
另外,对于检查类型,您应该使用isinstance()。
添加回答
举报