python 基础必备知识
- 
缩进:用缩进(通常4个空格)表示代码块,替代其他语言的
{}。 - 
注释:单行用
#,多行用"""注释内容"""或'''注释内容'''。 - 
语句分隔:一行写多条语句用
;,但建议换行书写提高可读性。 
python
if True:
   print("Hello")  # 缩进代表代码块
2. 数据类型
- 
基本类型
:
- 
整型
int(10) - 
浮点型
float(3.14) - 
布尔型
bool(True/False) - 
字符串
str("Python"或'基础') 
 - 
 - 
复合类型
:
- 
列表
list:有序可变,如[1, "a", True] - 
元组
tuple:有序不可变,如(1, "a", True) - 
字典
dict:键值对集合,如{"name": "Alice", "age": 20} - 
集合
set:无序不重复,如{1, 2, 3} 
 - 
 
3. 变量与运算
- 
变量赋值:无需声明类型,直接赋值,如
x = 10。 - 
运算符
:
- 
算术:
+,-,*,/,//(整除),%(取余),**(幂) - 
比较:
==,!=,>,<,>=,<= - 
逻辑:
and,or,not - 
成员:
in(判断元素是否存在) 
 - 
 
python
换行复制代码
1a = 5 // 2  # 结果为2(整除)
2name = "Python"
3print("Py" in name)  # 输出 True
4. 控制流程
- 
条件语句:
if-elif-else - 
循环语句
:
- 
for循环:遍历序列(如列表、字符串等) - 
while循环:条件满足时重复执行 - 
控制关键字:
break(终止循环)、continue(跳过本次循环) 
 - 
 
python
换行复制代码
1for i in range(3):  # 输出0,1,2
2    print(i)
3
4n = 0
5while n < 3:
6    print(n)
7    n += 1
5. 函数
- 
定义函数:
def 函数名(参数): - 
参数类型
:
- 
位置参数、默认参数(如
def func(a, b=0):) - 
可变参数
*args(元组形式)、关键字参数**kwargs(字典形式) 
 - 
 - 
返回值:
return返回结果,无返回值时默认返回None。 - 
lambda表达式:匿名函数,如
add = lambda x, y: x + y。 
python
换行复制代码
1def greet(name="World"):
2    return f"Hello, {name}!"
3
4print(greet())  # 输出 Hello, World!
6. 文件操作
- 
打开文件:
open(文件路径, 模式),模式包括r(读)、w(写)、a(追加)。 - 
读写内容
:
- 
read():读取全部内容 - 
readline():读取一行 - 
write():写入内容 
 - 
 - 
上下文管理:用
with自动关闭文件。 
python
换行复制代码
1with open("test.txt", "w") as f:
2    f.write("Hello File!")
7. 异常处理
- 
捕获异常:
try-except-finally - 
抛出异常:
raise Exception("错误信息") - 
常见异常类型:
ValueError,TypeError,FileNotFoundError等。 
python
换行复制代码
1try:
2    print(10 / 0)
3except ZeroDivisionError:
4    print("除数不能为0!")
8. 模块与包
- 
导入模块:
import 模块名或from 模块名 import 函数。 - 
常用标准库
:
- 
math:数学运算 - 
os:操作系统交互 - 
datetime:处理日期时间 - 
json:JSON数据解析 
 - 
 
python
import math
print(math.sqrt(16))  # 输出4.0
9. 面向对象(OOP)
- 
类与对象:用
class定义类,__init__方法初始化对象。 - 
继承:子类继承父类属性和方法。
 - 
特殊方法:如
__str__(定义对象打印格式)。 
python
class Dog:
    def __init__(self, name):
        self.name = name
    def bark(self):
        print(f"{self.name} 在汪汪叫!")
dog = Dog("小黑")
dog.bark()  # 输出 "小黑 在汪汪叫!"
10. 常用工具
- 
列表推导式:快速生成列表,如
[x**2 for x in range(5)]。 - 
生成器:用
yield惰性计算,节省内存。 - 
装饰器:用
@装饰器名增强函数功能。 
python
# 列表推导式示例
squares = [x**2 for x in range(5)]  # 结果 [0,1,4,9,16]
掌握以上知识点后,可进一步学习高级特性(如多线程、正则表达式等)。建议通过实际项目练习巩固基础。
高级语言特性
(1) 装饰器(Decorators)
- 
作用:在不修改原函数代码的情况下增强其功能(如日志、计时、权限验证)。
 - 
实现:基于闭包和函数作为一等对象的特性。
 
