正则表达式
1. 择一匹配:管道符号(|),表示“从多个模式中选择其一”。例:at|home à at、home
2. 点号匹配除了换行符以外的任何字符
3. 边界匹配:\b匹配一个单词的边界;\B匹配在一个单词中间,即不是单词边界。
4. 字符集:匹配方括号中包含的任何字符。只适用于单字符的情况。例:[ab] à a、b
5. 星号(*)匹配其左边出现零次或多次
加号(+)匹配一次或多次出现
问号(?)匹配零次或一次出现
6. 字符集特殊字符:\d表示匹配任何十进制数字
\w表示全部字母的字符集
\s表示空格字符
注:特殊字符的大写表示不匹配,例:\D表示任何非十进制数字
7. 圆括号指定分组和匹配子组,例:(\w+)-(\d+)
8. 匹配对象:group()和groups().
9. group():要么返回整个匹配对象,要么根据要求返回特定子组;groups()仅返回一个包含唯一或全部子组的元组。
10.match()和search()区别:match()从字符串的起始部分开始匹配;search()不但会搜索起始部分,而且严格地对字符串从左到右搜索。
11.findall()查询字符串中某个正则表达式模式全部的非重复出现情况,返回的是一个列表。
12.finditer()是与findall()类似但更节省内存的实体。区别:返回的是一个迭代器。
13.搜索与替换:sub()和subn()
都是将某字符串中所有匹配正则表达式的部分进行某种形式的替换。区别:subn()还返回一个表示替换的总数。
函数
1. *args 会把多传入的参数变成一个元组形式
2. **kwargs 会把多传入的参数变成一个dict形式
3. 参数:
普通参数:严格按照顺序,将实参传给形参
默认参数:必须放置在参数列表的最后
指定参数:将参数赋值给指定的形参
动态参数:* 默认传入的参数,全部放置在元组中
** 默认传入的参数,全部放置在字典中
万能参数: *args, ** kwargs
4. Python中,函数的参数传递,是引用,不是复制。
5. 变量:
全局变量,所有作用域都可读。
对全局变量进行重新赋值,需要global,如:global name
特殊,对列表、字典,可修改,但不可重新赋值。
全局变量统一大写。
6. 三元运算(三目运算) 对 if else的简写
例:name = ‘alex’ if 1==1 else ‘SB’