将lambda与条件语句一起使用

时间:2016-10-22 15:20:15

标签: python lambda

这是我的代码,用于检查在使用lambda将100添加到数字后,getBonus()的值是否高于5000。假设我必须使用lambda方法,如何使用if-else等条件语句检查该值是否大于5000?

return

它一直说返回超出了我认为它指的是lambda表达式

的函数

1 个答案:

答案 0 :(得分:3)

您的代码不正确,但我明白了。

这可能是一个lambda但有点扭曲(因为你必须测试x对5000但增加了100.使用三元是关键:

bonus=1000
getBonus = lambda x: x+100+bonus*2 if x>4900 else x+100+bonus
print(getBonus(3000))
print(getBonus(4950))
print(getBonus(4900))
print(getBonus(6000))

结果:

4100
7050
6000
8100

我想我得到了公式&测试OK。测试表明了这一点,但只是我怀疑的事实意味着为此创建一个lambda并不是一个好主意,除非你不能这样做。

编辑:证明这是一个坏主意:我必须修复lambda,因为它是错误的(5100 => 4900)。这是常规函数定义。我宁愿去那个:

def getBonus(x):
    x += 100
    return x+bonus*2 if x>5000 else x+bonus