Python Day19

 

绝对导入与相对导入

在程序中涉及到多个文件之间导入模块的情况 一律按照执行文件所在的路径为准。

绝对导入
        始终按照执行文件所在的sys.path查找模块

相对导入

       句点符(.)
               .表示当前文件路径
               ..表示上一层文件路径

       能够打破始终以执行文件为准的规则 只考虑两个文件之间的位置

       # 相对导入只能用在模块文件中 不能在执行文件中使用

 

软件开发目录规范

                目录规范并无固定的要求 只要符合清晰可读即可

                bin文件夹       
                       存放一系列启动文件(当启动文件很少或者只有一个的时候也可以直接写在外面)
        start.py

                conf文件夹

                       存放一系列配置文件  

                              settings.py(一般情况下该文件内的变量名都是大写)

        lib文件夹

               存放公共的功能
                      common.py

        db文件夹

                 存放数据相关文件

                        userinfo.txt

        log文件夹

                存放日志记录文件

                        log.txt

        core文件夹

               存放项目核心代码文件

                       src.py

        readme文件

                存放说明相关信息(类似于说明书 广告 章程)

        requirements.txt

                存放项目所需的第三方模块及版本号

             每个人必须熟练掌握!!!

正则表达式

正则表达式是一门独立的语言 跟其他编程语言都没有关系!!!
如果想在python代码中使用正则 需要借助于内置模块re

# 什么是正则表达式?
    利用一些特殊符号的组合去字符串中筛选出符合条件的数据

    

"""
1.必须是11位
2.必须是纯数字
3.必须符合手机号的排布  15 16 18 19
"""
# phone = input('请输入你的手机号>>>:').strip()
# if len(phone) == 11:
#     if phone.isdigit():
#         if phone.startswith('15') or phone.startswith('16') or phone.startswith('18') or phone.startswith('19'):
#             print('手机号正确')
#         else:
#             print('格式不对')
#     else:
#         print('手机号必须是纯数字')
# else:
#     print('必须是11位')


import re
phone_number = input('please input your phone number : ')
if re.match('^(13|14|15|18)[0-9]{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>
# 正则表达式
	<.*>  '''默认贪婪匹配 尽可能多的匹'''
# 将贪婪变为非贪婪 只需要在量词的后面加问号即可
	<.*?> '''非贪婪匹配 尽可能少的匹  结束条件有左右两边决定'''

一些常见的正则可以到百度上搜索 

          1.中文字符 [\u4e00-\u9fa5]

          2.email地址 \w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}

          3.手机号 0?(13|14|15|17|18|19)[0-9]{9}

          4.身份证号 \d{17}[\d|x]|\d{15}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值