第 10 课一行读多个数:split 登场
PYTHON 基础语法 · 第 10 / 11 课

🌅 一行读多个数:split 登场

切开一行数据 —— 解锁多值输入的新技能
🎯 会用 input().split() 把一行切成多个数🎯 会背 map(int, input().split()) 标准句式🎯 会给多个变量一次赋值
🕐 数学储备:四则运算与括号(四下)
课前回顾

🔄上节课我们学了啥?

① and/or 组合条件;② elif 链从高到低。抢答:(y%4==0 and y%100!=0) or y%400==0 判断的是什么?

📖 知识讲解
🔪

split:切香肠魔法

输入一行 “10 20”,split 按空格把它切开,变成两段:

“10 20”
➡️ split() 切 ➡️
“10”
“20”
一刀下去,空格两边各一段 —— 就像切香肠!
💡 小贴士:切开后的每一段还是文字!要算数还得 int() —— 于是有了下面的终极句式。
📖 知识讲解 · 代码
🔪

split:切香肠魔法 · 代码

split 初体验
a, b = input().split()   # 一行读两个文字段
print(a, b)
💡 小贴士:切开后的每一段还是文字!要算数还得 int() —— 于是有了下面的终极句式。
📖 知识讲解
📜

标准句式:map(int, input().split())

读一行好几个整数,背下这个万能句式:

input() 读一行
➡️
.split() 切开
➡️
map(int, …) 全变数字
三个零件像火车车厢一样连起来
💡 小贴士:左边变量个数要和右边数的个数一样多!先背下来用熟,原理以后慢慢懂。
📖 知识讲解 · 代码
📜

标准句式:map(int, input().split()) · 代码

万能句式
a, b = map(int, input().split())      # 读 2 个整数
c, d, e = map(int, input().split())    # 读 3 个整数
f, g, h, i = map(int, input().split()) # 读 4 个整数
💡 小贴士:左边变量个数要和右边数的个数一样多!先背下来用熟,原理以后慢慢懂。
📖 知识讲解
🃏

一次发牌:多变量赋值

一行给好几个变量赋值,像发扑克牌:

💡 小贴士:还记得第 2 课的交换魔法 a, b = b, a 吗?它就是多变量赋值的特例!
多变量赋值
a, b, c = 1, 2, 3          # a=1, b=2, c=3
print(a + b + c)           # 6
📖 知识讲解
🧩

常见输入格式对号入座

做题先看“输入格式”,对号入座选句式:

题目这样说你就这样写
输入一个整数n = int(input())
输入 a b(一行两个)a, b = map(int, input().split())
输入 a b c(一行三个)a, b, c = map(int, input().split())
第一行…第二行…写两行 int(input()),各读各的
💡 小贴士:慢就是快:先把输入格式抄下来再对号入座,正确率翻倍!
🎯 例题精讲 · 读题
P17输出第二个整数题库 P17
输入一行三个整数(如 123 456 789),只输出第二个。split 的第一站!

📥 输入:一行三个整数,空格隔开 📤 输出:输出第二个整数

📥 输入样例
123 456 789
📤 输出样例
456
🎯 例题精讲 · 解答
P17输出第二个整数 · 解题

🪜 解题三步走

map(int, input().split()) 一行读三个,装进 a, b, c
第二个就是中间那个变量 b
print(b)
⚠️ 易错点:左边三个变量、右边三个数,数量要对齐;别把顺序记错(b 是第二个)。
参考代码
a, b, c = map(int, input().split())
print(b)
🎯 例题精讲 · 读题
P26整数的和题库 P26
输入一行三个整数 a b c,输出它们的和。

📥 输入:一行三个整数 📤 输出:输出 a+b+c

📥 输入样例
1 2 3
📤 输出样例
6
🎯 例题精讲 · 解答
P26整数的和 · 解题

🪜 解题三步走

