第 4 课分蛋糕的智慧:// 和 %
PYTHON 基础语法 · 第 4 / 11 课

🌊 分蛋糕的智慧:// 和 %

整除、余数、拆数字的秘密
🎯 理解 // 整除和 % 取余🎯 会用 // 和 % 拆出十位、个位🎯 学会 :02d 给数字补零🎯 会算时分秒换算
🕐 数学储备:除法与余数(四上)、万以内数位(三上)、时分秒(三上)
课前回顾

🔄上节课我们学了啥?

① input 读到文字,算数先 int();② f-string 造句。抢答:n = int(input()) 输入 7,print(n / 2) 输出多少?(答案:3.5 —— 今天我们学“不要小数”的除法!)

📖 知识讲解
🍰

// 分整份,% 看剩下

// 是整除(分到几个完整的),% 是取余数(剩下几个):

🍰🍰🍰🍰🍰🍰🍰
7 块蛋糕
➡️
7 // 2 = 3
每人 3 块
➡️
🍰
7 % 2 = 1
剩 1 块
一除一余,把 7 块蛋糕分得明明白白
💡 小贴士:除号有两个:/ 是普通除(会出小数),// 是整除(只要整数部分)。今天主角是 // 和 %。
📖 知识讲解 · 代码
🍰

// 分整份,% 看剩下 · 代码

