Python- abs值返回时出错

时间:2017-06-28 05:43:30

标签: python

任何帮助将不胜感激。以下是代码:

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

3 个答案:

答案 0 :(得分:1)

你可以这样做:

def distance_from_zero(n):
    if type(n) == int or type(n) == float:
        return abs(n)
    else:
        # return Nope does not work
        # do something else

另一种方法:

def distance_from_zero(n):
    try:
        abs(n)
    except TypeError:
        print("n is not int or float")
        # do something else
        # you can raise OR pass and handle the error yourself

答案 1 :(得分:1)

错误是因为abs是一个内置函数,但在你的代码中,它没有返回任何值。您需要将 abs 更改为 abs(n)。另一个问题是 Nope 不是关键字。

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

答案 2 :(得分:0)

这样更好:

if 1 is True:  # Not if 1 == True

if 1 is False:   # Not if 1 == False

if type(1) is int:  # Not if type(1) == int