Python中的a?b:c

写代码到一半,今天是Python,想用(?:),然后突然发现强大的Python竟然不支持这个,OMG。Google之,事实证明总有类似的方法:

val = float(raw_input("Age: "))
status = ("working","retired")[val>65]
print "You should be",status
<?php $status = ($val > 65) ? "retired" : "working"; ?>

BTW: 谁能告诉我ternary operator的中文是什么?玉伯说了,叫“三元操作符”,Leo说叫“三目运算”,也有说叫“逻辑运算”的。

今天看到一blog叫life is short - you need Python!

事实证明我又白了一次,人家用的就是tuple嘛,先建个("working","retired"),后面的[val>65]就相当于[0]或者[1],其实一点儿都不奇妙,只是人家不说咱就想不到。

4条回复

  1. feicun说到:

    太专业了……看不懂……

    • 轶侠说到:

      这个本来就是我自己的笔记啦

      • feicun说到:

        啊啊,我太激动了……在我不懈留言的努力下,侠姐终于回复了我一条留言……泪奔

发表评论

您的电子邮箱地址永远不会被公开。 标记为 * 的区域必须填写