01 昨日内容回顾
包:
1,在内存中创建一个以包命名的空间。
2,执行包的__init__文件将文件中的名字加载到包的名称空间。
3,通过包名.名字(变量,函数,类名)方式调用这些内容。

aaa.x
aaa.y
调用m2怎么做?
从__init__文件:from aaa import m2

调用bbb包?
从aaa 的__init__文件:from aaa import bbb

找到bbb包里面的x
bbb __init__文件: x = 666
import aaa
aaa.bbb.x
找到m3?
1,在执行文件:import aaa
2,在aaa的__init__文件:from aaa import bbb
3, 在bbb的__init__文件: from aaa.bbb import m3
aaa.bbb.m3.f1()

# 相对导入,绝对导入
.当前目录 .. 上一级目录

from a.b.c.d import e
点的左边都是包
在包的__init__ 里面导入模块 from ... import ...
from a.b.c.d import e.f.t 错误

random:随机模块
randomint(1,10)
random.choice()

shutil:
复制文件,文件夹
打包压缩 解压
02 re模块
对一个大篇幅的字符串,按照你的规则找出想要的字符串。
'fjdsilafjdsfljk太白金星' 通过re的方法找出fjds

找出一本名著:水浒传 西游记 红楼梦 三国演义
找一本名著:三个字,官二代勾引大嫂,英雄为兄报仇,的狗血剧情:金-瓶梅。

03 xml

# 02 re模块

import re# s1 = '老男孩 柳州 柳州 柳州'# print(s1.find('柳州')) #返回第一个柳的索引

# print(re.findall('柳州',s1))  #['柳州', '柳州', '柳州']# print(type((re.findall('柳州',s1))))  #list

#  元字符

# \w匹配字母(包含中文)或数字或下划线# \W匹配非字母(包含中文)或数字或下划线

# print(re.findall('\w','太白 liuzhou 123 --*'))# print(re.findall('\W','太白 liuzhou 123 --*'))

# \s  匹配任意的空白符# \S  匹配任意非空白符

# print(re.findall('\s',' 广西 liuzhou __ -- * \n\t'))# print(re.findall('\S',' 广西 \S liuzhou __ -- * \n\t'))  #同下,遇\打印\\# print(re.findall('\\S',' 广西 \S liuzhou __ -- * \n\t'))  #['广', '西', '\\', 'S', 'l', 'i', 'u', 'z', 'h', 'o', 'u', '_', '_', '-', '-', '*']# print(re.findall('\\\S',' 广西 \S liuzhou __ -- * \n\t'))  #['\\S']  加\\

# \d 匹配数字# \D 匹配非数字# print(re.findall('\d','柳州 \d 123-*'))# print(re.findall('\\d','柳州 \d 123-*'))  #无效果# print(re.findall('\\\d','柳州 \d 123-*'))  #需要加\\

# print(re.findall('\D','柳州 \D 123-*'))   #遇\打印\\# print(re.findall('\\D','柳州 \D 123-*'))   #无效果# print(re.findall('\\\D','柳州 \D 123-*'))   #['\\D']  加\\

# \A 或 ^ 匹配字符串的开始# print(re.findall('\A老','老男孩 太白'))# print(re.findall('\A老','男孩 老 太白'))  #[]# print(re.findall('^老','老男孩 老 太白'))  #['老']

# \Z $ 匹配字符串结束# print(re.findall('广西\Z',' 柳州 ds 广西'))  #\Z放后面# print(re.findall('地方$',' 柳州 ds 广西 地方'))  #[]# print(re.findall('\$$',' 柳州 ds 广西 地方 $'))  #转译\$

# 重复匹配# . ? * + {m,n} .* .*?

# .匹配任意字符

# print(re.findall('a.b','babb'))# print(re.findall('a.b','babb asdb'))  #['abb']  . 取一个字符# print(re.findall('a.b','abb a%b a1b aab a7b a+b a b a\nb'))# print(re.findall('a.b','abb a%b a1b aab a7b a+b a b a\nb',re.DOTALL))  #?# print(re.findall('a.bb','abb abb aaab'))

