2007-04-13

python中的逻辑运算

关键字: python

很多语言种都有这样一个三目运算符,bool ? a : b,使用也很方便,bool为true返回a,否则返回b,python中需要使用and or这两个东东达到同样的效果,实际上python中的逻辑运算符挺让人头疼的。

举个简单的例子:

python 代码
  1. >>> a = "first"   
  2. >>> b = "second"   
  3. >>> 1 and a or b    
  4. 'first'   
  5. >>> 0 and a or b    
  6. 'second'   

上面的这段代码就是等同三目运算符的了.

and操作会依次比较各个表达式,返回第一个为false的表达式,否则返回最后一个为true的表达式
or操作刚好相反,返回第一个为true的表达式,否则返回最后一个为false的表达式

这样在看上面的代码就容易多了

Example code的脚本中有这么一段

python 代码
  1. processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)  
很好的利用了and和or的用法,可以根据collapse的值来给前面的函数附值,多么方便
评论
发表评论

您还没有登录,请登录后发表评论

小嘴看世界
搜索本博客
我的相册
F9d2dd1b-26f5-3fa8-8934-863e273e9e39-thumb
传说中的奶牛
共 14 张
存档
最新评论