七、赋值运算符学习笔记

七、赋值运算符学习笔记

2026-02-19
Python基础
type
Post
status
Published
date
Feb 19, 2026
slug
python-assignment-operators-notes-7
summary
赋值运算符看起来是最简单的,但里面的门道不少!特别是复合赋值运算符(+=、-=这些),刚开始我总搞不清它们和普通的 a = a + b 有什么区别。还有链式赋值和多重赋值,让我感受到了 Python 的简洁之美。最惊喜的是 x, y = y, x 这种交换变量的写法,太优雅了!也是在后面学到解包时才知道的.
tags
Python数据的存储与运算
category
Python基础
icon
password
💡 学习感悟:赋值运算符看起来是最简单的,但里面的门道不少!特别是复合赋值运算符(+=、-=这些),刚开始我总搞不清它们和普通的 a = a + b 有什么区别。还有链式赋值和多重赋值,让我感受到了 Python 的简洁之美。最惊喜的是 x, y = y, x 这种交换变量的写法,太优雅了!也是在后面学到解包时才知道的.

1. 什么是赋值运算符?

我的理解

程序的核心是处理数据,而数据需要存储在变量中。赋值运算符的作用就是将数据存放到变量中,或者修改变量中已有的数据。
📝 我的理解:赋值运算符就像是贴标签——把数据贴上变量名这个标签,以后就可以通过标签找到数据。age = 18 不是说"age 等于 18",而是说"把 18 存到 age 这个盒子里"。

2. 基本赋值运算符 =

2.1 基本用法

2.2 赋值的本质

赋值是什么意思?

在 Python 中,赋值 = 不是数学中的"等于",而是"将右边的值存储到左边的变量中"。
📝 我的理解a = a + 5 在数学上是矛盾的(a 不可能等于 a+5),但在编程里完全合理!意思是"把 a 原来的值加 5,然后把结果存回 a"。就像是往盒子里放新东西,把原来的替换掉

3. 复合赋值运算符

为什么需要复合赋值运算符?

当需要对变量自身进行运算时,复合赋值运算符可以让代码更简洁、更易读。

3.1 算术复合赋值运算符

运算符
等价写法
描述
示例
+=
a = a + b
加后赋值
a += 5
-=
a = a - b
减后赋值
a -= 3
*=
a = a * b
乘后赋值
a *= 2
/=
a = a / b
除后赋值
a /= 4
//=
a = a // b
整除后赋值
a //= 2
%=
a = a % b
取余后赋值
a %= 3
**=
a = a ** b
幂运算后赋值
a **= 2
📝 我的理解:复合赋值运算符就像是快捷方式——a += 5a = a + 5 少写了一个 a,看起来更简洁。而且意思很明确:"在 a 的基础上加 5"。

3.2 实际应用场景

场景 1:累加求和

场景 2:计数器

场景 3:累乘

场景 4:字符串拼接

📝 我的理解+= 对数字是加法,对字符串是拼接,这个特性很灵活!在循环中累加求和、计数、拼接字符串时,复合赋值运算符特别方便。

4. 特殊赋值方式

4.1 链式赋值

什么是链式赋值?

同时给多个变量赋相同的值。

实际应用

📝 我的理解:链式赋值就像是批量贴标签——把同一个数据贴上多个标签。适合初始化多个变量为相同值的场景,比如游戏坐标初始化。

4.2 多重赋值(元组解包)

什么是多重赋值?

同时给多个变量赋不同的值。
📝 我的理解:多重赋值是 Python 的优雅特性!特别是 x, y = y, x 这种交换变量的写法,不需要临时变量,一行搞定。这在其他语言里要写三行呢!

实际应用

4.3 扩展解包(Python 3+)

📝 我的理解:扩展解包就像是分拣包裹——把列表里的元素分拣到不同的变量里。*rest 会捕获剩下的所有元素,_ 用来占位表示"我不关心这个值"。这在处理函数返回值时特别有用。

