为了账号安全,请及时绑定邮箱和手机立即绑定

关于lambda:x -x if x < 0 else x if x<0 后面不是应该有冒号吗?if x<0 :

关于lambda:x -x if x < 0 else x if x<0 后面不是应该有冒号吗?if x<0 :

Lee_Lee_Z 2016-04-07 21:16:52
查看完整描述

3 回答

?
koc

TA贡献1条经验 获得超1个赞

楼上纯粹是在瞎说…… x if condition else y 是一个 python 的专门的语法,等价于 C 里面的 condition ? x : y,如果你没学过 C 的话,这个语法的含义就是,先判断 condition 的真假,如果为真,整个表达式就返回 x,如果为假就返回 y。和 lambda 表达式没什么关系。
查看完整回答
1 反对 回复 2016-04-09
?
雨中寥落

TA贡献1条经验 获得超0个赞

.........大哥

lambda:x -x if x < 0 else x if x<0     

lambda x: -x if x < 0 else x if x<0

这俩一样吗......


查看完整回答
反对 回复 2016-04-09
?
清波

TA贡献165条经验 获得超90个赞

姑且成 lambda表达式 为匿名函数吧, lambda 表达式的主体 也就是冒号后面的语句,并不是标准的Python代码块,而是一个简单地逻辑结构,所以Python 中的一些语法没有应用到这里,这也就是 if 后面没有 冒号的原因。


另外,楼主这个lambda表达式,令人费解,还有语法错误。不知何解,望告知。

查看完整回答
反对 回复 2016-04-07
  • Lee_Lee_Z
    Lee_Lee_Z
    >>> myabs = lambda x: -x if x < 0 else x >>> myabs(-1) 1 >>> myabs(1) 1
  • 清波
    清波
    恩, 冒号前面有个x 才有意义
  • 3 回答
  • 0 关注
  • 2214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信