闷骚熊猫

导航

python 基础必备知识

1. 基本语法

  • 缩进:用缩进(通常4个空格)表示代码块,替代其他语言的{}

  • 注释:单行用 #,多行用 """注释内容"""'''注释内容'''

  • 语句分隔:一行写多条语句用 ;,但建议换行书写提高可读性。

python

if True:
  print("Hello")  # 缩进代表代码块

2. 数据类型

  • 基本类型

    • 整型 int10

    • 浮点型 float3.14

    • 布尔型 boolTrue/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

@log_time
def heavy_calculation():
   time.sleep(1)

(2) 上下文管理器(Context Managers)

  • 用途:通过 with 管理资源(如文件、数据库连接),确保资源的正确释放。

  • 实现方式

    • 使用 @contextmanager 装饰器 + yield

    • 定义类并实现 __enter____exit__ 方法。

python

换行复制代码

from contextlib import contextmanager
@contextmanager
def open_file(path):
   file = open(path, 'r')
   try:
       yield file
   finally:
       file.close()

# 使用
with open_file('data.txt') as f:
   print(f.read())

(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官方编码规范。

  • 工具

    • 静态检查:flake8pylint

    • 自动格式化:blackautopep8

(2) 单元测试与调试

  • 测试框架unittestpytest(推荐)。

  • 调试工具pdbipdb(增强版调试器)。

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

  • 打包工具setuptoolspoetry(现代依赖管理)。


5. 性能优化

(1) 性能分析工具

  • cProfile:统计函数调用耗时。

  • line_profiler:逐行分析代码性能。

(2) 加速方案

  • C扩展:用C/C++编写关键代码(通过 ctypesCython 调用)。

  • JIT编译:使用 Numba 加速数值计算。

  • 并行计算concurrent.futuresDask


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-learnPyTorch/TensorFlow

  • 异步HTTPaiohttphttpx

posted on 2025-03-20 15:00  闷骚熊猫  阅读(42)  评论(0)    收藏  举报