栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python模块&包

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python模块&包

通过调用模块,可以调用模块中的变量、函数、类

导入模块的方式有两种

1.import 模块名

2.from 模块名 import 变量/函数/类

3.from 模块名 import * (可以通过__all__限制可以使用*所导入的内容)

无论是from还是import模式,都会将模块内容进行加载,那么需要执行的内容,我们一般写在

if __name__ = '__main__':这个判断中

__name__如果是导入的,会返回calculate。如果是本模块,会返回__main__。

具有__init__名称py文件的文件夹,称为包

一个包中可以有多个模块

项目 -- 包 -- 模块 -- 类 变量 函数

包中的模块相互调用,也不能直接import 模块,而需要从包开始层层调用,可使用 .模块名调用或者包.模块名调用

包的导入方式:

1.from 包名 import 模块名

2.from 包名.模块名 import 变量/函数/类

__init__文件

导入包的时候,默认调用__init__文件

1.当导入包的时候,把一些初始化的函数、变量、类定义在该文件中

2.文件中的函数、变量等,直接通过包名.函数...调用

3.如果使用from 包名 import * 需要在__init__文件中添加__all__=['',''],列表中来暴露可以访问的模块(与模块导入时*的用法相反)

循环导入

大型的python项目中,由于架构不当,可能会出现模块间循环引用的情况。

避免产生循环导入:

1.重新架构

2.将对应的导入动作放入对应的函数中,不全局导入

time模块

import time

t1 = time.time()  # 生成当前时间戳
print(t1)
print(time.ctime(t1))  # 将时间戳转换为年月日格式
print(time.localtime(t1))  # 以元组格式转换时间戳
t2 = time.localtime(t1)
print(time.mktime(t2))  # 将元组转换为时间戳
print(t2.tm_hour)  # 单独调用元组的某个字段
print(time.strftime('%Y-%m-%d %H-%M-%S'))  # 按格式输出时间字符串
print(time.strptime('2022/02/07', '%Y/%m/%d'))  # 按格式将日期转换为元组

1644224436.073462
Mon Feb  7 17:00:36 2022
time.struct_time(tm_year=2022, tm_mon=2, tm_mday=7, tm_hour=17, tm_min=0, tm_sec=36, tm_wday=0, tm_yday=38, tm_isdst=0)
1644224436.0
17
2022-02-07 17-00-36
time.struct_time(tm_year=2022, tm_mon=2, tm_mday=7, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=38, tm_isdst=-1)

重点time.time() time.sleep() time.strftime('%Y-%m-%d %H-%M-%S')

timedate模块

timedate   :1.time 时间 2.date 日期 3.datetime 日期时间 4.timedelta 时间差

主要使用timedate.date.today()和timedate.timedelta()

import datetime

t1 = datetime.date.today()
t2 = datetime.datetime.now()
td = datetime.timedelta(days=2, hours=2)
t3 = t2 + td
print(t1, t2, td, t3)

2022-02-08 2022-02-08 16:04:18.652741 2 days, 2:00:00 2022-02-10 18:04:18.652741

random模块

import random

ran = random.random()  # 0-1之间的随机小数
print(ran)
ran = random.randrange(1, 10, 2)  # 根据范围和步长获取随机数,步长默认为1,取值范围右不包含
print(ran)
ran = random.randint(1, 10)  # 根据范围获取随机数,取值范围左右均包含
print(ran)
list1 = ['a', 'b', 'c', 'd']
ran = random.choice(list1)  # 从列表中随机去除一个元素
print(ran)
ran = random.shuffle(list1)  # 打乱列表顺序
print(list1)

0.21391242258489673
9
7
d
['a', 'b', 'c', 'd']

*chr()和ord()函数可以根据Unicode码和字符互相转换

hashlib模块

import hashlib

sec = 'we eat together'.encode('utf-8')  # 对语句进行编码,使用utf-8
md5 = hashlib.md5(sec).hexdigest()  # 通过md5加密,通过16进制显示摘要
sha1 = hashlib.sha1(sec).hexdigest()  # 通过sha1加密,通过16进制显示摘要
print(md5)
print(sha1)

5272875f446c833e7c0289f226a597bb
035d28ec2aff88a94ff86d25323d383630373580

 利用md5加密密码并在登录时验证

passwd = '123456'
md5 = hashlib.md5()
md5.update(passwd.encode('utf-8'))
real = md5.hexdigest()

userpasswd = input('your password:')
md5 = hashlib.md5()
md5.update(userpasswd.encode('utf-8'))
userpasswd = md5.hexdigest()
if userpasswd == real:
    print('right password')
else:
    print('wrong password')

第三方模块

通过pip install 来安装第三方模块

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/739735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号