最近上班比较忙,就只能抽空学习了


笔记依旧更新在石墨文档。

Python基础知识 《Python基础知识》,可复制链接后用石墨文档 App 或小程序打开


6.5 模块和包

6.5.1 模块的导入和使用

模块导入:

  1. import XXX
  2. from 模块名 import 变量 | 函数 | 类
  3. from 模块名 import * 【表示全部导入】

注:导入模块,会先一次性加载模块里面的所有

——如果不希望进行其调用,可以使用__name__

__name__:

  • 在自己的模块中是main
  • 如果在其他模块中调用/导入,就是其他模块名

包的导入:

from 包名.模块名 import xxx

里面调用外面模块:

所有的from都是基于项目下

包模块的__init__:

__init__.py文件,在导入包的时候,默认加载调用

作用:

  1. 默认初始化加载,把一些初始化的函数,变量,类定义在__init__.py文件中
  2. 此文件中函数,变量等的访问,只需要通过包名.函数....

注:

from 模块 import * 会出现一个问题?

模块调入不了,这是为什么呢?

解决方法:在__init__.py文件中写上__all__ = ['模块名'],表示开放模块。

6.5.2 模块的循环导入

'''循环导入:A:模块def test()f()B:模块def f():test()
'''

6.5.3 常见模块

sys模块:

系统运行环境的模块

time模块:

import timet = time.time()
# 时间戳
print(t)
# 将时间戳转化为字符串
print(time.ctime(t))
# 时间结构,将时间戳变成元组的形式
t2 = time.localtime(t)
print(t2)
# 将元组转化为时间戳
t3 = time.mktime(t2)
print(t3)
# 将元组的方式转化成字符串
t4 = time.strftime('%Y-%m-%d %H:%M:%S')
print(t4)
# 将字符串转化成元组的方式
r = time.strptime('2019/08/04', '%Y/%m/%d')
print(r)

datatime模块:

import datetime
# 获得当前时间
print(datetime.datetime.now())
# 时间差
timedel = datetime.timedelta(days=3) # 时间延迟3天

random模块:

import random
# 获得0-1之间的随机数
ran = random.random()
print(ran)
# 自定义随机数范围
ran1 = random.randrange(1, 9)
print(ran1)
# 随机选取
list1 = ['a', 'b', 'c']
ran2 = random.choice(list1)
print(ran2)

hashlib模块

# 加密算法 md5/sha 都是不可逆加密
import hashlibmsg = '秘密信息'
md5 = hashlib.md5(msg.encode('utf-8'))
sha1 = hashlib.sha1(msg.encode('utf-8'))
sha256 = hashlib.sha256(msg.encode('utf-8'))
print(md5.hexdigest())
print(sha1.hexdigest())
print(sha256.hexdigest())

第三方模块:

pip install 第三方模块名 【建议使用镜像加载】

7.正则表达式(regex)

定义:对字符串(包括普通字符和特殊字符)操作的一种逻辑规则

7.1 正则匹配常见写法:

正则表达式的r:

Python中字符串前面加上 r 表示原生字符串(rawstring)

例子:

