Skip to content

Python 基础语法速查:变量、数字、字符串、运算符、类型转换,以及 list/tuple/dict/set 四大容器和推导式。看一遍示例就能回想起用法,适合写代码前快速扫一眼。

速查总览(一段代码看全部)

python
# === 变量与动态类型 ===
x = 5            # 不用声明类型,运行时确定
x = "hello"      # 同一变量可换类型
a, b = 1, 2      # 多元赋值
a, b = b, a      # 交换变量(无临时变量)

# === 数字 ===
7 // 2   # 3     整除
7 % 2    # 1     取余
2 ** 10  # 1024  幂
round(3.14159, 2)  # 3.14

# === 字符串 ===
s = "hello"
s.upper()          # 'HELLO'
s.lower()          # 'hello'
s.strip()          # 去首尾空白
s.split(",")       # ['a','b']  按分隔符切
",".join(["a","b"]) # 'a,b'    拼接
s.startswith("he") # True
s.replace("l","L") # 'heLLo'
s.find("ll")       # 2  找不到返回 -1
s.count("l")       # 2
len(s)             # 5
f"值={x}"          # f-string 格式化(首选)
"{} {}".format(1, 2)

# === 类型转换 ===
int("42")   # 42
float("3.5") # 3.5
str(42)     # '42'
list("abc") # ['a','b','c']

# === 布尔 ===
True / False
not x, x and y, x or y

容器速查

列表 list(可变,有序)

python
lst = [3, 1, 2]
lst.append(4)        # [3,1,2,4]
lst.insert(0, 0)     # [0,3,1,2,4]
lst.remove(1)        # 删第一个匹配值
lst.pop()            # 删并返回末尾
lst.pop(0)           # 删并返回下标0
lst.sort()           # 原地排序
sorted(lst)          # 返回新排序列表
lst.reverse()        # 原地反转
lst[1:3]             # 切片 [1,2](左闭右开)
lst[::-1]            # 反转副本
[0]*5                # [0,0,0,0,0]
lst.index(2)         # 值2的下标
2 in lst             # True
sum(lst), max(lst), min(lst)

元组 tuple(不可变)

python
t = (1, 2, 3)
a, b, c = t          # 解包

字典 dict(键值对)

python
d = {"a": 1, "b": 2}
d["c"] = 3           # 新增/修改
d.get("x", 0)        # 取不到返回默认0(不报错)
d["a"]               # 1(键不存在会 KeyError)
d.keys()             # 键视图
d.values()           # 值视图
d.items()            # (键,值) 对
for k, v in d.items(): pass
d.pop("a")           # 删并返回值
"a" in d             # 键是否存在
d.setdefault("k", []) # 有则取、无则设默认并返回

集合 set(去重,无序)

python
s = {1, 2, 3}
s.add(4)             # 添加
s.remove(4)          # 删除(不存在报错)
s.discard(99)        # 删除(不存在不报错)
set([1,1,2,2])       # {1,2}  去重
s1 & s2              # 交集
s1 | s2              # 并集
s1 - s2              # 差集

推导式(Python 精髓)

python
[i*2 for i in range(5)]            # [0,2,4,6,8]
[i for i in range(10) if i%2==0]   # 带条件 [0,2,4,6,8]
{i: i**2 for i in range(3)}        # 字典推导 {0:0,1:1,2:4}
{i for i in [1,1,2]}               # 集合推导 {1,2}
(x for x in range(3))              # 生成器(惰性,省内存)

常用技巧

  • range(start, stop, step)range(5)→0..4,range(2,8,2)→2,4,6
  • 切片 lst[start:stop:step],负索引 lst[-1] 取末尾
  • 三目:"yes" if x > 0 else "no"
  • 多值比较:1 < x < 10
  • in 判断成员;is 判断同一对象;== 判断值相等
  • 字符串不可变:s[0]='x' 会报错,要 s = 'x' + s[1:]

常见坑

  1. d["key"] 键不存在 → KeyError:不确定时用 d.get("key", 默认值)
  2. lst.sort()sorted(lst) 混淆:前者原地改、返回 None;后者返回新列表
  3. 可变默认参数def f(x, arr=[])arr 跨调用共享——用 arr=None + 内部建
  4. == vs is[1,2] == [1,2] 是 True(值),is 比较身份
  5. 切片是左闭右开lst[0:3] 取下标 0,1,2 不含 3

一句话总结

四大容器一句话记牢:list 有序可变、tuple 不可变、dict 键值对、set 去重;最常踩的坑是 d["k"] 键不存在直接 KeyError(改用 d.get(k, 默认值))和 lst.sort() 原地改、sorted(lst) 返回新表。

相关概念