Appearance
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:]
常见坑
d["key"]键不存在 → KeyError:不确定时用d.get("key", 默认值)lst.sort()与sorted(lst)混淆:前者原地改、返回 None;后者返回新列表- 可变默认参数:
def f(x, arr=[])的arr跨调用共享——用arr=None+ 内部建 ==vsis:[1,2] == [1,2]是 True(值),is比较身份- 切片是左闭右开:
lst[0:3]取下标 0,1,2 不含 3
一句话总结
四大容器一句话记牢:list 有序可变、tuple 不可变、dict 键值对、set 去重;最常踩的坑是 d["k"] 键不存在直接 KeyError(改用 d.get(k, 默认值))和 lst.sort() 原地改、sorted(lst) 返回新表。