import random
import re
username = 'admin001'
# 例如,用户名可以是字母或数字,但不能以数字开头
# ~从开头起匹配,$匹配到结尾结束
result = re.search('^[a-zA-Z][0-9a-zA-Z]{5,}$', username) # 5 位以上匹配
print(result)# 手机的正则匹配
phone = '12345678911'
# {x}:固定x位
# {x:}: >= x位
# {x:y}: 介于x-y位数之间
result1 = re.match('1[35789]d{9}$', phone)# 分组
# 匹配数字0-100数字,?匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
n = random.randint(1, 101)
result = re.match(r'[1-9]?d?$|100$', str(n))
print(result)# findall依次匹配
# match匹配一次
# +表示大于等于1
# 匹配两个字母之间有数字
msg = 'a7aap88ps7778all9oo0065wjh589aw'
result = re.findall('[a-z][0-9]+[a-z]', msg)
print(resu

7.1.1 分组匹配:

# 分组匹配
import rephone = '010-123456789'
result = re.match(r'(d{3}|d{4})-(d{9})$', phone)
print(result)
# 分别提取
print(result.group(1), result.group(2))#
msg = '<html>abc</html>'
msg1 = '<h1>hello</h1>'
result = re.match(r'<[0-9a-zA-Z]+>(.+)</[0-9a-zA-Z]+>$', msg)
print(result)
# 提取一个标签内的值
print(result.group(1))# number
# 让标签成对,防止前后标签不一致的情况出现
result = re.match(r'<([0-9a-zA-Z]+)>(.+)</1>', msg) # 后面的1表示引用第一组
# 看看前后标签是否相同
print(result)
msg = '<html><h1>abc</h1></html>'
result = re.match(r'<([0-9a-zA-Z+])>(.+)</2></1>', msg)
print(ms

import re
# 起名方式:(?P<名字>正则)(?P=名字)
msg = '<html><h1>abc</h1></html>'
ressult = re.match(r'<(?P<name1>w+)><(?P<name2>w+)>(.+)</(?P=name2)></(?P=name1)>', msg)
print(msg)

7.2 贪婪和非贪婪

贪婪模式变成非贪婪模式,加?

微x模块怎么导入主题_记录学习python第10天-模块/正则相关推荐

  1. 微x模块怎么导入主题_模块

    一.模块 模块是最高级别的程序组织单元.在模块中,我们不但可以直接存放变量,还能存放函数和类. 定义变量需要用赋值语句,封装函数需要用def语句,封装类需要用class语句,但是封装模板不需要任何语句 ...

  2. python多态_记录学习python第9天-继承/多态

    6.3 继承 关联关系 has a 一个类中使用了另一种自定义的类 例如:student 使用 computer 类型: 系统类型 str int float... 自定义的类型 继承关系 is a ...

  3. python自己创建模块引用失败_详解Python import方法引入模块的实例 Python怎么import自己写的模块...

    python中 import导入模块失败的问题? python中的import引用不了模块我傻,为你傻;我痛,为你痛;深夜里,你是我一种惯性的回忆. 为什么我用from lianxi import*就 ...

  4. python模块调用的用法_如何使用Python语言中的random模块调用方法

    Python语言中的random模块,包含了很多方法属性,可以直接调用这些方法和设置属性.根据不同的方法展示不同的内容.下面利用几个实例查看random模块中的方法,操作如下: 工具/原料 Pytho ...

  5. python好多模块和c相识_快速实现python c扩展模块

    1  python扩展模块的组成 在python中,对于一些和系统相关的模块或者对性能要求很高的模块,通常会把这个模块C化.扩展模块中主要包含下面几个部分: init函数,函数名为:init+模块名, ...

  6. python怎么安装re模块_搞懂python中的re模块

    现在介绍如何在Python中使用正则表达式. Python提供了re模块,用于实现正则表达式的操作. 通过使用re模块的方法进行字符串处理 re模块提供的方法(如search().match().fi ...

  7. python timeit模块_如何在Python中使用timeit模块?

    文 | 菊子皮(转载请注明出处) 关注公众号: AIAS编程有道 环境:Python 3.7,VS Code timeit模块使用 有时候需要测试创建某种变量而花费的时间.有时候需要测试某个函数的运行 ...

  8. python cv模块_Python cv包_程序模块 - PyPI - Python中文网

    Cv 检查python模块的版本. 查询pypi并在所有可用版本中查找.__version__. 如果版本已经存在,则会引发错误. 在ci中很有用,可以记住更改库版本. 有关python模块版本控制的 ...

  9. python select模块_深入理解python中的select模块

    简介 Python中的select模块专注于I/O多路复用,提供了select  poll  epoll三个方法(其中后两个在Linux中可用,windows仅支持select),另外也提供了kque ...

最新文章

  1. 【PSO运输优化】基于MATLAB的PSO运输优化算法的仿真
  2. 揭秘硅谷进化历程:机遇无穷 成功需付出更高代价
  3. Linux vi编辑器的使用
  4. tp3.2 不能提交到action方法_什么是死锁,如何避免死锁(4种方法)
  5. 「BZOJ2654」tree
  6. 关于lazyman你还应该知道这几件事
  7. 二进制 转换 .java_如何在Java程序中将二进制转换为十进制?
  8. 惊艳的基于nodejs的实时Web开发框架Meteor介绍
  9. 【研究】人大赵鑫老师报告:如何以初学者角度写好一篇国际学术论文?
  10. 空间直角坐标转大地坐标
  11. 如何制作一个微信小程序【微信小程序是怎么做的】
  12. 15、NC导入excel
  13. Awesome Chrome 插件集锦
  14. 傅里叶变换-平稳信号
  15. S5pv210 出现一个离奇wince6.0 activesync 软件连接问题
  16. 未发表的2015年年终总结
  17. 关于标题党、八卦的最优解!!!
  18. Linux批量改变图片大小,如何用Pix相册批量转换图片格式和调整大小
  19. 关于雷达信号“相干性”的解释
  20. java实现手机日历_Java实现日历

热门文章

  1. Linux用键盘演奏音乐,分享|让我们使用 PC 键盘在终端演奏钢琴
  2. c语言求n个数中奇数乘积,C语言编程实现从键盘输入N个整数 分别求出奇数和偶数的和 在线等.., 任意输入n个整数,分别统计奇数的和,奇数的个数,偶数的和,...
  3. layui使用--lay-href
  4. 赛门铁克发现智能电视或面临感染勒索软件的威胁
  5. c++,string,compare,nocase,for copy
  6. Linux服务器搭建测试环境笔记
  7. 11_RHEL安装Maya2015
  8. 我与世界杯足球那些事——世界杯征文
  9. 分析《家园2》《家园》的低效原因
  10. FarPoint 基础篇(一) 基本概念