如何用字符來描述字符:
\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元素】
