这是来自codecademy,关于Review:Built-In Functions:
def distance_from_zero(n):
return n
if type(n) == int or type(n) == float:
print "The absolute value of the input is ", abs(n)
else:
print "Not an integer or float!"
错误代码是: 哎呀,再试一次!当你的函数返回-10而不是10时,你的函数似乎失败了。
我想知道10号是怎么出来的?我的代码出了什么问题?
答案 0 :(得分:2)
您只是返回参数,因此它不会返回绝对值。因此,如果你将-10作为参数给出,它会吐出-10,当答案应该是10时。要解决这个问题,你需要通过以下方式返回参数的绝对值:
return abs(n)
您还应该将return语句移动到if
部分的末尾,这样您就不会尝试返回非数字的绝对值。
def distance_from_zero(n):
if type(n) == int or type(n) == float:
print "The absolute value of the input is ", abs(n)
return abs(n)
else:
print "Not an integer or float!"
答案 1 :(得分:1)
当函数返回某些内容时,它会立即中断。所以你所有的功能都是返回传递给它的数字。
您需要在打印声明后return abs(n)
。
另外,要检查类型,您应该使用isinstance()
。要在此处使用,您可以:
def distance_from_zero(n):
if isinstance(n, (int, float)):
n = abs(n)
print "The absolute value of the input is ", n
return n
else:
print "Not an integer or float!"
请记住Codecademy检查代码的方式有点“狡猾”。 Codecademy上有一个内置的论坛系统,您可以查看某些练习。要通过此练习,您可能需要使用type()
而不是isinstance()
。
答案 2 :(得分:0)
你应该尝试:
Menu
答案 3 :(得分:-1)
def distance_from_zero(n):
if type(n) == int or type(n) == float:
print "The absolute value of the input is ", abs(n)
return abs(n)
else:
return "Nope"