python day19
绝对导入和相对导入
"""在程序中涉及到多个文件之间导入模块的情况 一律按照执行文件所在的路径为准""" 绝对导入 始终按照执行文件所在的sys.path查找模块 相对导入 """ 句点符(.) .表示当前文件路径 .表示上一层文件路径 """ 能够打破始终以执行文件为准的规则 只考虑两个文件之间的位置 #相对到日只能用在模块文件中 不能在执行文件中使用
软件开发目录规范
目录规范并无固定的要求 只要符合清晰可读即可
bin文件夹
存放一系列启动文件(当启动文件很少或者只有一个的时候也可以直接写在外面)
start.py
conf文件夹
存放一系列配置文件
setting.py(一般情况下该文件内的变量名都是大写)
lib文件夹
存放公共的功能
common.py
db文件夹
存放数据相关文件
userinfo.txt
log文件夹
存放日志记录文件
log.txt
core文件夹
存放核心项目代码文件
src.py
readme文件
存放说明相关信息(类似于说明书 广告 章程)
requirements.tzt
存放项目所需的第三方模块及版本号
正则表达式
#正则表达式是一门独立的语言 跟其他编程语言都没关系!!! #如果想在python代码中使用正则 需要借助于内置模块re 什么是正则表达式? 利用一些特殊符号的组合去字符串中筛选出合适的数据 """ 1.必须是11位 2.必须是纯数字 3.必须符合手机号的排布 13 15 17 18 """ phone = input('请输入您的手机号>>>:').strip() if len(phone) == 11: if phone.isdigit(): if phone.startswith('13') or phone.startswith('15') or phone.startswith('17') or phone.startswith('18'): print('手机号输入正确') else: print('格式不对') else: print('手机号必须是纯数字') else: print('手机号码必须是11位') import re phone_number = input('please input your phone number : ') if re.match('^13|15|17|18[0-9]$',phone_number): print('手机号码格式正确') else: print('手机号码格式错误')
字符组
#特征是使用中括号括起来的 字符串弄人只能是单个单个字符匹配 [0123456789] #匹配0到9之间任何一个数字 可以简写为 [0-9] [a-z] #匹配小写字母a到字母z其中任意一个字母 [A-Z] #匹配大写字母A到字母Z其中任意一个字母 [a-zA-Z0-9] #匹配所有的数字 小写 大写
特殊符号
#特殊符号默认也只能是单个单个字符匹配 . 匹配除换行符以外的任意字符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结尾 """^与$组合使用可以精准限制要查找的数据""" a|b 匹配字符a或者字符b () 匹配括号内的表达式也表示一个组(不会影响正则表达式的匹配单纯的分组而已) [...] 匹配字符组中的字符 [^...] 匹配除了字符组中字符的所有字符
量词
1.表达式在没有量词修饰的情况下 都是单个单个匹配 2.量词必须结合(字符串 特殊字符等)一起使用 不能单独出现 3.量词只能影响前面的一个表达式(ab+ 只能影响b) * 重复零次或者更多次 + 重复一次或者更多次 ? 重复零次或一次 {n} 重复n次 {n,} 重复n次或者更多次 {n,m} 重复n到m次 """ 正则表达式中的量词默认都是'贪婪匹配' """
贪婪匹配与非贪婪匹配
#带匹配的字符串 <script>123</script> #正则表达式 <.*?> '''默认贪婪匹配 尽可能多的匹''' #将贪婪变为非贪婪 只需要在两次的后面加问号即可 <.*?>'''非贪婪匹配 尽可能少的匹 结束条件有左右两边决定'''
小结
一些常见的正则不需要自己写 直接百度搜索就可以





浙公网安备 33010602011771号