Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在执行这段代码时,我得到两个输出。一个是正确的,另一个是不正确的。代码中有错误吗?_Python_Python 3.x_Lambda Calculus - Fatal编程技术网

Python 在执行这段代码时,我得到两个输出。一个是正确的,另一个是不正确的。代码中有错误吗?

Python 在执行这段代码时,我得到两个输出。一个是正确的,另一个是不正确的。代码中有错误吗?,python,python-3.x,lambda-calculus,Python,Python 3.x,Lambda Calculus,我刚开始学习python。在学习lambda函数时,我尝试执行此代码。 我得到两个输出。一个是正确的,另一个说没有 没有错误。python中的每个函数都返回一个值。如果没有显式return语句,则返回值始终为None lambda函数显式返回其包含的代码行的值。您的函数返回一个打印函数的值,该函数猜测什么函数返回无。所以,当你写作的时候 print(oddeven(5)) 发生以下情况: -解释器运行odd偶数代码,其中包括调用print>first line打印到控制台 -然后,解释器对od

我刚开始学习python。在学习lambda函数时,我尝试执行此代码。 我得到两个输出。一个是正确的,另一个说没有


没有错误。python中的每个函数都返回一个值。如果没有显式return语句,则返回值始终为None lambda函数显式返回其包含的代码行的值。您的函数返回一个打印函数的值,该函数猜测什么函数返回无。所以,当你写作的时候

print(oddeven(5))
发生以下情况: -解释器运行odd偶数代码,其中包括调用print>first line打印到控制台 -然后,解释器对odd偶数的返回值调用print,该值为None>第二行被打印

要解决此问题,请不要在odd偶数中调用print,而是返回字符串,或者不要在odd偶数中调用print,而只是像这样调用odd偶数:

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)
输出 我所做的只是删除模校验周围不必要的括号,并删除lambda函数中已经存在的多余的print语句

5 is odd
6 is even