python文档学习: 逻辑控制相关

refers to python tutorial

使用循环的一些技巧

  • 当我们要循环一个序列(可迭代)的时候, 如果需要同时检索索引和对应的值, 我们可以用内置函数enumerate():
for i, item in enumerate(iterable):
     blablabla...
  • 当我们要同时循环两个序列的时候, 可以用zip():
t1 = (1, 3, 5)
t2 = (2, 4, 6)
for  item1, item2 in zip(t1, t2):
    blablalba...
  • 要倒序的遍历一个序列时, 用reversed():
for i in reversed(xrange(1,10,2)):
    print i
  • 要遍历一个有序的序列, 用sorted():
l = [1, 3, 3, 5]
for item in sorted(set(l)):
blablabla...
  • 要同时遍历一个字典的键值对时, 用字典对象的iteritems():
d = {'1': 'a', '2': 'b', '3': 'c'}
for k, v in d.iteritems(d):
    blablabla...
  • 最后一点建议, 如果想要在遍历过程中修改序列的值, 最好是建一个新序列, 以免误操作.

关于condition需要注意的:

  • while和if语句里不止可以有比较符, 可以有任何的操作符. 这是python的一个特色, 也是我特别喜欢的一点, 非常简洁好用.
    比如while或者if后接数字, 如果等于0, 就相当于, 如果非零那就是:
a = 1
b = 2
if not a * 2 - b:
    print 'hello'

如果接序列, 如果非空就代表, 否则为:

a = [1, 3]
b = []
if a:
    blabla...
if b:
    blabla...
  • 比较符可以连着用:
if a < b == c:
    blabla...

这里先比较a<b, 然后比较b==c.

  • 条件语句之间可以用and, or, not; 而不是&&, ||, !. 是不是非常的人性化, 非常的不反人类, 非常的readable. I love this design!!!
    优先级是这样的: 比较符最高, not次之, and再次之, or最后.
    比如: not a>b and c or d, 相当于((not (a>b)) and c) or d
  • and和or被称作是short-circuit操作符. 执行顺序是从左到右, 一旦得到确定值后面的逻辑运算就不做了.
    比如: 1 or b or c
    1已经已知了, 后面又接两个or操作符, 无论b和c是真是假最后结果都是真, 所以or b, or c两个运算就都不做了.
    引用文档的一个例子:
 a = ''
b = 'haha'
c = 'hehe'
d = a or b or c
d
>>> 'haha'
    原文作者:Edward_f0cus
    原文地址: https://www.jianshu.com/p/03d09c490025
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