day16
匿名函数
lambda
和生成器一起考
和内置函数一起考 sorted ,map filter
内置函数
map filter sorted max min
递归函数
求阶乘/斐波那契额数列
函数自己调用自己(请计算第400个数;不超过4000000的最大的值是第几个数) 练习
递归函数;能用循环解决的问题就不要用递归
递归的最大深度 998(不算本层)
模块的类型
内置模块
第三方模块 需要我们自己安装的
自定义模块 我们自己写的
模块只不过是提供给我们操作这个内容的方法
re模块
在python中使用正则表达式
正则表达式,是一种独立的规则,独立的语言
正则表达式
# 从大段的文字中找到符合规则的内容
# 爬虫 从网页的字符串中获取你想要的数据
# 日志分析 提取 2018-8-12 10:---- 花的所有钱
# 什么是日志 :
# 2018-8-12 10:00:00 楼下早点摊 3.00
# 判断某个字符串是否完全符合规则
# 表单验证 : 手机号 qq号码 邮箱 银行卡 身份证号 密码
# 正则表达式 只和字符串打交道
# 正则表达式的规则
# 规则 字符串 从字符串中找到符合规则的内容
# 字符组 : [] 写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的
# [0-9] 匹配数字
# [a-z] 匹配小写字母
# [A-Z] 匹配大写字母
# [8-9]
# [a-zA-Z] 匹配大小写字母
# [a-zA-Z0-9] 匹配大小写字母+数字
# [a-zA-Z0-9_] 匹配数字字母下滑线
# 65 - 90
# 97 - 122
# 转义符
# w w
# 元字符
\\w 前面的第一个转义符转义了第二个转义符让第二个转义符失去了转义的特殊功能恢复成一个普通的\,这样只能匹配 普通的 \w
# \w 匹配数字字母下滑线 word关键字 [a-zA-Z0-9_]
# \d 匹配所有的数字 digit [0-9]
# \s 匹配所有的空白符 回车/换行符 制表符 空格 space [\n\t ]
# 匹配换行符 回车 \n
# 匹配制表符 tab \t
# 匹配空格
# \W \D \S 和\w \d \s取反
# [\s\S] [\d\D] [\w\W]是三组全集 意思是匹配所有字符
# \b 表示单词的边界
# 和转义字母相关的 元字符
# \w \d \s(\n\t) \b \W \D \S
# ^ $
# ^ 匹配一个字符串的开始;只能在字符串开始
# $ 匹配一个字符串的结束;只能在字符串结尾出现
# . 表示匹配 除换行符之外的所有字符
# [] 只要出现在中括号内的内容都可以被匹配
# [^] 只要不出现在中括号中的内容都可以被匹配;尖角号必须在最前面
# 有一些有特殊意义的元字符进入字符组中会回复它本来的意义 : . | [ ] ( )
# a|b 或 符合a规则的或者b规则的都可以被匹配
# 如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面
# 将更复杂的 \ 更长的规则写在最前面
# () 分组 表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组
# 量词
# {n}表示 这个量词之前的字符出现n次
# {n,} 表示这个量词之前的字符至少出现n次
# {n,m} 表示这个量词之前的字符出现n-m次
# ? 表示匹配量词之前的字符出现 0次 或者 1次 表示可有可无
# + 表示匹配量词之前的字符出现 1次 或者 多次
# * 表示匹配量词之前的字符出现 0次 或者 多次
# 练习题
# 匹配整数 \d+
# 匹配小数 \d+\.\d+
# 匹配小数或者整数
# \d+\.\d+|\d+
# \d+(\.\d+)? #这个最好
# 匹配身份证号码 : [1-9]\d{16}[\dx]|[1-9]\d{14}
# [1-9]\d{14}(\d{2}[\dX])?
# 正则表达式的匹配特点 : 贪婪匹配
# 它会在允许的范围内取最长的结果
# 非贪婪模式/惰性匹配 : 在量词的后面加上 ?
# .*?x 匹配任意非换行符字符任意长度 直到遇到x就停止
# print(r'\\n')
# print(r'\n')
# 关于字符串挪到python中的转义的问题 : 只需要在工具中测试完毕,确认可以匹配上之后,挪到python中在字符串的外面加上r,r''即可
# 正则表达式
# 元字符 : \d \w \s \n \t \b \W \D \S . ^ $ [] [^] | ()
# 量词 : ? + * {n} {n,} {n,m}
# 贪婪匹配/惰性匹配 : 默认贪婪/量词? 惰性匹配
# 普通字符就表示一个正常的字符
# 元字符表示它特殊的意义 如果转义元字符,那么这个元字符就失去了特殊意义
# 几个字符的组合关系
# 字符/元字符 只约束一个字符
# 字符+量词 约束一个字符连续出现的次数
# 字符+量词+? 约束一个字符连续出现的最少次数
# 字符+量词+?+x 约束一个字符连续出现量词范围内的最少次数,遇到x就立即停止