以下是 Python 基础语法 的系统梳理(2025–2026 视角),覆盖零基础到能写小工具的常用核心内容。
我会用最清晰的分类 + 代码示例 + 常见陷阱的方式呈现,方便快速查阅和记忆。
1. 基本规则(必须记住的前5条)
| 规则 | 说明 | 示例 / 注意事项 |
|---|---|---|
| 缩进决定代码块 | 没有 {},用缩进来表示代码层次(推荐4个空格) | 混用空格+Tab → IndentationError |
| 语句不需要分号 | 一行通常一条语句,可用 ; 写多条(不推荐) | x=1; y=2 |
| 区分大小写 | True ≠ true | — |
| 注释 | 单行 #,多行 ''' 或 """(也常作文档字符串) | — |
| 动态类型 + 鸭子类型 | 变量无需声明类型,关注“能不能用”而非“是什么类型” | — |
2. 变量与赋值(2025年写法趋势)
# 推荐写法(Python 3.6+ 类型提示越来越流行)
name: str = "重阳" # 类型提示(不强制)
age: int = 18
height: float = 1.75
is_active: bool = True
# 多变量赋值(很常用)
x, y, z = 10, 20, "hi"
# 交换两个变量(Python特色,一行完成)
x, y = y, x
# 链式赋值
a = b = c = 0
3. 核心数据类型(2025主流用法)
| 类型 | 可变? | 示例创建方式 | 常用操作 / 方法 |
|---|---|---|---|
| int | — | x = 42 或 x = 1_000_000(下划线可读) | // 整除, ** 幂, bit_length() |
| float | — | 3.14, 1e-10 | round(x, 2), math.isclose() |
| bool | — | True, False | and or not 短路求值 |
| str | 不可变 | 'hello', "世界", f"{name} {age}" | f-string, .format(), .strip(), .split() |
| list | 可变 | [], [1, 2, 3], list(range(10)) | append, extend, pop, insert, 切片 |
| tuple | 不可变 | (), (1,), (x, y) | 解包,常用作函数多返回值 |
| dict | 可变 | {}, {"a":1}, dict(a=1,b=2) | get(), setdefault(), items(), |=合并 |
| set | 可变 | set(), {1,2,3} | add, remove, union |, intersection & |
2025新手最推荐的字符串写法(f-string 几乎全面取代旧方式):
name = "重阳"
age = 25
print(f"大家好,我是{name},今年{age}岁") # 最常用
print(f"{age=}") # 调试神器:age=25
print(f"{price=:.2f} 元") # 格式控制
4. 控制流(if / for / while)
# if - elif - else(注意冒号和缩进)
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
else:
grade = "C"
# 条件表达式(三元运算符)
status = "成年" if age >= 18 else "未成年"
# for 循环(最常用两种)
for i in range(5): # 0 1 2 3 4
print(i)
for idx, value in enumerate(["a", "b", "c"]):
print(f"第{idx}个元素是 {value}")
# while(小心死循环)
count = 0
while count < 3:
print("循环中...")
count += 1
5. 函数(def + lambda)
# 普通函数(带类型提示越来越流行)
def greet(name: str, age: int = 18) -> str:
"""问候函数"""
return f"你好,{name}!今年{age}岁"
# 可变参数(*args, **kwargs)
def add(*numbers):
return sum(numbers)
# lambda(匿名函数,常用于排序、map等)
square = lambda x: x*x
sorted_students = sorted(students, key=lambda s: s["score"], reverse=True)
# Python 3.10+ 新语法:结构化模式匹配(match-case)
match command:
case "quit" | "exit":
print("再见")
case ["add", x, y]:
print(x + y)
case _:
print("未知命令")
6. 异常处理(try-except)
try:
num = int(input("请输入数字:"))
result = 100 / num
except ValueError:
print("请输入有效的数字!")
except ZeroDivisionError:
print("不能除以0!")
except Exception as e: # 捕获其他异常
print(f"发生未知错误:{e}")
else:
print("计算成功,结果是", result)
finally:
print("无论如何都会执行这段代码")
7. 常用内置函数(前10个最实用)
print() len() type() id()
range() sum() max/min sorted()
input() str/int/float/bool
list() tuple() dict() set()
8. 模块导入(import 写法对比)
import math
print(math.sqrt(16)) # 经典写法
from math import sqrt, pi # 推荐常用函数直接导入
print(sqrt(25), pi)
from datetime import datetime as dt # 起别名(很常见)
print(dt.now())
import numpy as np # 数据科学/机器学习几乎必用别名
快速自测清单(掌握这些就能写小工具)
- [ ] 能正确写 f-string 和 format
- [ ] 熟练使用列表推导式
[x*2 for x in range(10) if x%2==0] - [ ] 能写带默认参数和 args/*kwargs 的函数
- [ ] 能处理常见异常(ValueError, ZeroDivisionError, FileNotFoundError)
- [ ] 知道
enumerate(),zip(),range() - [ ] 能读写简单 txt/json/csv 文件
- [ ] 能用
if __name__ == "__main__":写可执行脚本
如果你现在能流畅写出下面这段代码,就说明基础已经过关了:
def count_words(text: str) -> dict:
words = text.lower().split()
result = {}
for word in words:
result[word] = result.get(word, 0) + 1
return result
text = "Python is great Python is fun"
print(count_words(text))
# 输出类似:{'python': 2, 'is': 2, 'great': 1, 'fun': 1}
想重点深入哪一块?
- 列表/字典推导式 + 生成器表达式
- 文件读写(txt/json/csv)
- 类与面向对象基础
- 常用标准库(datetime / random / os / sys)
- 调试技巧(print vs logging vs pdb)
- Pythonic 写法 vs 不推荐写法对比
直接告诉我,我继续给你展开~