模块 包 循环导入 系统

模块:

把功能相近的函数或者类放到一个文件中

好处:

提高代码的可复用,可维护性。

导入模块:

  1. 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:52
import 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.616129

random:

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

先导入这个包,然后可以使用这个包里面的所有方法和属性