Python编程实战 - 函数与模块化编程 - Python内置模块(math、os、sys、random等)

Python 之所以强大,不仅因为它语法简洁,更因为它自带了一个功能丰富的 标准库(Standard Library) 。这些模块就像"内置工具箱",几乎能覆盖开发中大多数常见需求:数学计算、文件操作、系统交互、随机数生成、时间处理等。 本章将带你认识几个常用的内置模块:mathossysrandom 等。


一、math 模块 ------ 数学运算工具箱

math 模块提供了大量数学函数和常数,可以帮助我们更方便地进行各种计算。

1. 导入方式

python 复制代码
import math

2. 常用函数

python 复制代码
import math

print(math.sqrt(16))    # 平方根 -> 4.0
print(math.pow(2, 3))   # 幂运算 -> 8.0
print(math.ceil(4.2))   # 向上取整 -> 5
print(math.floor(4.8))  # 向下取整 -> 4
print(math.fabs(-5))    # 绝对值 -> 5.0

3. 常用数学常数

python 复制代码
print(math.pi)   # 圆周率 3.1415926...
print(math.e)    # 自然常数 e

💡 应用场景示例:计算圆的面积

python 复制代码
import math

r = 5
area = math.pi * math.pow(r, 2)
print(f"半径为 {r} 的圆面积是 {area:.2f}")

二、os 模块 ------ 与操作系统交互

os 模块主要用于文件、目录操作以及获取系统信息。

1. 获取当前工作目录

python 复制代码
import os
print(os.getcwd())

2. 列出当前目录下的文件和文件夹

python 复制代码
print(os.listdir('.'))

3. 创建与删除文件夹

python 复制代码
os.mkdir('test_folder')       # 创建文件夹
os.rmdir('test_folder')       # 删除文件夹

4. 路径操作

python 复制代码
path = os.path.join('folder', 'file.txt')
print(path)                   # 输出 folder/file.txt
print(os.path.exists(path))   # 判断路径是否存在

💡 应用场景示例:批量重命名文件

python 复制代码
import os

for filename in os.listdir('.'):
    if filename.endswith('.txt'):
        new_name = 'new_' + filename
        os.rename(filename, new_name)

三、sys 模块 ------ Python 解释器接口

sys 模块提供与 Python 解释器相关的功能,例如访问命令行参数、退出程序、查看路径等。

1. 命令行参数

python 复制代码
import sys

print(sys.argv)  # 获取命令行参数列表

例如执行:

复制代码
python test.py hello world

输出:

css 复制代码
['test.py', 'hello', 'world']

2. 退出程序

python 复制代码
sys.exit("程序终止")

3. 查看模块搜索路径

python 复制代码
print(sys.path)

4. 获取 Python 版本信息

python 复制代码
print(sys.version)

💡 应用场景示例:命令行传参

python 复制代码
import sys

if len(sys.argv) < 2:
    print("请传入一个参数")
else:
    print(f"你输入的参数是:{sys.argv[1]}")

四、random 模块 ------ 随机数与随机选择

random 模块是 Python 的随机工具,常用于模拟、抽奖、随机抽样等场景。

1. 生成随机整数

python 复制代码
import random

print(random.randint(1, 10))  # 1~10 之间的随机整数

2. 生成随机浮点数

python 复制代码
print(random.random())        # 0~1 之间的随机浮点数
print(random.uniform(1.5, 5)) # 1.5~5 之间的随机浮点数

3. 从序列中随机选择

python 复制代码
fruits = ['apple', 'banana', 'cherry']
print(random.choice(fruits))

4. 打乱列表顺序

python 复制代码
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)

💡 应用场景示例:模拟抽奖系统

python 复制代码
import random

users = ['Alice', 'Bob', 'Cindy', 'David']
winner = random.choice(users)
print(f"幸运用户是:{winner}")

五、其他常用内置模块简要介绍

1. datetime ------ 时间与日期处理

python 复制代码
import datetime

now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))

2. time ------ 时间戳与延时

python 复制代码
import time

print(time.time())  # 当前时间戳
time.sleep(2)       # 暂停 2 秒

3. json ------ 处理 JSON 数据

python 复制代码
import json

data = {"name": "Tom", "age": 25}
json_str = json.dumps(data)
print(json_str)  # 转换为 JSON 字符串

六、总结

模块 功能 常用函数
math 数学计算 sqrt、pow、ceil、pi
os 文件和目录操作 listdir、mkdir、path.join
sys 与解释器交互 argv、exit、path、version
random 随机数与抽样 randint、choice、shuffle
datetime 日期时间处理 now、strftime
json JSON 数据转换 dumps、loads

七、实战案例:综合使用多个模块

python 复制代码
import os
import random
import datetime

# 随机生成一个文件名
file_name = f"log_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}_{random.randint(100,999)}.txt"

# 保存路径
path = os.path.join(os.getcwd(), file_name)

# 写入内容
with open(path, 'w') as f:
    f.write("这是自动生成的日志文件\n")

print(f"文件已生成:{path}")

这个例子中,我们综合使用了 osrandomdatetime 模块,实现了一个自动命名日志文件的小工具。


八、结语

Python 的标准库是它最宝贵的资源之一,它让开发者能以极少的代码完成复杂的任务。 掌握 mathossysrandom 等核心模块,是从入门走向实战的必经之路。 未来,当你熟悉了这些模块,再去探索如 re(正则表达式)、jsondatetimepathlib 等更多模块时,你会真正感受到 Python "自带瑞士军刀"的威力。

相关推荐
Victor3565 小时前
Redis(94)如何启用Redis的数据加密?
后端
Blossom.1185 小时前
把AI“灌”进奶瓶:1KB决策树让婴儿温奶器自己学会「恒温+计时」
人工智能·python·深度学习·算法·决策树·机器学习·计算机视觉
Victor3565 小时前
Redis(95)Redis的防火墙配置如何设置?
后端
Jmayday6 小时前
python数据分析项目之:房地产数据可视化分析
python·信息可视化·数据分析
陪我一起学编程7 小时前
Rust 不可变借用:从规则约束到内存安全的深度思考
后端·rust·编程语言
快乐的钢镚子8 小时前
【leetcode hot 100】49.字母异位词分组
python·leetcode
honeysuckle_luo9 小时前
RandLA-net-pytorch 复现
人工智能·pytorch·python
SunnyDays101110 小时前
Python 高效实现 Excel 与 TXT 文本文件之间的数据转换
python·excel转txt·文本转excel·excel转文本·txt转excel
硬件人某某某11 小时前
python基于卷积神经网络的桥梁裂缝检测系统(django),附可视化界面,源码
python·cnn·django