一.模块
1.1 导入语法
- import 模块名 [ as 模块新名字1]
导入一个模块到当前程序
- from 模块名 import 模块属性名 [ as 属性新名]
导入一个模块内部的部分属性到当前程序,比如函数
- from 模块名 import *
导入一个模块内部的全部属性到当前程序
1 2 3 4 5 6 7
| import module import module1 module.test() module1.is_1(1)
|
结果:
注意,模块与模块之间不能嵌套导入,比如模块1中导入模块2,在一个.py文件中导入模块1,是访问不到模块2里的东西的。
1.2 内部属性
file 绑定模块的路径,打印会返回当前模块路径
name 绑定模块的名称:
如果是主模块(首先启动的模块)则绑定 '__main__'如果不是主模块则 绑定 xxx.py 中的 xxx 这个模块名。什么意思呢?就是在这个py文件里打印`__name__`就是'__main__',如果在另一个模块里打印`__name__`,然后再用现在这个py文件里导入另一个模块,则打印出来的就是模块名。
实际上俩存储的都是字符串
1.3 内置模块
- 数学模块
1 2 3 4 5 6 7 8 9 10 11 12 13
| import math
a = 9 b = math.sqrt(a) print(b)
print(math.pi)
print(math.log(2,4))
|
结果:
1 2 3
| 3.0 3.141592653589793 0.5
|
- 随机数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| import random
x = random.random() print(x)
y = random.random() * (6-(-5))+(-5) print(y)
x = [1,2,34] print(random.choice(x)) print(random.choice('ABCD'))
a = random.randint(1,10) print(a)
x = [1,2,3,4,5,6,7,8,9,10] random.shuffle(x) print(x)
|
结果:
1 2 3 4 5 6
| 0.2984475886500685 0.03470368839121374 1 A 5 [6, 10, 8, 9, 1, 7, 4, 5, 2, 3]
|
- time 模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import time
print(time.time())
print("2秒后打印") time.sleep(2) print() print("打印咯")
print(time.localtime())
time.strftime("%Y-%m-%d %H:%M:%S")
|
结果:
1 2 3 4 5 6 7 8 9
| 1742627503.7597053 2秒后打印
打印咯 time.struct_time(tm_year=2025, tm_mon=3, tm_mday=22, tm_hour=15, tm_min=11,
tm_sec=45, tm_wday=5, tm_yday=81, tm_isdst=0)
'2025-03-22 15:11:45'
|
- os 模块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| import os
print(os.getcwd())
os.path.join(os.getcwd(),'test.txt')
os.path.relpath(os.path.join(os.getcwd(),'test.txt'))
os.mkdir('test')
print(os.listdir('.'))
os.rmdir('test')
os.remove('test.txt')
|
结果:
1 2
| d:\Software\code\py\hqyj\3.22 ['3.22.ipynb', '3.22_1.ipynb', '3.22_2.ipynb', 'module.py', 'module1.py', 'test', 'test.py', 'test.txt', '__pycache__']
|
1.4 第三方模块
要先下载在当前环境下,才能进行导入。
二.包
2.1 怎么用
1 2 3
| import tool.m1 from tool import m1
|
2.2 _init.py
告诉Python解释器当前目录应被视为一个包
可以包含任何代码,通常用于包的初始化操作,如变量初始化、导入模块等。这些代码在包被导入时执行
通过 all 变量明确指定从包中可以导入哪些模块,从而限制包的公开接口
init.py 中定义的变量和函数可以在包的模块中共享,相当于是当前文件夹的数据
1 2 3 4
| from tool import a,b import tool.m1 print(a,b)
|
结果:
1 2 3
| from tool import * m2.fn1()
|
结果:

是运行不了的。