软件开发目录与正则表达式

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.非贪婪匹配: <.*?> 非贪婪匹配,尽可能少的匹,结束条件有左右两边决定
posted @ 2021-11-24 19:18  recordlife  阅读(76)  评论(0)    收藏  举报