Python 基础 - 第十节


📋 本节要点

知识点 说明
import 导入整个模块
from ... import 导入模块中的特定函数/变量
as 给模块或函数起别名
__name__ 判断程序运行方式
__main__ 程序入口标识

1. 模块概述

模块是一个包含 Python 代码的文件(.py 文件),可以将相关的函数、变量、类组织在一起,方便重复使用。


2. 导入模块的方式

2.1 import 导入整个模块

import 模块名

导入整个模块后,使用时需要加模块名前缀。

import random

computer = random.randint(1, 3)  # 使用 random 模块的 randint 函数

2.2 from ... import 导入特定内容

从模块中导入指定的部分(函数、变量、类),使用时无需加模块名前缀。

from random import randint

computer = randint(1, 3)  # 直接使用 randint,不需要 random.

2.3 as 给模块或函数起别名

如果模块名或函数名较长,可以起一个简短的别名。

import random as rd          # 给模块起别名
from random import randint as ri  # 给函数起别名

computer = rd.randint(1, 3)
computer = ri(1, 3)

3. 常用标准模块

3.1 random 模块

random 模块用于生成随机数。

import random

random.randint(1, 10)      # 生成 1-10 之间的随机整数
random.random()           # 生成 0-1 之间的随机浮点数
random.choice([1, 2, 3])   # 从列表中随机选择一个元素
random.shuffle([1, 2, 3]) # 随机打乱列表顺序

3.2 time 模块

time 模块用于时间相关的操作。

import time

time.time()        # 返回当前时间戳(秒数)
time.sleep(1)      # 暂停执行 1 秒
time.strftime("%Y-%m-%d %H:%M:%S")  # 格式化时间

3.3 math 模块

math 模块提供数学运算函数。

import math

math.pi           # 圆周率 π
math.e            # 自然常数 e
math.sqrt(16)     # 平方根,返回 4.0
math.floor(3.7)   # 向下取整,返回 3
math.ceil(3.2)    # 向上取整,返回 4

4. 自定义模块

除了使用 Python 内置的模块,我们也可以创建自己的模块。

4.1 创建模块

创建一个 my_module.py 文件:

# my_module.py

def aaa():
    print("aaa")

def bbb():
    print("bbb")

4.2 导入自定义模块

import my_module

my_module.aaa()  # 调用 my_module 中的 aaa 函数
my_module.bbb()  # 调用 my_module 中的 bbb 函数

或者:

from my_module import aaa, bbb

aaa()  # 直接使用
bbb()

5. if name == "main"

__name__ 是 Python 的内置变量,用于判断模块是被导入还是直接运行。

  • 当直接运行某个 .py 文件时,__name__ 的值是 "__main__"
  • 当该文件被导入到其他文件时,__name__ 的值是模块名
# my_module.py

def aaa():
    print("aaa")

def bbb():
    print("bbb")

# 只有直接运行此文件时才会执行
if __name__ == "__main__":
    print("直接运行模块")
    aaa()
    bbb()

运行效果:
- 直接运行 python my_module.py → 输出 "直接运行模块" 和 "aaa"、"bbb"
- 从其他文件 import my_module → 不会输出任何内容

作用:通常用于测试代码,区分"直接运行"和"被导入"两种情况。


6. 实战案例:剪刀石头布(使用模块)

from random import randint

while True:
    computer = randint(1, 3)
    people = int(input("请输入剪刀1,石头2,布3:"))

    if people not in (1, 2, 3):
        continue  # 输入无效,重新开始

    if (computer == 1 and people == 3) or \
       (computer == 2 and people == 1) or \
       (computer == 3 and people == 2):
        print("电脑胜利!")
    elif computer == people:
        print("平局")
    else:
        print("玩家胜利!")

    print("电脑出的是:", computer)

导入方式对比

导入方式 优点 缺点
import 模块 避免命名冲突 使用时需加前缀
from 模块 import 函数 使用方便 可能与本地命名冲突
import 模块 as 别名 简化长名称 需要记住别名

🎉 Python 基础课程完结! 恭喜你已掌握 Python 基础知识,继续加油!