今日目标
建立学习数据结构与算法必须用到的基础观念:Python 程序如何运行、变量和对象的关系、常见内置类型、运算符和优先级。
Python 解释器
Python 是解释型语言。你写的 .py 文件由解释器逐条执行。
两种使用方式:
- 交互模式:输入一行,执行一行
- 脚本模式:
python demo.py一次运行整个文件
核心语法速览
python
print("hello") # 输出
name = input("你叫什么?") # 输入
# 这是注释缩进是语法,不是装饰:
python
if score >= 60:
print("pass") # 属于 if 分支
else:
print("fail") # 属于 else 分支Python 对象
几乎所有数据都是对象。变量名是引用对象的标识符,不是容器。
python
x = 10 # x 引用整数对象 10
name = "Alice" # name 引用字符串对象
data = [1, 2, 3] # data 引用列表对象关键概念:别名
python
a = [1, 2, 3]
b = a # a 和 b 引用同一个列表
b.append(4)
print(a) # [1, 2, 3, 4] — 同一个对象被修改了但要区分两种操作:
| 操作 | 效果 |
|---|---|
b.append(4) | 修改对象(a 也能看到) |
a = [9, 9, 9] | 改引用(b 还指向原对象) |
is vs ==
python
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True — 值相等
print(a is b) # False — 不同对象内置类型
不可变类型
bool · int · float · str · tuple · frozenset
python
x = 10
x = x + 1 # 不是修改 10,而是创建新对象 11可变类型
list · set · dict
python
data = [1, 2, 3]
data.append(4) # 直接修改原对象| 类型 | 用途 |
|---|---|
list | 有顺序、可修改 |
tuple | 有顺序、不可修改 |
set | 无重复元素集合 |
dict | 键值映射 |
str | 字符串,不可修改 |
运算符
算术
+ - * / //(整除) %(取余) **(幂)
python
7 // 3 # 2 — 整除
7 % 3 # 1 — 取余
2 ** 3 # 8 — 幂% 的经典用法:判断奇偶 k % 2 == 0
逻辑:not and or
短路特性:and/or 只看够判断的条件,不浪费计算:
python
x = 0
if x != 0 and 10 / x > 1: # 不会除零,因为 x != 0 已经是 False
print("ok")比较:< <= > >= == !=
今日要点:Python 中变量是引用标签不是盒子,修改对象和改引用是两码事,这一点贯穿整个数据结构学习。