01.1
设计哲学
Python 之禅(import this)概括其理念:优雅、明确、简单。缩进决定代码块,强制可读性。
动态但可强类型
Python 默认动态类型,但通过类型注解(第8章)可获得近乎静态的安全,二者可渐进结合。
01.2
变量与类型
变量无需声明类型,赋值即创建;int/float/str/bool/None 是最常用基础类型。
count = 0 # int
price = 9.9 # float
name = "林可" # str
active = True # bool
x = None # 空值
print(f"{name} 买了 {count} 件,单价 {price}") # f-string01.3
核心数据结构
list(有序可变)、tuple(不可变)、dict(键值)、set(去重)各自适合不同场景。
| 结构 | 可变性 | 典型用途 |
|---|---|---|
| list | 可变 | 有序集合、栈/队列 |
| tuple | 不可变 | 记录、返回值、字典键 |
| dict | 可变 | 映射、配置、JSON |
| set | 可变 | 去重、集合运算 |
d = {"name": "林可", "age": 28}
print(d.get("age", 0)) # 提供默认值,避免 KeyError01.4
控制流
if/for/while 用缩进表达块;for 直接迭代对象;range 生成序列。
for i in range(3):
if i % 2 == 0:
print(f"偶数 {i}")
else:
print("奇数")
# match(Python 3.10+)结构化模式匹配
match status:
case 200: print("ok")
case 404: print("缺失")01.5
推导式
列表/字典/集合推导式用声明式语法生成集合,比手工循环更简洁高效。
squares = [x*x for x in range(10) if x % 2 == 0]
lookup = {u.id: u for u in users}
evens = {x for x in range(10) if x % 2 == 0}01.6
函数初探
用 def 定义函数,支持默认参数、可变参数与解包,函数是一等对象。
def greet(name, greeting="你好"):
return f"{greeting}, {name}"
print(greet("林可")) # 使用默认参数01.7
字符串与 IO
f-string 是首选格式化方式;文件用 with 上下文自动关闭。
with open("data.txt", encoding="utf-8") as f:
for line in f:
print(line.strip())01.8
常见陷阱
多为别名(a = b)导致两变量指向同一对象。需要独立副本时用 copy() 或 list(b)。
默认参数在函数定义时求值一次,可变默认(如 [])会在多次调用间共享。用 None 作默认并在函数内初始化。
01.9