# ? 匹配0个或者1个由左边字符定义的片段# print(re.findall('a?b','abbzab abb ab aab'))  #['ab', 'b', 'ab', 'ab', 'b', 'ab', 'ab']

# * 匹配0个或者多个左边字符表达式# print(re.findall('a*b','b ab aaaaaab abbbbbbb'))#['b', 'ab', 'aaaaaab', 'ab', 'b', 'b', 'b', 'b', 'b', 'b']

# + 匹配1个或者多个左边字符表达式# print(re.findall('a+b','b ab aaaaaab abb'))  # ['ab', 'aaaaaab', 'ab']

# {m,n}  匹配m个至n个左边字符表达式# print(re.findall('a{1,3}b','aaab ab aab abbb aaz aabb aaaaab'))

# .* 贪婪匹配 从头到尾.# print(re.findall('a.*b','aab ab aaaaab a!!!@#$bz'))

# # .*?  非贪婪匹配 从头到尾.# print(re.findall('a.*?b','aab ab aaaaab a!!!@#$bz'))

# [] 取一个# print(re.findall('a[abc]b','aab abb acb afb'))# print(re.findall('a[0-9]b','a1b a2b a3b  acb ayb'))# print(re.findall('a[a-z]b','a1b a2b a3b  acb ayb adb'))# print(re.findall('a[A-Z]b','a1b a2b a3b  aAb aDb aYb'))# print(re.findall('a[a-zA-Z]b','aab aAb aWb aqb a1b'))  # 大小写字母# print(re.findall('a[A-z]b','aab aAb aWb aqb a1b'))  #中间会多一些特殊字符# print(re.findall('a[0-9][0-9]b','a1b a2b a29b a56b a456b'))# print(re.findall('a[-+*/]b','a+b a-b a*b a/b a6b')) 单纯的想表示- 一定要放在最前面

# ()  制定一个规则,将满足规则的结果匹配出来# 将满足规则的() 里面的内容匹配出来# print(re.findall('.*?_sb','wusir_sb alex_sb 日天_sb'))# print(re.findall('(.*?)_sb','wusir_sb alex_sb 日天_sb'))# print(re.findall('company|companies','Too many companies have gone bankrupt, and the next one is my company'))#  | 或# print(re.findall('compan(?:y|ies)','Too many companies have gone bankrupt, and the next one is my company'))# ?: 全部匹配出来

# \ 匹配# print(re.findall('武sir|太白|alex','武sir 太白 金星 李杰 alex'))# print(re.findall('\.(\w*)', 'dsajk.1234.dasf'))  #\.加\转译

# search 找到第一个则返回,返回一个对象,没有找到则返回None

# 对象.group() 可以将找到的第一个值取出来# print(re.search('alex','re alex alex 太白'))  #<_sre.SRE_Match object; span=(3, 7), match='alex'># print(re.search('alex','re aaaelx 太白'))# ret = re.search('alex','re alex alex 太白')# print(ret.group())

# print(re.match('barry','barry fdlfjsadfkl ').group())# print(re.match('barry','qbarry fdlfjsadfkl '))

# s1 = 'wusir;太白;alex; 日天'# s1 = 'wusir;太白,alex|日天!小虎'# print(s1.split(';'))# print(s1.replace(';',';').split(';'))# print(re.split('[;,|!]',s1))

# print(re.sub('barry', '太白金星', 'barry是最好的讲师,barry就是一个普通老师,请不要将barry当男神对待。',2))

 # ^ 在中括号[]中是取反# print(re.search('([a-zA-Z]+)([^a-zA-Z]+)([a-zA-Z]+)([^a-zA-Z]+)([a-zA-Z]+)', r'alex is sb').group())# print(re.sub('([a-zA-Z]+)([^a-zA-Z]+)([a-zA-Z]+)([^a-zA-Z]+)([a-zA-Z]+)', r'\5\2\3\4\1',r'alex is sb'))  #调序 了解

