回顾:codecademy中的内置函数

时间:2013-07-12 00:06:48

标签: python

这是来自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号是怎么出来的?我的代码出了什么问题?

4 个答案:

答案 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"