说明:
首先,用一个参数定义一个名为distance_from_zero的函数(选择你喜欢的任何>参数名称)。
如果参数的类型是int或float,则函数应返回>函数输入的绝对值。
否则,该函数应返回" Nope"
我完成了第一项任务而我认为我已完成任务,但是
"当函数返回时,您的函数似乎在输入时失败'无'而不是' Nope'
这是我的代码:
Accept header
从我在其他模块中看到的,codecademy测试这个,我的论点是" 1",这样if语句通过,将返回(参数)的绝对值,然后我将通过模块。 (为了测试目的,我添加了print(参数),控制台什么也没输出。)
我是否误解了返回的工作原理?为什么这不起作用? 我感谢所有回复! :)
编辑:它打印"无",不" Nope"在控制台中。忘了提这个。
答案 0 :(得分:0)
在Python中,如果return不是显式的,则变为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输出的所有函数返回值都没有收集到变量中。
答案 1 :(得分:0)
def distance_from_zero(num):
if type(num) == int or type(num) == float:
return abs(num)
else:
return "Nope"