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号