欢迎来到田晓东的博客

人生三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
扩大
缩小

条件&循环

if
1.支持多重条件表达式: if not warn and (system_load>=10):
2.单一语句的代码块:(如果代码块只有一行代码):if make_hard_copy:send_data_to_printer()
3.可以避免悬挂
4.elif可以替代switch/case
5.可以用成员关系和序列:

if user.cmd in ('create','delete','update'):
action='%s item'%user.cmd
else:
action='invalid choice ... try agai!'

扩展:字典获取方式

msgs={'create':'create item','delete':'delete item','update':'update item'}
default='invalid choice... try again'
action=msgs.get(user.cmd,default)   参考 dict.get(key, default=None)

6.三元操作符
smaller=x if x<y else y

while

一般:
while expression:
      suite_to_repeat
计数:
count=0
while(count<9):
      ...
      count+=1
无限循环:
      while true:
      ....

for

for iter_var in iterable:
suite_to_repeat

iter_var迭代变量被设置为可迭代对象(序列,迭代器或其他支持迭代的对象)

  1. 用于序列(字符串、列表或元组)
    for eachLetter in 'Names':
    print 'current letter:',eachLetter
    1.1 通过序列项迭代
    1.2 通过序列索引迭代
    1.3 使用项和索引迭代
nameList=['Donn','Shirley','Ben','Janice','David','Yen','Wendy']
for i ,eachLee in enumerate(nameList):   #枚举的索引从0开始
print"%d %s Lee"%(i+1,eachLee)
  1. xrange 只在python2中,python3中不存在
  2. 与序列相关的内建函数
    sorted(),reversed(),enumerate(),zip()

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
我们可以使用 list() 转换来输出列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

albums=('Poe','Gaudi','Freud','Poe2')
years=(1976,1987,1990,2003)
a=sorted(albums)
print(type(a),a)
for album in sorted(albums):
    print(album)

结果:
<class 'list'> ['Freud', 'Gaudi', 'Poe', 'Poe2']
Freud
Gaudi
Poe
Poe2

albums=('Poe','Gaudi','Freud','Poe2')
years=(1976,1987,1990,2003)
for i,album in enumerate(albums):
    print(i,album)

结果:
0 Poe
1 Gaudi
2 Freud
3 Poe2

albums=('Poe','Gaudi','Freud','Poe2')
years=(1976,1987,1990,2003)
c = zip(albums,years)
print('c is',c,'\n',type(c),'\n',list(c))
for album,yr in zip(albums,years):
    print(yr,album)

结果:
c is <zip object at 0x0000022CB872E988>
<class 'zip'>
[('Poe', 1976), ('Gaudi', 1987), ('Freud', 1990), ('Poe2', 2003)]
1976 Poe
1987 Gaudi
1990 Freud
2003 Poe2

albums=('Poe','Gaudi','Freud','Poe2')
years=(1976,1987,1990,2003)
b=reversed(albums)
print(type(b),b)
for album in reversed(albums):
    print(album)

结果:
<class 'reversed'> <reversed object at 0x000001918953B358>
Poe2
Freud
Gaudi
Poe

posted on 2021-01-04 16:05  匍匐的仰望者  阅读(60)  评论(0编辑  收藏  举报

导航