一行读三个:a, b, c = map(int, input().split())
求和:a + b + c
输出结果
⚠️ 易错点:split 后忘了 int 会怎样?试试看 —— 文字相加会变成 “123” 拼接!
参考代码
a, b, c = map(int, input().split())
print(a + b + c)
🎯 例题精讲 · 读题
P21比赛成绩题库 P21
CSP 复赛有 4 道题!输入一行四个得分(每题满分 100),输出总成绩。
全班同学在这题上“翻车”最多(通过率 3/17),今天我们一起拿下它!

📥 输入:一行四个不大于 100 的非负整数 📤 输出:输出总成绩

📥 输入样例
100 75 25 0
📤 输出样例
200
🎯 例题精讲 · 解答
P21比赛成绩 · 解题

🪜 解题三步走

一行读四个:a, b, c, d = map(int, input().split())
总分 = a+b+c+d
输出
⚠️ 易错点:① 左边变量名要和数的个数一致(4 个);② 别忘了 map int,否则 + 变拼接;③ 输入四个数之间只有一个空格,split 自动处理!
参考代码
a, b, c, d = map(int, input().split())
print(a + b + c + d)
🎯 例题精讲 · 读题
P39带余除法题库 P39
输入被除数和除数(一行两个,如 10 3),输出商和余数(3 1)。第 4 课的 // 和 % 强势回归!

📥 输入:一行两个整数:被除数 除数 📤 输出:一行两个整数:商 余数

📥 输入样例
10 3
📤 输出样例
3 1
🎯 例题精讲 · 解答
P39带余除法 · 解题

🪜 解题三步走

一行读两个:a, b = map(int, input().split())
商 = a // b,余数 = a % b
两个值用逗号一起输出
⚠️ 易错点:print(a//b, a%b) 输出 “3 1” 自动带空格,正好符合题目格式!
参考代码
a, b = map(int, input().split())
print(a // b, a % b)
✏️ 随堂练习
✏️ P22 捡石头

幼儿园小朋友捡到 3 块石头,想再捡一块让 4 块共重 20 斤。输入 3 块的重量(一行三个),求第 4 块多重。

💡 提示(先自己想,再点开)
20 - a - b - c 就是答案!先 map 读三个。
🔓 点开看参考答案
a, b, c = map(int, input().split())
print(20 - a - b - c)
✏️ 随堂练习
✏️ P23 套盒子🕐 乘加混合·四则运算

有 a 个大盒子,每个大盒里有 b 个中盒,每个中盒里有 c 个小盒。一行输入 a b c,输出盒子总数。

💡 提示(先自己想,再点开)
总数 = 大盒 a 个 + 中盒 a×b 个 + 小盒 a×b×c 个。像俄罗斯套娃层层展开!
🔓 点开看参考答案
a, b, c = map(int, input().split())
print(a + a * b + a * b * c)
🕵️ 小侦探找错

🕵️ 小侦探找错

输入一行“5 8”,想输出较大数,哪句是对的?
a, b = map(int, input().split()) 然后 print(max(a, b))
a, b = input().split() 然后 print(max(a, b))
a = int(input()) 然后 print(max(a, b))
a, b = map(int, input.split()) 然后 print(a+b)
🌟 课堂小结
🎵 split 切香肠,map 变数字;
一行读几个,左边几个盒(map(int, input().split()) —— 背下来,一路用到高中!)
  • input().split() 把一行按空格切开
  • map(int, …) 把每段变成整数
  • 左边变量数 = 数的个数
  • a, b = b, a 交换就是多变量赋值
  • 读题先抄输入格式,再对号入座
📚 课后作业 · 到 CodingMAX 提交
难度题号题目考点提示
必做P17输出第二个整数split 初体验
必做P26整数的和三数求和
必做P21比赛成绩一行四数·热题
必做P39带余除法// % 回归
巩固P22捡石头20-a-b-c
巩固P23套盒子a+ab+abc
挑战P57计算(a+b)×c括号运算
挑战P64A×B问题大数魔法
挑战P249比分数两人分差(大减小)

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

🥚 编程彩蛋

🥚 一行代码发扑克牌 🃏

a, b, c, d = map(int, input().split()) 就像把一行数字“发”到四个变量手里。
C++ 同学要写一堆代码才能读这一行 —— Python 一句搞定,这就是我们选择 Python 的理由之一!