这是我的代码,用于检查在使用lambda将100添加到数字后,getBonus()的值是否高于5000。假设我必须使用lambda方法,如何使用if-else等条件语句检查该值是否大于5000?
return
它一直说返回超出了我认为它指的是lambda表达式
的函数答案 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