Day 01:Python 对象与基础表达

#Python#DSA#学习笔记
约 2 分钟

今日目标

建立学习数据结构与算法必须用到的基础观念: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 中变量是引用标签不是盒子,修改对象和改引用是两码事,这一点贯穿整个数据结构学习