本教程面向零基础或刚接触 Python 的开发者,按由浅入深的顺序讲解所有主要知识点。建议按章节顺序阅读。
一、Python 简介
什么是 Python?
Python 是一种 解释型、面向对象且以 可读性强 著称的编程语言。它的生态非常成熟,常见用途包括:
- 脚本自动化(写小工具、处理文件、跑任务)
- 数据分析与数据工程(Pandas、NumPy 等)
- Web 后端与接口服务(FastAPI、Flask 等)
- AI / 机器学习(生态强,社区资源多)
适合做什么?
- 想用更少代码快速完成一个功能
- 想做 API、脚本、爬虫或数据处理
- 希望语言本身对新手友好,并且拥有大量开源库
二、环境准备与运行方式
安装 Python
- 到官方站下载安装包(推荐 3.x 最新稳定版)
- 如果你在 Linux/WSL 下,也可以使用系统包管理器或版本管理工具(如 pyenv)
创建虚拟环境(强烈建议)
避免把依赖装到全局 Python,造成版本冲突:
python -m venv .venv
激活虚拟环境:
# macOS / Linux
source .venv/bin/activate
# Windows(PowerShell)
.\.venv\Scripts\Activate.ps1
升级 pip 并安装依赖:
python -m pip install -U pip
提示:创建虚拟环境可以让每个项目的依赖互相独立,更容易复现和部署。
运行脚本
python main.py
也可以直接用模块方式运行:
python -m pip --version
三、基本语法与数据类型
变量与常量
Python 不需要写类型声明:
name = "Alice"
age = 18
is_student = True
常用数据类型
int:整数float:浮点数str:字符串bool:布尔值list:列表(可变)tuple:元组(不可变,推荐当作“固定结构”使用)dict:字典(键值对)set:集合(去重)
字符串拼接:f-string
user = "Bob"
score = 95.5
print(f"{user} 的得分是 {score}")
四、条件与循环
条件分支
age = 20
if age >= 18:
print("adult")
else:
print("teen")
循环
for i in range(5):
print(i)
items = ["a", "b", "c"]
for item in items:
print(item)
while 循环:
count = 0
while count < 3:
count += 1
print(count)
五、函数与模块
函数定义与返回值
def add(a: int, b: int) -> int:
return a + b
其中:
a: int/b: int是类型标注(运行时不强制)-> int表示返回类型
模块与导入
假设有 utils.py:
# utils.py
def hello(name: str) -> str:
return f"hello, {name}"
在 main.py:
from utils import hello
print(hello("world"))
六、面向对象与异常处理
类与对象
class User:
def __init__(self, name: str):
self.name = name
def greet(self) -> str:
return f"hi, {self.name}"
u = User("Tom")
print(u.greet())
异常(try / except)
try:
n = int("123")
except ValueError as e:
print("转换失败:", e)
也可以在捕获后重新抛出:
try:
n = int("abc")
except ValueError as e:
raise RuntimeError("输入不是数字") from e
七、文件与数据格式
读写文件
with open("data.txt", "w", encoding="utf-8") as f:
f.write("Hello\n")
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
JSON
import json
obj = {"name": "Alice", "age": 18}
with open("data.json", "w", encoding="utf-8") as f:
json.dump(obj, f, ensure_ascii=False, indent=2)
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f)
print(data["name"])
八、类型标注与项目结构
当项目变大时,类型标注可以提升可维护性。一个常见结构:
my-project/
├── src/
│ └── app/
│ ├── main.py
│ └── services/
├── tests/
├── pyproject.toml (或 requirements.txt)
└── README.md
类型检查工具常见包括 mypy(可按需启用)。
九、第三方库与包管理
requirements.txt
安装依赖:
pip install requests
生成依赖清单:
pip freeze > requirements.txt
在新环境安装:
pip install -r requirements.txt
常用库举例
requests:发 HTTP 请求pydantic:数据校验与结构化(FastAPI 经常用)httpx:现代 HTTP 客户端(异步友好)
十、Web 入门(FastAPI)
安装
pip install fastapi uvicorn
最小服务
创建 main.py:
from fastapi import FastAPI
app = FastAPI()
@app.get("/health")
def health():
return {"ok": True}
启动服务:
uvicorn main:app --reload --port 8000
访问:http://localhost:8000/health
十一、测试与调试
安装 pytest
pip install -U pytest
写测试示例:tests/test_main.py
def test_add():
assert 1 + 1 == 2
运行:
pytest
调试小技巧
- 使用
print()快速定位问题 - 必要时使用
logging代替print(更可控) - Python 可直接用
breakpoint()进入调试
十二、部署与小结
部署思路
- 使用虚拟环境或容器打包依赖
- 保证环境变量(如数据库连接串)在部署平台配置
- 生产环境通常用
uvicorn+ 反向代理(如 Nginx)
小结
- Python 基础:语法、数据类型、控制流
- 工程能力:虚拟环境、requirements、项目结构
- Web:FastAPI + uvicorn 快速起服务
- 质量:pytest 做测试
十三、学习路径小结
- 学会变量、函数、循环与常见数据结构
- 逐步引入类型标注,让代码更易维护
- 熟悉虚拟环境与依赖管理(requirements)
- 做一个简单 Web 服务(FastAPI)
- 写至少几条测试(pytest),再逐步扩展项目
遇到问题可查阅 Python 官方文档 与社区示例。