# obj = re.compile('\d{2}')  # 制定一个统一的匹配规则# print(obj.findall('fdsafsda1243fdsdf324'))# print(obj.findall('123fksldjf3432fdsjlkf453'))

# ret = re.finditer('\d', 'ds3sy4784a')# print(ret)# # ret = iter([3 4 7 8 4])# print(next(ret).group())# print(next(ret).group())# print([i.group() for i in ret])

# s1 = '深圳电话:0755-546123546 深圳地址:广东..'# print(re.search('\d+-\d+',s1).group())# 命名分组# 分组基础上定规则 ?P<组名># ret = re.search('(?P<quhao>\d+)-(?P<num>\d+)',s1)# print(ret.group('quhao'))# print(ret.group('num'))

# s1 = '深圳电话:0755-546123546 深圳地址:广东..'# print(re.findall('[1-9]*-[1-9]*',s1))

# s2 = "ip='192.168.6.11',verion:1.0.0"# print(re.search("ip='\d+\.\d+\.\d+\.\d+'",s2).group())# print(re.search("ip='(?P<ip>\d+\.\d+\.\d+\.\d+)'",s2).group('ip'))

# ret = re.search('(?P<ip>[\d+/.]+)',s2)# print(ret.group('ip'))

#qq号# print(re.findall('[1-9]\d{5,12}','dfdsfd 12343435 fds0 5435454 56567567 dsjfhdsf'))

day17_python_1124的更多相关文章

随机推荐

  1. java String 类型总结

    java中String是个对象,是引用类型?,基础类型与引用类型的区别是,基础类型只表示简单的字符或数字,引用类型可以是任何复杂的数据结构,基本类型仅表示简单的数据类型,引用类型可以表示复杂的数据类型 ...

  2. 基于Docker搭建MySQL多源复制环境

    MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等. 多源复制:多源复制加入了一 ...

  3. P4777 【模板】扩展中国剩余定理(EXCRT)/ poj2891 Strange Way to Express Integers

    P4777 [模板]扩展中国剩余定理(EXCRT) excrt模板 我们知道,crt无法处理模数不两两互质的情况 然鹅excrt可以 设当前解到第 i 个方程 设$M=\prod_{j=1}^{i-1 ...

  4. nginx ssl 卸载功能 第八章

    一 .证书自签发和给web 服务签发证书 .ssl 证书加密文件 ****************************** 建立私有CA openCA openssl 证书申请及签署步骤 .生成证 ...

  5. 面试常问Spring IOC,不得不会。

    广义的 IOC IoC(Inversion of Control) 控制反转,即“不用打电话过来,我们会打给你”. 两种实现: 依赖查找(DL)和依赖注入(DI). IOC 和 DI .DL 的关系( ...

  6. 设计模式理解(九)结构型——外观(Facade)

    等了好久,终于想起来开写了,这次写的是外观模式,记得大学时弄课程设计,外观模式搞得我比较混乱,因为单词不认识,后来觉得有点蛋疼,感觉是一坨混乱的东西然后加个壳再弄几个外部调用的接口而已.个人认为,Fa ...

  7. 动态从数据库获取数据,省市县三级联动,有校验,导出Excel模板

    话不多说,看效果图,直接上代码. sheet  商户表 hideSheet ,功能完成后隐藏的Sheet,用于储存下拉框中的信息,(以一定的规则将所需数据存储在表格中). 下面是代码 部分数据需要在导 ...

  8. 单元测试系列之七:Sonar 数据库表关系整理一(rule相关)

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/7510072.html 简介:Sonar ...

  9. Bytom 技术 FAQ

    比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom 1.如何 ...

  10. Architectural principles

    原文 "If builders built buildings the way programmers wrote programs, then the first woodpecker t ...