【发布时间】:2020-09-10 20:10:45
【问题描述】:
使用lambda 我想编写一个模块,其中一个函数返回两个数字中的最大值,另一个函数返回两个数字中的最小值,另一个函数返回相等的数字。每当您调用该模块时,它会自动要求两个值进行比较。
我可以这样做:
print('Input two values to compare')
a=[input(),input()]
big=lambda a: max(a)
small=lambda a: min(a)
equal=lambda a: a+['Both values are equal'] if(a[0]==a[1]) else 'Not equal'
big(a)
small(a)
equal(a)
这给了我正确的输出,但问题是我无法弄清楚如何同时运行这一切并打印所有三个输出,这里只有 equal(a) 函数将执行,但 big(a) 和 small(a) 在单个流程中不会执行.
当我在一个模块中调用所有这些时,我打算同时执行所有这些。如果有更好的方法使用lambda,请告诉我。
【问题讨论】:
-
所有的行都会被执行。你的意思是打印三个函数的输出吗?
-
“捕获输出”到底是什么意思?
-
我不明白“在同一实例中捕获输出” - 如果您使用
print( big(a), small(a), equal(a) ),那么您会看到所有值。如果你以某种奇怪的方式运行它,那么它只会显示最后一个函数的结果。但是您可以创建tuple,所有结果都放在一行big(a), small(a), equal(a)(用逗号分隔) -
@jakub 和 martineau 我打算一次打印所有 3 个函数的输出。
-
@furas 我曾尝试使用
print(big(a),small(a),equal(a)),但它再次只打印相等(a)结果
标签: python python-3.x lambda