文档首页> 云计算> python编程基础知识

python编程基础知识

发布时间:2025-09-07 00:19       

下面是一份面向上手与进阶的《Python 编程基础知识》速览,覆盖环境、语法、工程化与质量保障等核心要点,拿来就能用。🐍

1)环境与工具

  • 建议版本:Python 3.12+(语法与性能更成熟)。
  • 虚拟环境:在项目目录创建隔离依赖的环境,避免“全局污染”。
    python -m venv .venv
    # Linux/macOS
    source .venv/bin/activate
    # Windows
    .venv\Scripts\activate
    pip install -U pip
    
  • 项目元数据:使用 pyproject.toml(统一工具配置,如格式化、依赖、打包)。
  • 常用配套:ruff(代码检查与格式化),pytest(测试),uv/pip(装包)。🔧

2)语法与数据模型

  • 基本类型:intfloatboolstrNone。容器:listtupledictset
  • 切片与推导式:nums[1:5][x*x for x in nums if x%2==0]
  • 可变/不可变:list 可变,tuple 与 str 不可变;字典键必须可哈希。
  • 字符串:f"hello {name}" 可读性强,注意编码统一为 utf-8

3)控制流与模式匹配

  • 基本结构:if/elif/elsefor/whilebreak/continue

  • 枚举与迭代:for i, v in enumerate(items)for k, v in d.items()

  • 结构化模式匹配(3.10+):

    def http_status(msg: dict) -> str:
        match msg:
            case {"code": 200, "data": data}:
                return f"OK: {len(data)}"
            case {"code": c} if 400 <= c < 500:
                return "Client Error"
            case _:
                return "Unknown"
    

    适合对嵌套结构做“一语道破”的分支判断。✅

4)函数与类型标注

  • 定义:def fn(x: int, *, y: int = 0) -> int:* 后为仅限关键字参数。
  • 可变参数:*args**kwargs
  • 文档字符串:第一行简述用途,必要时补充参数与返回值。
  • 类型系统(3.9+):内置泛型写法 list[str]、联合类型 int | strtyping.Self(3.11+)提升可读性与可维护性。
  • 装饰器(了解):用于日志、缓存、鉴权等横切逻辑。

5)异常与上下文

from pathlib import Path

def load_text(p: str) -> str:
    try:
        with open(p, "r", encoding="utf-8") as f:
            return f.read()
    except FileNotFoundError as e:
        raise RuntimeError(f"file not found: {p}") from e
  • try/except/else/finally 完整掌握;善用 with 管理资源。
  • 并发异常(3.11+)支持 except*(了解即可)。

6)模块化与标准库精选

  • 目录即包:pkg/ 内有 __init__.py 则可导入。
  • 相对导入:from .utils import fn 适合包内结构。
  • 常用标准库:pathlib(路径)、dataclasses(数据模型)、jsoncollectionsitertoolsfunctoolsloggingasyncio
  • 建议默认用 pathlib.Path 替代裸字符串路径。📦

7)面向对象与数据类

from dataclasses import dataclass

@dataclass(slots=True)
class User:
    id: int
    name: str
  • @dataclass 自动生成构造与比较;slots=True 可降内存、提访问性能。
  • 组合优于继承;接口约束可用 typing.Protocol

8)文件与文本处理

from pathlib import Path
import json

p = Path("data.json")
data = json.loads(p.read_text(encoding="utf-8"))
p_out = Path("out.txt")
p_out.write_text("\n".join(sorted(data.keys())), encoding="utf-8")
  • 统一 utf-8Path.read_text/write_text 简洁安全。
  • 大文件使用流式处理,避免一次性读入内存。📄

9)并发与性能