Python 三目运算符 bool ? a : b 表达式
在python中没有类似java和C语言中的bool?a:b表达式,但是有变通实现的语句:
print x if x<0 else y
另一种实现使用 and-or
and-or主要是用来模仿 三目运算符 bool?a:b的,即当表达式bool为真,则取a否则取b,and-or 技巧,bool and a or b 表达式,当 a 在布尔上下文中的值为假时,不会像 C 语言表达式 bool ? a : b 那样工作。所以我们需要一种安全的形式使用and-or:
>>> a=""
>>> b="second"
>>> (1 and [a] or [b])
['']
>>> (1 and [a] or [b])[0]
''
由于 [a] 是一个非空列表,所以它决不会为假。即使 a 是 0 或者 '' 或者其它假值,列表 [a] 也为真,因为它有一个元素。
xrange 和 range
语法:range(stop)
语法:range(start,stop[,step])
xrange与range语法相同,但性能更好,更快更节省内存。
range返回一个List。而xrange返回一个对象。xrange 比 range性能更好。推荐使用xrange替换range。
for num in xrange(10):
print(num)
网友评论