python问题

smaller=(x<yand[x]or[y])[0]怎么理解?我知道是取xy中的较小的一个但是为什么?... smaller=(x < y and [x] or [y])[0]怎么理解?
我知道是取x y中的较小的一个 但是为什么?
展开
 我来答
百度网友ce3165fd6
推荐于2016-09-02 · TA获得超过391个赞
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:177万
展开全部
这就是python中著名的and-or技巧了!python中没有C语言里面方便的?:算符,但是这个技巧可以发挥相同的作用。
如果x<y为真,取and后面的第一项
如果x<y为假,取and后面的第二项
至于中括号是为了防止x=0这种特殊情况,因为and-or技巧此时不起作用——这也是唯一需要注意的特例。例如x=0,y=1:此时显然为真,但是x<y and x or y中因为x为假,所以最后得到的是y——较大的那个。但是加上中括号[x]=[0]是一个真值,最后得到的是[0]。之后在取第0项就行了~
andelf
2009-03-14 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:0
展开全部
在 python2.5 的 what's new 有详细解释
这个是在 python 2.5 前的三元逻辑操作表示方法
python2.5 正式支持
smaller = x if x<y else y
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PingPingFr
2009-03-13 · TA获得超过147个赞
知道答主
回答量:47
采纳率:0%
帮助的人:0
展开全部
这里巧妙的利用了and和or
True and [x] = [x]
False or [y] = [y]

括号里返回的是[x]或者[y]
最后的[0]是提取元素

其实如果x y 都赋了值的话
smaller = (x < y and x or y)

我坦白
其实你问之前我也不知道
现在咱们都知道了
嘿嘿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-03-14
展开全部
python 能实现三层架构吗

参考资料: http://www.2shoushu.com/

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式