整除和余数
print(10 // 3)   # 3  —— 10 里面有三个 3
print(10 % 3)    # 1  —— 分完整份还剩 1
💡 小贴士:除号有两个:/ 是普通除(会出小数),// 是整除(只要整数部分)。今天主角是 // 和 %。
📖 知识讲解
🔢

拆位魔术:把数字拆开

三位数 368 怎么拆成 3、6、8?用 // 和 % 组合“刀法”:

3
百位
6
十位
8
个位
368 ÷ 10 = 36 余 8 —— 十位和个位就分开了!
刀法算式结果意思
个位368 % 108除以 10 的余数
去掉个位368 // 1036整除 10
十位368 // 10 % 106先变 36,再取个位
百位368 // 1003整除 100
💡 小贴士:两位数更简单:十位 n // 10,个位 n % 10。
📖 知识讲解 · 代码
🔢

拆位魔术:把数字拆开 · 代码

三位数拆位
n = int(input())   # 输入 368
b = n // 100       # 百位 3
s = n // 10 % 10   # 十位 6
g = n % 10         # 个位 8
print(b, s, g)
💡 小贴士:两位数更简单:十位 n // 10,个位 n % 10。
📖 知识讲解
🕐

补零魔法 :02d

电子表上 1 秒显示成 01,9 分显示成 09 —— 不足两位要补零。f-string 里写 :02d:

💡 小贴士:02d 的意思是“至少 2 位,不够前面补 0”。写电子表题必用!
补零
m = 5
print(f"{m:02d} 分")   # 输出:05 分
📖 知识讲解
⏰

秒数变时刻

3701 秒是几时几分几秒?像剥洋葱一样,一层层剥:

3701 秒
➡️ ÷3600
1 小时
➡️ 剩 101÷60
1 分
➡️
41 秒
01:01:41 —— 三年级“时、分、秒”的编程版
💡 小贴士:1 时 = 3600 秒,1 分 = 60 秒。先用 // 拿走“大单位”,剩下的继续分!
📖 知识讲解 · 代码
⏰

秒数变时刻 · 代码

电子表
t = int(input())
shi = t // 3600
fen = t % 3600 // 60
miao = t % 60
print(f"{shi:02d}:{fen:02d}:{miao:02d}")
💡 小贴士:1 时 = 3600 秒,1 分 = 60 秒。先用 // 拿走“大单位”,剩下的继续分!
🎯 例题精讲 · 读题
P33人民币支付题库 P33
拿 735 元买东西,要用 100 元、50 元、20 元、10 元、5 元、1 元付款,尽量用大面额,每种面额各用几张?
生活里天天用的“找钱”智慧!🕐 人民币·一年级,除法·四上

📥 输入:一个小于 1000 的正整数(金额) 📤 输出:从大到小输出 6 行:100/50/20/10/5/1 元的张数

📥 输入样例
735
📤 输出样例
7
0
0
1
1
0
🎯 例题精讲 · 解答
P33人民币支付 · 解题

🪜 解题三步走

735 元里有几个 100?735 // 100 = 7 张,付走 700
剩下 735 % 100 = 35 元 → 35 // 50 = 0 张 50 元
继续用 // 和 % 一路拆下去:20、10、5、1
每算一行输出一行,共 6 行
⚠️ 易错点:每算完一种面额,记得用 % 把“付过的钱”扣掉再算下一种!
参考代码
n = int(input())
print(n // 100)          # 100 元张数
n = n % 100              # 剩下的钱
print(n // 50)           # 50 元
n = n % 50
print(n // 20)           # 20 元
n = n % 20
print(n // 10)           # 10 元
n = n % 10
print(n // 5)            # 5 元
print(n % 5)             # 最后剩的就是 1 元张数
🎯 例题精讲 · 读题
P36尼克与强盗题库 P36
强盗记下了门牌号 62 号;聪明的尼克把十位和个位对调变成 26 号躲过一劫!
输入一个两位数,编程完成“对调”。🕐 数位·三上

📥 输入:一个两位数 📤 输出:输出十位个位对调后的数

📥 输入样例
67
📤 输出样例
76
🎯 例题精讲 · 解答
P36尼克与强盗 · 解题

🪜 解题三步走

拆位:十位 = n // 10,个位 = n % 10
重装:新的两位数 = 个位 × 10 + 十位
输出结果
⚠️ 易错点:组装时别把顺序弄反:个位跑到十位,所以是 ge * 10 + shi。
参考代码
n = int(input())
shi = n // 10
ge = n % 10
print(ge * 10 + shi)
🎯 例题精讲 · 读题
P53数字对调题库 P53
升级到三位数!把 123 的百位和个位对调变成 321。

📥 输入:一个三位数 📤 输出:输出对调后的数

📥 输入样例
123
📤 输出样例
321
🎯 例题精讲 · 解答
P53数字对调 · 解题

🪜 解题三步走

拆出三位:百 b = n//100、十 s = n//10%10、个 g = n%10
重装:个位去百位(g×100),十位不动(s×10),百位去个位(b)
输出 g*100 + s*10 + b
⚠️ 易错点:十位是 n // 10 % 10(两刀),新手常漏掉第二刀。
参考代码
n = int(input())
b = n // 100
s = n // 10 % 10
g = n % 10
print(g * 100 + s * 10 + b)
✏️ 随堂练习
✏️ P71 反向输出一个三位数

输入一个三位数,把它整个倒过来输出。注意:输入 100 要输出 001(开头的 0 也要有!)。

💡 提示(先自己想,再点开)
倒过来还有前导 0,说明答案是“文字” —— 拆位后用 str() 拼接输出!
🔓 点开看参考答案
n = int(input())
b = n // 100
s = n // 10 % 10
g = n % 10
print(str(g) + str(s) + str(b))
✏️ 随堂练习
✏️ P753 两位数的个位和十位的和

输入两位数 n,输出个位加十位的和。如 24 → 2+4=6。

💡 提示(先自己想,再点开)
n // 10 加 n % 10,一行搞定!
🔓 点开看参考答案
n = int(input())
print(n // 10 + n % 10)
🕵️ 小侦探找错

🕵️ 小侦探找错

n = 456,那么 n // 10 % 10 等于几?
5
4
56
6
🌟 课堂小结
🎵 整除 // 拿整份,取余 % 看剩余;
十位除十再余十,补零要用冒号 d(拆位口诀://10 去个位,%10 取个位)
  • // 整除只要整数部分,% 取余数
  • 拆位:个 n%10、十 n//10%10、百 n//100
  • 重组:位数 × 权重再相加(如 ge*10+shi)
  • f 的 02d 写法补零
  • 时分秒换算://3600、%3600//60、%60
📚 课后作业 · 到 CodingMAX 提交
难度题号题目考点提示
必做P33人民币支付// % 连环拆面额
必做P36尼克与强盗两位数对调
必做P53数字对调三位数对调
巩固P753两位数的个位和十位的和拆位求和
挑战P67电子表秒→时:分:秒 + 补零
挑战P136后天星期(D+1)%7+1 模运算
挑战P765数字解密千百颠倒+十个颠倒(藏宝图故事)
挑战P2036数字拆解与输出(真题)拆位+和+积,注意冒号后空格

✅ 按题号到题库提交,提交前先对照样例自己测一遍!

🥚 编程彩蛋

🥚 电话号码里的秘密 🔍

你的电话号码后四位是 5820 吗?5820 // 10 = 582、5820 % 10 = 0…… 用今天的“刀法”可以把任何数字切成想要的形状。回家用爸妈手机号后 4 位玩拆位游戏!