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 Responses

  1. feicun says:

    太专业了……看不懂……

    • 轶侠 says:

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

      • feicun says:

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

        • 轶侠 says:

          你的每个留言我都有看的,真的……