python条件控制语句

python2.5之前不支持C/C++中x=(y>1 ? 1 : 2)这类三元运算符可以借组tuple元组实现:
>>> number=int(input())
1
>>> res=(-number,number)[number>0]
>>> res
1
>>> number=-1
>>> res=(-number,number)[number<0]
>>> res
-1
>>> res=(-number,number)[number>0]
>>> res
1
以上实现由于不是内置的条件控制语句所以所有逻辑途径都会被计算,引用lambda函数则只有到达该逻辑路径时才进行计算。
>>> res=(lambda:-number,lambda:number)[number>0]
>>> res
<function <lambda> at 0x01018108>
>>> res=(lambda:-number,lambda:number)[number>0]()
>>> res
1
python2.5以后支持所谓的三元运算如下:
>>> res = -number if number < 0 else number
>>> res
1
python不支持switch操作,可通过字典或数组实现:
>>> result = {'a':lambda x: x+1,'b': lambda x: x+2,'c': lambda x: x+3}
>>> result['a'](15)
16
>>> result['b'](100)
102
>>> result['c'](111)
114
另一种实现:
>>> def a():
print ('a')
 
>>> def b():
print ('b')
 
>>> def c():
print ('c')
 
>>> menu = [a,b,c]
>>> menu [0]()
a
>>> menu [2]()
c
posted @ 2012-08-18 14:49  ArthurSJiang  阅读(192)  评论(0编辑  收藏  举报