模块 包 循环导入 系统
模块:
把功能相近的函数或者类放到一个文件中
好处:
提高代码的可复用,可维护性。
导入模块:
- import 模块名
list=[1,2] #导入模块 import calculate sum=calculate.add(*list) print(sum)模块名.变量 模块名.函数 模块名.类
2.from 模块名 import 变量 | 函数 | 类,在代码中直接使用变量,函数,类
from calculate import add,number,Calculate list=[1,2] result=add(*list) print(result) sum=result+number print(sum) c=Calculate() c.test()3.from 模块名 import *,导入模块中的所有的内容
但是如果想限制获取的内容,可以在导入的模块中使用__all__=['add','number']
__all__=['add','number','Calculate']包:
一个包中可以存放多个模块
文件夹:非py文件 包:py文件
项目 > 包 > 模块 >类 > 函数 > 变量
from 包 import 模块
form 包.模块 import 类 | 方法 | 变量(推荐)
form 包.模块 import * __all__=[]
当创建package时,会自动创建一个__init__
作用:
- 当导入包的时候,默认调用__init__.py文件
import 包
- 当导入包的时候,把一些初始化的函数,变量,类,定义在__init__.py文件中
- 此文件中的函数,变量等的访问,只需要通过包名.函数
from 包.模块 import 类
- form 包 import * 表示该包中内容是不能访问,就需要在__init__.py文件中定义__all__=[可以通过*访问的]
循环导入:
由于架构不当,可能会出现模块之间的相互导入
解决办法:将导入的代码放到函数里面,或者把导入语句放到模块的最后面
系统:
sys:
sys.path sys.version sys.argv
import sys print(sys.path) print(sys.argv) print(sys.version)time和datetime:
import time t=time.time() print(t)#1782704820.9784555 #将时间戳转成字符串 s=time.ctime(t) print(s)#Mon Jun 29 10:53:54 2026 #转化成元组的形式 t=time.localtime(t) print(t.tm_year)#2026 print(t)#time.struct_time(tm_year=2026, tm_mon=6, tm_mday=29, tm_hour=11, tm_min=49, tm_sec=45, tm_wday=0, tm_yday=180, tm_isdst=0) #将元组的转化成时间戳 tt=time.mktime(t) print(tt)#1782704985.0 #将元组的时间转化成字符串 s=time.strftime("%Y-%m-%d %H:%M:%S") print(s)#2026-06-29 10:58:52import datetime print(datetime.date.today())#2026-06-29 now=datetime.datetime.now()#当前的时间 print(now)#2026-06-29 14:53:49.616129 #时间差 timedel=datetime.timedelta(days=3,hours=23) result=now-timedel print(result)#2026-06-26 14:53:49.616129random:
import random ran=random.random()#0-1之间的随机小数 print(ran) ran1=random.randrange(1,10,2)#randrange(start,stop,step) print(ran1)#1,3,5,7,9 ran2=random.randint(1,10)#包含1和10 print(ran2) list=['zz','hskh','hid','ha','ahl'] ran3=random.choice(list) print(ran3) random.shuffle(list)#打乱顺序 print(list)#['ahl', 'zz', 'hid', 'hskh', 'ha']例子:随机生成验证码
import random def func(): code='' for i in range(4): ran1=str(random.randint(0,9)) ran2=chr(random.randint(65,90)) ran3 = chr(random.randint(97,122)) r=random.choice([ran1,ran2,ran3]) code+=r return code code=func() print(code)hashlib:
解码和编码
import hashlib password='123456' list1=[] sha256=hashlib.sha256(password.encode('utf-8'))#生成的是二进制 list1.append(sha256.hexdigest())#把哈希运算后的二进制摘要,转换成 16 进制字符串 psw=input("请输入密码") sha256=hashlib.sha256(psw.encode('utf-8')) psw=sha256.hexdigest() for i in list1: if psw==i: print("登录成功")第三方:pillow
先导入这个包,然后可以使用这个包里面的所有方法和属性
