小白学 Python
课程GitHub
© 2026 小白学 Python · 基于 walter201230/Python 教程
课程目录GitHub
Python 环境加载中…
模块0 / 4
1234

模块

4 道练习题·预计 35 分钟·做对一题解锁下一段

教学 01 / 06· 已读

第八节:模块

到这一节,Python 基础学习就接近尾声了。

这一节学的是 模块——把代码按功能切分、复用别人写好的代码的关键工具。

本节脉络

  • 一、Python 模块简介
  • 二、模块的使用:import / from···import / from ··· import *
  • 三、主模块和非主模块(__name__ == '__main__')
  • 四、包(Package)
  • 五、作用域(public / private)

提示:本节的练习全部使用 Python 内置标准库(math / random / datetime / json 等),不会让你创建额外的 .py 文件。

教学 02 / 06· 已读

一、Python 模块简介

随着代码越写越多,把所有代码都堆到一个文件里会越来越难维护。

之前我们学过:

  • 函数:把一段功能封装起来,方便重复使用
  • 类:把相关的变量和函数封装到一起

而 模块 比类更高一级——一个模块里可以放变量、函数、类。

┌─────────────────────┐
│ 模块                 │
│                     │
│  变量                │
│                     │
│  函数                │
│                     │
│  ┌────────────────┐ │
│  │ 类              │ │
│  │   变量1/变量2... │ │
│  │   函数1/函数2... │ │
│  └────────────────┘ │
└─────────────────────┘

封装函数用 def,封装类用 class,封装模块不需要任何关键字——

在 Python 中,一个 .py 文件就是一个模块(Module)。

为什么要用模块?

  1. 提高可维护性——按功能拆分到不同文件,不再是一个巨型脚本
  2. 代码复用——别人写好的模块可以直接拿来用,不必从零造轮子
  3. 避免命名冲突——相同名字的函数和变量可以分别存在不同模块中

Python 自带了很多非常有用的模块(叫 标准库),装好 Python 就能用,比如 math、random、datetime、json、os、sys ……

模块大致分两类:

  • 标准库模块:Python 自带,比如 math
  • 自定义模块:你自己写的 .py 文件
  • 第三方模块:别人发布到 PyPI 上、用 pip install 安装的

本节练习主要用标准库。

教学 03 / 06

二、模块的使用

要使用某个模块,必须先 导入。导入的关键字是 import。

1、import

最基本的语法:

python
import 模块名

也可以一次导入多个:

python
import module1, module2, module3

例子——使用标准库 math 模块的 pi 属性:

python
import math

print(math.pi)

输出:

3.141592653589793

一个模块只会被导入一次,不管你写了多少次 import。重复 import 不会重复执行模块代码。

2、from ··· import

import math 只是把 math 这个模块整体引进来,使用里面的东西必须写前缀(math.pi、math.sqrt(...))。

如果只想用模块里的某一个函数或属性,可以直接 挑出来导入:

python
from 模块名 import 名字1, 名字2, ...

对比一下:

python
# 写法 1:import 整个模块
import math
print(math.pi)        # 必须写 math. 前缀

# 写法 2:from···import 直接拎出来
from math import pi
print(pi)             # 不用写 math.

两种都可以,看场景:

  • 用得多 / 怕重名 → import math
  • 只用一两个、想少打字 → from math import pi, sqrt

3、from ··· import *

如果想把模块里 所有公开 的名字一次性全部拉进当前命名空间:

python
from math import *

print(pi)
print(sqrt(16))

⚠️ 不推荐这么写。会把一堆名字塞进当前作用域,容易和你自己定义的变量名冲突,代码也变得不清晰。除非交互式探索,正式代码里基本不用。

4、起别名(as)

模块名太长?可以起别名:

python
import datetime as dt

today = dt.date(2026, 1, 1)
print(today)

数据科学圈最常见的两个:

python
import numpy as np
import pandas as pd
练习 1 / 4·用 math 模块算圆周长题目有问题?

请用 import 引入 math 模块,然后利用 math.pi:

  1. 计算半径 r = 5 时的圆周长,公式 2 * math.pi * r
  2. 把结果保留 4 位小数(用内置函数 round(..., 4))赋给变量 c
  3. print(c)

输出应该是:

31.4159
main.py
可编辑
🔒做对当前题解锁下一段 ·0/4
本章目录

模块

  1. 教学 01第八节:模块
  2. 教学 02一、Python 模块简介
  3. 教学 03二、模块的使用
  4. 练习 1用 math 模块算圆周长
  5. 练习 2 🔒from···import:直接拎出 sqrt
  6. 教学 04三、主模块和非主模块
  7. 教学 06四、包(Package)和作用域
  8. 教学 05五、几个常用的标准库
  9. 练习 3 🔒用 datetime 模块构造日期
  10. 练习 4 🔒用 json 模块序列化字典
← 上一章08 · 面向对象
模块
下一章 →10 · 魔法方法