执行此代码时,我得到两个输出。一个是正确的,另一个是NONE。代码有没有错误?
While executing this code I am getting two output. One is correct one and the other is NONE. Is there any error in the code?
刚开始学python。在了解 lambda 函数时,我尝试执行这段代码。
我得到两个输出。一个是正确的,另一个是 NONE.
Here is the code and its output.
没有错误。 python return 中的每个函数都是一个值。如果没有显式 return
语句,则 return 值始终为 None
(lambda 函数显式 return 它们包含的代码行的值)。您的函数 return 是 print()
函数的值,它(猜猜是什么)return 是 None
。所以,当你写
print(oddeven(5))
发生以下情况:
- 解释器运行 oddeven
的代码,其中包括对 print
的调用 > 第一行打印到控制台
- 解释器然后在 oddeven
的 return 值(即 None
)上调用 print
> 第二行被打印出来
要解决此问题 - 要么不要在 oddeven
中调用 print
,而是在 return 字符串中调用,或者不要在 oddeven
中调用 print
,而只是像那样调用 oddeven
:
oddeven(5)
oddeven(6)
此代码工作正常:
oddeven = lambda x: print('{} is even'.format(x)) if x % 2 == 0 else print('{} is odd'.format(x))
oddeven(5)
oddeven(6)
输出
5 is odd
6 is even
我所做的只是删除模数检查周围不必要的括号并删除您的 lambda 函数中已经存在的冗余打印语句
刚开始学python。在了解 lambda 函数时,我尝试执行这段代码。 我得到两个输出。一个是正确的,另一个是 NONE.
Here is the code and its output.
没有错误。 python return 中的每个函数都是一个值。如果没有显式 return
语句,则 return 值始终为 None
(lambda 函数显式 return 它们包含的代码行的值)。您的函数 return 是 print()
函数的值,它(猜猜是什么)return 是 None
。所以,当你写
print(oddeven(5))
发生以下情况:
- 解释器运行 oddeven
的代码,其中包括对 print
的调用 > 第一行打印到控制台
- 解释器然后在 oddeven
的 return 值(即 None
)上调用 print
> 第二行被打印出来
要解决此问题 - 要么不要在 oddeven
中调用 print
,而是在 return 字符串中调用,或者不要在 oddeven
中调用 print
,而只是像那样调用 oddeven
:
oddeven(5)
oddeven(6)
此代码工作正常:
oddeven = lambda x: print('{} is even'.format(x)) if x % 2 == 0 else print('{} is odd'.format(x))
oddeven(5)
oddeven(6)
输出
5 is odd
6 is even
我所做的只是删除模数检查周围不必要的括号并删除您的 lambda 函数中已经存在的冗余打印语句