python
换行复制代码
def log_time(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"函数 {func.__name__} 耗时: {time.time() - start:.2f}s")
        return result
    return wrapper
(2) 上下文管理器(Context Managers)
- 
用途:通过
with管理资源(如文件、数据库连接),确保资源的正确释放。 - 
实现方式
:
- 
使用
@contextmanager装饰器 +yield - 
定义类并实现
__enter__和__exit__方法。 
 - 
 
python
换行复制代码
from contextlib import contextmanager
(3) 元类(Metaclasses)
- 
作用:控制类的创建过程(如动态修改类属性、实现ORM框架)。
 - 
核心:元类是类的类,通过继
 - 
 - 
承
type实现。 
python
换行复制代码
1cl
ass SingletonMeta(type):
2    _instances = {}
3    def __call__(cls, *args, **kwargs):
4        if cls not in cls._instances:
5            cls._instances[cls] = super().__call__(*args, **kwargs)
6        return cls._instances[cls]
7
8class Singleton(metaclass=SingletonMeta):
9    pass
2. 并发与异步编程
(1) 多线程与多进程
- 
多线程:适合I/O密集型任务,使用
threading模块(注意GIL限制)。 - 
多进程:适合CPU密集型任务,使用
multiprocessing模块。 
python
换行复制代码
1# 多进程示例
2from multiprocessing import Process
3def worker(num):
4    print(f'进程 {num} 执行')
5processes = []
6for i in range(4):
7    p = Process(target=worker, args=(i,))
8    processes.append(p)
9    p.start()
(2) 协程与异步IO
- 
核心库:
asyncio+async/await语法。 - 
优势:单线程内实现高并发,适合网络请求等I/O密集型场景。
 
python
换行复制代码
1import asyncio
2async def fetch_data():
3    print("开始请求数据...")
4    await asyncio.sleep(2)
5    print("数据返回")
6
7async def main():
8    await asyncio.gather(fetch_data(), fetch_data())
9
10asyncio.run(main())
3. 高级数据结构与算法
(1) 生成器(Generators)
- 
特点:惰性计算,节省内存,用
yield返回值。 - 
应用:处理大数据流、实现迭代器协议。
 
python
换行复制代码
1def fibonacci():
2    a, b = 0, 1
3    while True:
4        yield a
5        a, b = b, a + b
6
7fib = fibonacci()
8print([next(fib) for _ in range(10)])  # 输出前10项
(2) 内存视图与缓冲区协议
- 
用途:高效处理二进制数据(如NumPy数组、图像处理)。
 - 
工具:
memoryview对象。 
4. 工程化实践
(1) 代码规范与工具
- 
PEP8:Python官方编码规范。
 - 
工具
:
- 
静态检查:
flake8、pylint - 
自动格式化:
black、autopep8 
 - 
 
(2) 单元测试与调试
- 
测试框架:
unittest、pytest(推荐)。 - 
调试工具:
pdb、ipdb(增强版调试器)。 
python
换行复制代码
1# pytest 示例
2def add(a, b):
3    return a + b
4
5def test_add():
6    assert add(2, 3) == 5
(3) 项目结构与打包
- 
标准结构:
my_project/ ├── src/ │ └── my_module/ │ ├── __init__.py │ └── core.py ├── tests/ ├── requirements.txt └── setup.py - 
打包工具:
setuptools、poetry(现代依赖管理)。 
5. 性能优化
(1) 性能分析工具
- 
cProfile:统计函数调用耗时。
 - 
line_profiler:逐行分析代码性能。
 
(2) 加速方案
- 
C扩展:用C/C++编写关键代码(通过
ctypes或Cython调用)。 - 
JIT编译:使用
Numba加速数值计算。 - 
并行计算:
concurrent.futures、Dask。 
6. 设计模式
- 
单例模式(见元类示例)
 - 
工厂模式:动态创建对象。
 - 
观察者模式:事件驱动架构。
 
python
换行复制代码
1# 观察者模式示例
2class Subject:
3    def __init__(self):
4        self._observers = []
5    def attach(self, observer):
6        self._observers.append(observer)
7    def notify(self):
8        for observer in self._observers:
9            observer.update()
10
11class Observer:
12    def update(self):
13        print("收到状态更新!")
7. 常用高级库
- 
数据处理:
NumPy(数值计算)、Pandas(数据分析) - 
Web开发:
Flask(轻量级)、Django(全栈框架) - 
机器学习:
scikit-learn、PyTorch/TensorFlow - 
异步HTTP:
aiohttp、 
                
            
        
浙公网安备 33010602011771号