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

案例需求
小丽的钱包里一开始有 200 元。接下来几天,她做了这么几件事:
- 买早餐花了 15 元;
- 收到一个 50 元红包;
- 买了 3 份 水果,每份 12 元;
- 月底钱包余额 翻了一倍;
- 最后把这笔钱平均分成 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。
声明:本文部分内容由人工智能辅助生成。