python廖雪峰教程 学习笔记

如何用字符来描述字符:

d匹配数字   digit

w匹配字母或数字  word

s可以匹配空格 space

* 表示任意个字符, +表示至少一个字符  ?表示0个或1个字符, {n} 表示n个字符, {n,m}表示n-m个字符 .可以匹配任意字符 

例如: Kongxiangyu

w{11}

如何做到更精确的匹配? 规定数字、字母或者下划线 

[0-9a-zA-Z\_]可以匹配一个数字、字母或下划线

[a-zA-Z\_]

^ 表示行的开头

$ 表示行的结束

re模块 

python的 r前缀,可以不考虑转义的

分组

联系excel表格中的通配符的使用

字符串 d{3}-{3-8}   010-21321 

更精确的匹配: [ ]表示范围  

 python高级特性:

切片

“之所以是笨办法是因为扩展一下,取前N个元素就没辙了。” 【抽象代表更加聪明的做法,普遍性】

“对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。” 【Slice的本质是循环+提取】

迭代:

iteration (遍历/迭代) 

for  in 语句,直接作用于整个iterable subject 包括 string dict list

实现下标循环:

for i, value in enumerate(['a', 'b', 'c'])
    print (i, value)

for x, y in [(1,1), (2, 4), (3, 9)]:
  print(x, y)

 

列表生成器:

list(range(1,4)

L = [] 
for x in range(1, 11):
    L.append(x * x)  #循环 逐个添加

[x * x for x in range(1, 11) if x%2 == 0] #函数 + 循环 + 条件语句

  dict.value()  dict.items() 返回key值和 value值

生成器(generator):python中一边循环一遍计算的机制

方法1: 将列表生成器的 [ ] 改为()  同时区分
print 用来打印 和 next() 获得generator的下一个返回值
 
“我们讲过,generator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出StopIteration的错误。”【生成器保存的是算法,将其看做一个动态的过程而不能直接认为是生成好的list元素】
原文地址:https://www.cnblogs.com/kong-xy/p/6532679.html