评论:codecademy中的内置函数

2024-03-29 13:06:42 发布

您现在位置:Python中文网/ 问答频道 /正文

这是来自codecademy,about Review:内置函数:

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失败。

我想知道,10号是怎么出来的?我的密码怎么了?


Tags: or函数fromreturnifdeftypefloat
3条回答

当一个函数返回某物时,它会立即中断。所以你的功能就是返回你传递给它的数字。

您需要在打印语句后return abs(n)

另外,要检查类型,应该使用^{}。要在这里使用它,您可以执行以下操作:

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()

您只是返回参数,所以它不返回绝对值。所以如果你用-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!"

你应该尝试:

def distance_from_zero(n):
    if type(n) == int or type(n) == float: 
        return abs(n)
    else:
        return "Nope"

相关问题 更多 >