Python 学习笔记:os 模块、内置函数、函数注解与调试
·
1. os 模块:与操作系统交互
os 模块是 Python 标准库中用于与操作系统交互的核心模块。它提供了大量函数来操作文件、目录、进程和环境变量。
1.1 常用功能
- 文件和目录操作:
os.listdir()、os.mkdir()、os.remove()、os.rename()。 - 路径处理:
os.path.join()、os.path.exists()、os.path.abspath()。 - 环境变量:
os.environ字典,os.getenv()。 - 进程管理:
os.system()、os.popen()。
1.2 示例代码
import os
列出当前目录下的所有文件和文件夹
print(os.listdir('.'))
创建新目录
os.mkdir('new_folder')
获取文件的绝对路径
abs_path = os.path.abspath('example.txt')
print(abs_path)
检查文件是否存在
if os.path.exists('example.txt'):
print('文件存在')
else:
print('文件不存在')
2. 内置函数(Built-in Functions)
Python 内置函数是无需导入任何模块即可直接使用的函数,它们是 Python 语言的核心组成部分。
2.1 常用内置函数分类
- 类型转换:
int()、str()、list()、dict()。 - 数学运算:
abs()、round()、sum()、max()、min()。 - 迭代与序列操作:
len()、range()、enumerate()、zip()。 - 输入输出:
print()、input()。 - 对象与属性:
type()、isinstance()、hasattr()、getattr()。
2.2 示例:使用内置函数处理数据
# 类型转换与数学运算
num_str = '123'
num_int = int(num_str) # 字符串转整数
print(abs(-10)) # 绝对值
print(sum([1, 2, 3, 4])) # 求和
迭代操作
names = ['Alice', 'Bob', 'Charlie']
for idx, name in enumerate(names, start=1):
print(f'{idx}. {name}')
使用 zip 合并两个列表
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f'{name} is {age} years old.')
3. 函数注解(Function Annotations)
函数注解是 Python 3 引入的语法,用于为函数参数和返回值添加元数据(类型提示或其他信息),提高代码可读性,并可供 IDE 和静态类型检查工具(如 mypy)使用。
3.1 基本语法
def greet(name: str, age: int) -> str:
"""返回一个问候字符串。"""
return f'Hello {name}, you are {age} years old.'
注解存储在函数的 annotations 属性中
print(greet.annotations)
输出:{'name': <class 'str'>, 'age': <class 'int'>, 'return': <class 'str'>}
3.2 复杂类型与默认值
from typing import List, Optional
def process_items(items: List[str], limit: Optional[int] = None) -> List[str]:
"""处理字符串列表,可选限制返回数量。"""
if limit is not None:
return items[:limit]
return items
result = process_items(['apple', 'banana', 'cherry'], limit=2)
print(result) # 输出:['apple', 'banana']
注意:注解不会影响运行时行为,Python 解释器不会强制进行类型检查。
4. 函数的调试(Debugging)
调试是发现和修复代码错误的过程。Python 提供了多种调试工具和方法。
4.1 使用 print 进行简单调试
def calculate_sum(a, b):
print(f'[DEBUG] 输入: a={a}, b={b}') # 打印输入值
result = a + b
print(f'[DEBUG] 结果: {result}') # 打印计算结果
return result
calculate_sum(5, 3)
4.2 使用断言(assert)
def divide(x, y):
assert y != 0, '除数不能为零!' # 如果 y==0,程序会抛出 AssertionError
return x / y
print(divide(10, 2)) # 正常
print(divide(10, 0)) # 会触发 AssertionError: 除数不能为零!
4.3 使用 pdb(Python 调试器)
pdb 是 Python 内置的交互式调试器,可以设置断点、单步执行、查看变量值等。
import pdb
def buggy_function(x):
result = 0
for i in range(x):
pdb.set_trace() # 在此处进入 pdb 调试模式
result += i * 2
return result
运行 buggy_function(3) 会进入调试模式,可使用命令:
n (next) - 执行下一行
c (continue) - 继续执行直到下一个断点
p variable - 打印变量值
q (quit) - 退出调试
4.4 使用 IDE 的图形化调试器
现代 IDE(如 PyCharm、VSCode)提供了更友好的图形化调试界面,支持设置断点、查看调用栈、监视变量等,是更高效的调试方式。
5. 总结与关联
这四个知识点是 Python 编程中紧密相关的核心技能:
- os 模块让你能够与操作系统交互,管理文件和进程。
- 内置函数是 Python 的基础工具,无需导入即可完成常见操作。
- 函数注解提升了代码的可读性和可维护性,是现代 Python 开发(尤其是大型项目)的推荐实践。
- 函数调试是发现和解决问题的必备技能,从简单的
print到专业的pdb和 IDE 调试器,工具链丰富。
建议在学习过程中多动手实践,将 os 模块用于文件操作,用内置函数处理数据,为函数添加类型注解,并尝试使用不同的调试方法来排查代码问题。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)