软件开发目录与正则表达式
1.绝对导入与相对导入

1.绝对导入的方法
方法:始终按照执行文件所在的sys.path查找模块
注意点:在程序中涉及到多个文件之间导入模块的情况 一律按照执行文件所在的路径为准
2.相对导入的方法
方法:
"""
句点符(.)
.表示当前文件路径
..表示上一层文件路径
"""
特点:能够打破始终以执行文件为准的规则 只考虑两个文件之间的位置
注意点:相对导入只能用在模块文件中 不能在执行文件中使用
2.软件开发目录规范

1.说明:目录规范没有明确要求,只要清晰可读即可
2.一般结构:
bin
start.py
conf
settings.py
lib
common.py
db
userinfo.txt
log
log.txt
core
src.py
readme
requirements.txt
3.解释说明
bin conf lib core db log 都为文件夹
bin :存放一系列启动文件(启动文件很少或者只有1个,可写在根目录下)
conf:存放一系列配置文件(一般情况下settings.py内的变量名都是大写)
lib :存放公共的功能
db :存放数据相关文件
log :存放日志记录文件
core:存放项目核心代码文件
readme:存放说明相关信息
requirement.txt :存放项目所需要的模块及其版本号
3.正则表达式

1.什么是正则表达式
官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
正则表达是一门独立的语言,跟其他语言没有关系。如果在pyhon代码中想要使用正则,需要借助于内置模块re。
2.正则表达式的通俗含义
利用一些特殊符号的组合去字符串中筛选出符合条件的数据
3.案例展现
#要求:如何限制用户的输入条件是,11位,纯数字,且数字是以14,16,18开头
python普通实现方法:
phonenumber = input('请输入你的11位电话号码:')
if len(phonenumber) == 11:
if phonenumber.isdigit():
if phonenumber.startswith('14') or phonenumber.startswith('16') or\ phonenumber.startswith('18'):
print('号码输入正确!')
else:
print('号码开头不正确')
else:
print('号码不是纯数字!')
else:
print('号码不是十一位数!')
正则表达实现:
import re
phonenumber = input('请输入你的11位号码:')
if re.match('^(14|16)[0-9]{9}$',phonenumber):
print('手机号码输入正确!')
else:
print('输入的号码不正确!')
4.正则的在线测试应用
http://tool.chinaz.com/regex/
3.1字符组
1.什么是字符组
2.字符组有什么特点
使用中括号括起来,字符串只能单个单个字符去匹配
3.写法
第一种:详细写出可以匹配的所有字符
[0123456789] [abcdefghijklmn]
第二种:写开头和结尾,中间用-连接
[0-9] [a-n]
第三种:可以写多种范围的组合(不分顺序)
[0-9A-Za-z]
3.2特殊符号
1.定义
2.有什么特点
特殊符号只能单个字符单个字符进行匹配
3.常用的有哪些
| 特殊符号 | 作用 |
|---|---|
| . | 匹配换行符以外的任意字符 |
| \d | 匹配数字 |
| ^ | 匹配字符串的开始 |
| $ | 匹配字符串的结尾 |
| | | 匹配 | 前面或后面的字符 |
| () | 匹配括号内的表达式,也表示一个组(不会影响正则表达式的匹配,单纯的分组) |
| [...] | 匹配字符组中的字符 |
| [^...] | 匹配除字符组以外的所有字符 |
3.3量词
1.注意事项
表达式在没有量词修饰的情况下,都是单个单个的匹配
量词必须结合(字符串,特殊符号等)一起使用,不能单独使用
量词只能影响前面的一个表达式(例:ab+, +只能影响前面的b)
正则表达式中的量词默认的都是'贪婪匹配'
2.常用量词
| 量词 | 作用 |
|---|---|
| * | 重复零次或更多次 |
| + | 重复一次或更多次 |
| ? | 重复零次或一次 |
| 重复n次 | |
| 重复n次或者更多次 | |
| 重复n次到n次 |
3.4贪婪匹配与非贪婪匹配
案例:
1.贪婪匹配: <.*> 默认贪婪匹配 尽可能多的匹
2.非贪婪匹配: <.*?> 非贪婪匹配,尽可能少的匹,结束条件有左右两边决定

浙公网安备 33010602011771号