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 "自带瑞士军刀"的威力。

相关推荐
黄昏恋慕黎明29 分钟前
spring MVC了解
java·后端·spring·mvc
G探险者2 小时前
为什么 VARCHAR(1000) 存不了 1000 个汉字? —— 详解主流数据库“字段长度”的底层差异
数据库·后端·mysql
百锦再2 小时前
第18章 高级特征
android·java·开发语言·后端·python·rust·django
Tony Bai3 小时前
Go 在 Web3 的统治力:2025 年架构与生态综述
开发语言·后端·架构·golang·web3
源码之家3 小时前
基于Python房价预测系统 数据分析 Flask框架 爬虫 随机森林回归预测模型、链家二手房 可视化大屏 大数据毕业设计(附源码)✅
大数据·爬虫·python·随机森林·数据分析·spark·flask
SalvoGao3 小时前
Python学习 | 怎么理解epoch?
数据结构·人工智能·python·深度学习·学习
程序猿20233 小时前
项目结构深度解析:理解Spring Boot项目的标准布局和约定
java·spring boot·后端
RainbowSea3 小时前
内网穿透配置和使用
java·后端
楚疏笃4 小时前
纯Python 实现 Word 文档转换 Markdown
python·word
掘金码甲哥4 小时前
网关上的限流器
后端