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