Lambda with nested if else is not working
我是Python的新手,目前正在学习
Define a function
max_of_three() that takes three numbers as arguments
and returns the largest of them.
我通过了这篇老文章,但没有成功:
1 2 3 | >>> max_of_three = lambda x, y, z : x if x > y else (y if y>z else z) >>> max_of_three(91,2,322) 91 |
为什么不返回Z?是X。
目前您使用的是
1 2 3 | max_of_three = lambda x, y, z: x if x > y and x > z else (y if y > z else z) print max_of_three(91, 2, 322) >>> 322 |
或者,简化一下:
1 2 3 4 | max_of_three=lambda x,y,z:max((x,y,z)) max_of_three(1,2,3) 3 |
我知道这是骗人的,但是使用语言原语通常比较容易。
1 2 3 | >>> max_of_three = lambda x, y, z : x if x>y and x>z else (y if y>z else z) >>> max_of_three(91,2,322) 322 |
您可以按如下方式修改您的函数:
1 | max_of_three = lambda x, y, z : x if x > y and x > z else (y if y>z else z) |
你的问题是你没有检查,