学习python的第12天

本文深入解析Python中的模块与包的使用,涵盖模块导入、数据交流、标准库介绍及hashlib、正则表达式的应用,适合初学者和进阶者学习。

包和模块

一、模块的导入

1.什么模块

一个py文件就是一个模块。

2.模块之间的数据交流

我们可以在任意一个模块中使用另一个模块中所有的全局变量(普通变量\函数\类);如果想要在一个模块中使用另一个模块,必须先导入模块。

3.模块的分类:
  • 系统模块 - 系统已经定义好的模块,程序员可以直接导入使用。
  • 第三方库模块(其他程序员或者机构定义的模块)- 需要先下载放到工程中以后再导入使用
  • 自定义模块(在工程中创建的模块)- 程序员直接导入使用
4.导入模块

导入方式:

  • import 模块名 - 导入指定模块,导入后可以使用这个模块张红所有的全局变量,使用方式:模块名.变量
  • from 模块名 import 变量1,变量2,变量3,… - 导入指定模块,导入后可以使用这个模块中指定的变量,使用方式:直接使用
  • from 模块名 import * - 导入指定模块,导入后可以使用模块中所有的变量

重命名:

  • import 模块名 as 新模块名 - 导入模块的时候对模块进行重命名,重命名后通过新模块名来使用模块
  • from 模块名 import 变量1 as 新变量1, … - 导入模块的时候对指定的变量进行重命名

二、导入模块的原理

当代码指定到import 或者 from-import 导入模块的时候,系统会自动进入指定模块,执行这个模块中所有的代码。
阻止模块中内容的导入:
如果一个模块中的部分代码不希望在被导入的时候执行,就将这个代码写在
if__name__=='main’中。(每个模块都有一个__name__属性,这个属性保存的是模块名,默认值都是文件名。当我们直接执行某个模块的时候,这个模块的__name__的值会自动变成__main__,其他没有被执行的__name__的值都是自己的文件名)

三、包的使用

1.什么是包

包就是包含__init__.py文件的文件夹。

2.怎么使用包中的模块里面的内容

import 包.模块
from 包 import 模块
from 包. 模块 import 变量1,变量2,…

3.导入包的原理

导入包的时候,会执行执行包中的__init__.py文件中所有的代码。

4.重复导入

import在导入模块或者包的时候会自动检查对应模块或者包之前是否已经导入过了,如果已经导入不会再重复导入。

四、常用标准库

1.标准库和第三方库

标准库 - python自己提供模块或者包,用的时候可以直接导入
第三方库 - 由别人提供的模块和包,需要先安装或者下载后才可以导入

2.常用标准库
  • os模块 - 提供文件或者文件夹操作的相关功能
  • sys模块 - 提供系统相关的操作
  • time模块 - 时间相关操作
  • datetime模块 - 时间相关的操作
  • json模块 - json操作
  • re模块 - 正则表达式相关操作
  • hashlib - 加密模块

补充:时间戳
时间戳就是当前时间到格林威治时间的1970年1月1日0时0分0秒的时间差,单位是秒。
1.time() - 获取当前时间,返回的是时间戳
2.sleep(时间) - 让程序睡眠指定时间(秒)
3.localtime() - 获取当前的本地时间
4.localtime(时间戳) - 将时间戳对应的时间转换成struct_time(转换成我们认识的时间值)

五、hashlib的使用

1.hashlib模块的使用

hashlib是python3.x中提供的一个标准库,专门用来对数据进行hash加密的,常用的加密算法是:md5、shaxxx
hash算法:hash算法又叫摘要 算法或者离散算法。

2.hash(md5)加密的特点
  • 同样的内容使用相同的算法加密之后的结果是一样的
  • 加密之后的结果不可逆
  • 不管原数据的大小或者长度多少,使用同一种加密算法得到的密文(摘要)的长度是一样的
3.生产摘要

-根据算法创建hash对象
hashlib.算法名()
hash = hashlib.md5()

  • 使用hash对象对指定的数据加密
    hash对象.update(数据) - 对指定的数据加密(这儿的数据必须是二进制数据,类型是bytes)
  • 获取摘要(获取加密后的密文)
4.hash加密的应用

生产数据摘要,确保原数据的完整性。
补充:二进制和字符串之间的相互转换

  • 字符串 ->二进制
    bytes(字符串,encoding=‘utf-8’)
    字符串.encode()
  • 二进制 -> 字符串
    str(二进制,encoding=‘utf-8’)
    二进制.decode(encoding=‘utf-8’)

六、正则法则

fullmatch(正则表达式, 字符串) - 判断正则表达式和字符是否完全匹配,如果不能匹配返回None

1.什么是正则表达式

正则表达式是一种处理字符串的工具。

2.正则的语法(通用)
  • 普通字符
    除了在正则红有特殊功能和特殊意义以外的字符就是普通字符。普通字符在正则表达式中表示这个字符本身。
  • . - 匹配一个任意字符
  • \w - 匹配任意一个数字、字母或者下划线(在ASCII码表中)
  • \d - 匹配任意一个数字字符
  • \s - 匹配一个任意空白字符
    常见的空白字符:’ ‘、’\n’ ‘\t’
  • \大写字母(\W \S \D) - \大写字母的功能个\小写字母的功能相反
  • [字符集] - 匹配字符集中的任意一个字符
    注意:a.一个[]只能匹配一个字符 b.[字符1-字符2]中的-表示范围:字符1到字符2,并且要求字符1的编码值必须小于字符2
    [abc] - 匹配a或者b或者c
    [a-z] - 匹配任意一个小写字母
    [A-Z] - 匹配任意一个大写字母
    [a-zA-Z] - 匹配任意一个字母
    [0-9] - 匹配任意一个数字
    [2-9] - 匹配2到9的任意一个数字字符
    [\u4e00-\u9fa5] - 匹配任意一个中文字符
  • [^字符集] - 匹配任意一个不在字符集中的字符
    [^abc] - 匹配一个不是a、b、c的任意一个字符
    [^a-z] - 匹配一个不是小写字母的任意一个字符

注意:a. []中的^ 只有放在最前面的时候才有特殊意义,在其他位置的时候表示字符^本身; b. []中的-只有在两个字符之间的时候才有特殊意义,否则也是表示字符-本身。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值