Python 代码返回“;无”;在编解码器上,我不知道为什么

Python 代码返回“;无”;在编解码器上,我不知道为什么,python,function,python-3.x,return,Python,Function,Python 3.x,Return,说明: 首先,用一个参数定义一个名为distance_from_zero的函数(选择任意>参数名称) 如果参数类型为int或float,则函数应返回>函数输入的绝对值 否则,函数应返回“Nope” 我已经完成了第一项任务,但我认为我已经完成了任务 “当您的函数返回'None'而不是'Nope'时,输入True时似乎失败” 这是我的密码: def distance_from_zero(argument): if type(argument) == int or type(argument) ==

说明:

首先,用一个参数定义一个名为distance_from_zero的函数(选择任意>参数名称)

如果参数类型为int或float,则函数应返回>函数输入的绝对值

否则,函数应返回“Nope”

我已经完成了第一项任务,但我认为我已经完成了任务

“当您的函数返回'None'而不是'Nope'时,输入True时似乎失败”

这是我的密码:

def distance_from_zero(argument):
if type(argument) == int or type(argument) == float:
    return abs(argument)
    print(argument)
else:
    print("Nope")
从我在其他模块codecademy中看到的情况来看,我的参数为“1”,因此if语句将返回(参数)的绝对值,然后我将通过该模块。(为了测试,我添加了print(参数),控制台不输出任何内容。)

我是否误解了回归的工作原理?为什么这不起作用? 我感谢所有的回复!:)


编辑:它在控制台中打印“无”,而不是“无”。忘了提到这一点。

在Python中,如果返回不是显式的,它将变成
None
。试试这个:

def distance_from_zero(argument):
    if type(argument) == int or type(argument) == float:
        print(abs(argument))
    else:
        print("Nope")

> f = distance_from_zero(-4234)
4234
> f
None
如您所见,f的值为
None
,这是因为
print
正在输出到控制台,而不是主动返回内容。相反,请尝试使用
return
语句:

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

> distance_from_zero(123)
123 
# here, because you're not assigning the value returned to a variable, it's just output.
> f = distance_from_zero(-4234)
> f
4234
> f = distance_from_zero('cat')
> f
'Nope'
了解以下原因也很重要:

return abs(argument)
print(argument) 

打印到控制台不是因为
print
调用。块中
return
之后的任何内容都不会执行。您看到输出打印到屏幕上的原因是,在解释器中,Python输出所有未收集到变量中的函数返回值。

在Python中,如果返回值不显式,它将变为
None
。试试这个:

def distance_from_zero(argument):
    if type(argument) == int or type(argument) == float:
        print(abs(argument))
    else:
        print("Nope")

> f = distance_from_zero(-4234)
4234
> f
None
def distance_from_zero(num):
    if type(num) == int or type(num) == float:
        return abs(num)
    else:
        return "Nope"
如您所见,f的值为
None
,这是因为
print
正在输出到控制台,而不是主动返回内容。相反,请尝试使用
return
语句:

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

> distance_from_zero(123)
123 
# here, because you're not assigning the value returned to a variable, it's just output.
> f = distance_from_zero(-4234)
> f
4234
> f = distance_from_zero('cat')
> f
'Nope'
了解以下原因也很重要:

return abs(argument)
print(argument) 

打印到控制台不是因为
print
调用。块中
return
之后的任何内容都不会执行。您看到输出打印到屏幕上的原因是,在解释器中,Python输出所有未收集到变量中的函数返回值。

else
子句中没有
return
语句。你的函数打印字符串
'Nope'
而不是返回它。函数什么也不打印,“None”,不是“Nope”,对不起,如果我不清楚,打印和返回是不一样的。我想我必须查看返回,我对它很困惑哈哈。无论哪种方式,我在else语句中返回并通过了,谢谢:^)在
else
子句中没有
return
语句。你的函数打印字符串
'Nope'
而不是返回它。函数什么也不打印,“None”,不是“Nope”,对不起,如果我不清楚,打印和返回是不一样的。我想我必须查看返回,我对它很困惑哈哈。无论哪种方式,我在else语句中返回并通过了,谢谢:^)def distance_from_zero(num):if type(num)==int或type(num)==float:return abs(num)else:return“Nope”def distance_from_zero(num):if type(num)==int或type(num)==float:return abs(num)else:return“Nope”
def distance_from_zero(num):
    if type(num) == int or type(num) == float:
        return abs(num)
    else:
        return "Nope"