Python 赋值运算符详解 | 从 = 到 +=,一张记账单讲清复合赋值

【Python案例】记账小本本 ------ 赋值运算符与复合赋值

案例需求

小丽的钱包里一开始有 200 元。接下来几天,她做了这么几件事:

  1. 买早餐花了 15 元;
  2. 收到一个 50 元红包;
  3. 买了 3 份 水果,每份 12 元;
  4. 月底钱包余额 翻了一倍;
  5. 最后把这笔钱平均分成 7 天的生活费。

请写一个程序,把每一步之后的余额都打印出来。

案例实现

第 1 步:先记下初始余额 200 元。

python 复制代码
money = 200
print("初始余额:", money)

第 2 步 :花钱用 -=,进账用 +=。money -= 15 的意思是:先把 money 里的钱减去 15,再把结果存回 money。

python 复制代码
money -= 15
print("买早餐花 15 元后:", money)

money += 50
print("收到红包 50 元后:", money)

第 3 步 :-= 右边也可以是一个算式。Python 会先把 12 * 3 算出来,再从 money 里减掉。

python 复制代码
money -= 12 * 3
print("买 3 份水果(每份 12 元)后:", money)

第 4 步 :翻倍用 *=,平均分摊用 //=(整除赋值,只保留整数部分)。

python 复制代码
money *= 2
print("余额翻倍后:", money)

money //= 7
print("平均分成 7 天,每天可用:", money)

完整代码:

python 复制代码
money = 200
print("初始余额:", money)

money -= 15
print("买早餐花 15 元后:", money)

money += 50
print("收到红包 50 元后:", money)

money -= 12 * 3
print("买 3 份水果(每份 12 元)后:", money)

money *= 2
print("余额翻倍后:", money)

money //= 7
print("平均分成 7 天,每天可用:", money)

运行结果:

复制代码
初始余额: 200
买早餐花 15 元后: 185
收到红包 50 元后: 235
买 3 份水果(每份 12 元)后: 199
余额翻倍后: 398
平均分成 7 天,每天可用: 56

案例解析

  • = 是赋值,不是"相等"判断 :money = 200 的意思是"把 200 存进变量 money 里"。判断相等要用 ==,两者别搞混。
  • 复合赋值运算符 :a += b 就是 a = a + b 的简写;-=、*=、/=、//=、%=、**= 也一样,都是先把右边的值算出来,再存回左边那个变量。
  • 右边可以先算好 :money -= 12 * 3 会先算出 12 * 3 是 36,再执行 money -= 36,写起来更简洁。
  • 变量得先有值 :要先写 money = 200,后面才能写 money -= 15。要是没赋值就直接写 money -= 15,Python 会报 NameError------它不知道 money 原来是多少。
  • //= 会丢掉小数 :398 // 7 得 56(因为 7 × 56 = 392,还剩下 6 元),不是 56.857...。算平均值的时候得先想清楚:这里要的是整数还是小数。

相关练习

一、题目

1.(选择题) 先执行 x = 5,再执行 x += 3,此时 x 的值是(  )。

  • A. 3
  • B. 5
  • C. 8
  • D. 53

2.(填空题) 已知 n = 10,执行 n *= 2 后 n 的值是 ________;再执行 n //= 4 后 n 的值是 ________。

3.(判断题) 在 Python 中,= 和 == 的作用完全相同,可以互换使用。(  )

4.(简答题) 已知 count = 7,请只用一行复合赋值语句,把 count 变成 70(不能直接写 count = 70)。

二、参考答案与解析

1. 答案:C

解析:x += 3 就是 x = x + 3,原来的 5 加 3 得 8,再存回 x。

2. 答案:20;5

解析:n *= 2 让 n 从 10 变成 20;接着 n //= 4,20 除以 4 正好整除得 5,所以 n 变成 5。

3. 答案:错误(×)

解析:= 是赋值运算符 ,把右边的值存进左边的变量;== 是比较运算符 ,判断两边是否相等,结果只有 True 或 False。x = 5 和 x == 5 完全是两回事。

4. 答案:count *= 10

解析:count *= 10 就是 count = count * 10,7 乘 10 得 70。

声明:本文部分内容由人工智能辅助生成。

相关推荐
布莱克6051 小时前
QtWidgets 与 QML:两大 UI 开发框架的全面对比
开发语言·c++·qt·ui·架构
Maya动画技术1 小时前
pptx批量转png图片工具
python
张伯毅1 小时前
External Shuffle Service(spark3_shuffle):原理、配置与排障
java·开发语言·spark·yarn
geovindu1 小时前
rust: Template Method Pattern
开发语言·后端·设计模式·rust·行为模式·模板方法模
MoRanzhi12032 小时前
第4篇 · 使用 PyQt5 实现 2048:平滑动画与性能优化
python·性能优化·qtimer·pyqt5·qpainter·gui动画·2048游戏
海姐软件测试2 小时前
Python 自动化与 AI 结合:基于 Jenkins 的回归验证实践
人工智能·python·自动化
Haoyunyi2 小时前
2026年做期货量化,和三年前已经不是一回事了
大数据·人工智能·python·金融·区块链
再__努力1点2 小时前
一个开源的AI边缘计算平台:一个项目把算能、瑞芯微、x86的NPU全打通了
人工智能·python·课程设计·媒体·流媒体