5. 赋值运算符的优先级

赋值运算符的优先级如何?

赋值运算符的优先级最低,在表达式中最后执行。
📝 我的理解:赋值运算符就像是最后一步——等所有计算都完成了,才把结果存到变量里。所以 a = 10 + 5 * 2 会先算 10 + 5 * 2,再把结果 20 赋给 a。

6. 实际应用案例

6.1 成绩统计

📝 我的理解:成绩统计用到了多个复合赋值运算符。total += score 累加分数,count += 1 计数,同时用比较运算符更新最大最小值。这种统计模式很常用。

6.2 数字累加器

📝 我的理解:这个例子展示了 +=*= 的用法。累加从 0 开始,累乘从 1 开始(因为 1 是乘法的单位元)。这种累加累乘的模式在数学计算中很常见。

6.3 累加求和与平均值

📝 我的理解:这个例子展示了如何在循环中使用复合赋值运算符进行累加和计数。total += num 累加输入的数字,count += 1 记录输入的次数。最后计算平均值。

7. 遇到的问题和解决

7.1 混淆赋值和比较

⚠️ 踩坑记录:这个错误我犯了无数次!= 是赋值,== 才是比较。现在我会在心里默念:"等于等于才是比较",这样就不容易错了。

7.2 未初始化就使用

⚠️ 踩坑记录:刚开始学的时候,我经常在循环里直接用变量,结果报错 NameError。现在我知道了,使用变量前一定要先赋值初始化,特别是做累加、计数的时候,初始值通常是 0。

7.3 复合赋值的返回值

⚠️ 踩坑记录:我曾经想把 a += 5 的结果直接赋给另一个变量,结果报错了。原来赋值语句本身没有返回值(除了海象运算符 :=)。要分开写:先 a += 5,再 b = a

7.4 可变对象的赋值

⚠️ 踩坑记录:这个坑让我调试了好久!list2 = list1 并没有创建新列表,而是让 list2 也指向 list1 指向的那个列表。修改 list2 就是修改 list1!如果需要复制,要用 copy() 或切片 [:]

8. 核心知识点整理

8.1 赋值运算符速查表

运算符
含义
示例
等价于
=
基本赋值
a = 10
-
+=
加后赋值
a += 5
a = a + 5
-=
减后赋值
a -= 3
a = a - 3
*=
乘后赋值
a *= 2
a = a * 2
/=
除后赋值
a /= 4
a = a / 4
//=
整除后赋值
a //= 2
a = a // 2
%=
取余后赋值
a %= 3
a = a % 3
**=
幂运算后赋值
a **= 2
a = a ** 2

8.2 特殊赋值方式

  • 链式赋值a = b = c = 10(多个变量赋相同值)
  • 多重赋值a, b, c = 1, 2, 3(多个变量赋不同值)
  • 交换变量x, y = y, x(Python 特色,无需临时变量)
  • 扩展解包first, *rest = [1, 2, 3, 4, 5](捕获剩余元素)

8.3 常见错误总结

错误类型
错误示例
正确写法
赋值当比较
if a = 10
if a == 10
未初始化使用
print(total)
total = 0; print(total)
可变对象直接赋值
list2 = list1
list2 = list1.copy()
复合赋值当表达式
b = (a += 5)
a += 5; b = a

8.4 需要注意的

  • 累加、计数、拼接字符串时用复合赋值运算符
  • 交换变量用 x, y = y, x 优雅永不过时,哈哈.
  • 函数返回多个值时用多重赋值接收
  • 可变对象赋值时注意是引用还是复制
 
推荐云服务

雨云 - 云服务器首选

稳定 · 高速 · 性价比超高

使用优惠码立享折扣,开启你的云端之旅~

一元试用秒级开通24h在线客服

优惠码

zqf
立即访问
Loading...
灵心小窝

灵心小窝

这里不是一个喧闹的地方,只是用来存放一些还不想遗忘的东西。

声明 © 2026 早清风
加载中...