第 11 课综合闯关与结课小测
PYTHON 基础语法 · 第 11 / 11 课

🌈 综合闯关与结课小测

三大法宝合体 —— max / min / sorted 惊艳全场
🎯 综合运用分支、逻辑运算、多值输入🎯 认识 max / min / sorted 三兄弟🎯 掌握解题四步法🎯 迎接结课小测
🕐 数学储备:三角形两边之和(四下)、鸡兔同笼(四下)、四则运算(四下)
课前回顾

🔄上节课我们学了啥?

map(int, input().split()) 万能句式背熟了吗?抢答:一行读三个数分别叫 x、y、z,怎么写?

📖 知识讲解
🥇

三兄弟:max / min / sorted

三个数谁最大?谁最小?排排队?以前要写一堆 if,现在一行一个:

兄弟本领例子(3, 9, 1)
max找最大max(3, 9, 1) → 9
min找最小min(3, 9, 1) → 1
sorted排排队sorted([3, 9, 1]) → [1, 3, 9]
💡 小贴士:以前 P82/P99/P109 要写嵌套 if 很容易错 —— 现在一行搞定,这就是“降维打击”!
📖 知识讲解 · 代码
🥇

三兄弟:max / min / sorted · 代码

三兄弟
a, b, c = map(int, input().split())
print(max(a, b, c))          # 最大
print(min(a, b, c))          # 最小
print(sorted([a, b, c]))     # 从小到大排队
💡 小贴士:以前 P82/P99/P109 要写嵌套 if 很容易错 —— 现在一行搞定,这就是“降维打击”!
📖 知识讲解
🗺️

解题四步法

什么题都难不倒的万能流程:

① 读题
圈数字
➡️
② 找数量关系
(公式/条件)
➡️
③ 写代码
对号输入句式
➡️
④ 边界测一测
读题 → 找关系 → 写代码 → 测边界,一步一步稳稳的
💡 小贴士:第④步最容易被忘记:拿题目里的最小值、最大值、分界点各测一次!
📖 知识讲解
❌

错题大本营:四大高频错误

错误症状药方
标点用了中文报错 SyntaxError代码全英文标点
忘 int() / map int输出怪文字或拼接要算数先转数字
边界搞错 ≥ / >差一个数就错拿分界点测!
输出格式不符答案对但 WA对照样例逐字检查
💡 小贴士:提交前问自己三句:转换做了吗?边界对吗?格式一样吗?
🎯 例题精讲 · 读题
P135三角形判断题库 P135
输入三条线段的长度(一行三个),判断能否拼成三角形。数学课学过:任意两边之和大于第三边!🕐 三角形两边之和·四下

📥 输入:一行三个正整数 a b c 📤 输出:能构成输出 “yes”,否则 “no”

📥 输入样例
3 4 5
📤 输出样例
yes
📥 输入样例
3 8 5
📤 输出样例
no
🎯 例题精讲 · 解答
P135三角形判断 · 解题

🪜 解题三步走

一行读三个:a, b, c = map(int, input().split())
三角形条件:a+b>c 并且 a+c>b 并且 b+c>a —— 三个 and 连起来
成立 yes,不成立 no
⚠️ 易错点:三个条件缺一不可(and 连三个)!测试 3 8 5:3+5=8 不大于 8 → no。
参考代码
a, b, c = map(int, input().split())
if a + b > c and a + c > b and b + c > a:
    print("yes")
else:
    print("no")
🎯 例题精讲 · 读题
P138简单计算器题库 P138
做一个迷你计算器!输入 “1 2 +” 这样的算式(两个数和一个运算符),输出结果。还要会处理两种报错:除以 0 和不认识的运算符。

📥 输入:一行:数1 数2 运算符(+ - * /) 📤 输出:输出结果或报错信息

📥 输入样例
1 2 +
📤 输出样例
3
🎯 例题精讲 · 解答
P138简单计算器 · 解题

🪜 解题三步走

一行读三个,注意运算符是文字,不能 int:a, b, op = input().split(),再 int(a)、int(b)
用 if-elif 分别处理 + - * /
除法先判 b==0;其他符号走 else 报 Invalid operator!
⚠️ 易错点:① 运算符左右有空格,split 正好切出三段;② 运算符是文字别 int;③ 除零判断要放在 / 分支里面。
参考代码
a, b, op = input().split()
a = int(a)
b = int(b)
if op == "+":
    print(a + b)
elif op == "-":
    print(a - b)
elif op == "*":
    print(a * b)
elif op == "/":
    if b == 0:
        print("Divided by zero!")
    else:
        print(a // b)
else:
    print("Invalid operator!")
🎯 例题精讲 · 读题
P105鸡兔同笼题库 P105
数学广角学过的鸡兔同笼,编程版来了!已知笼里脚的总数 a:问至少几只动物、至多几只动物?(鸡 2 脚、兔 4 脚)🕐 鸡兔同笼·四下数学广角

📥 输入:一个正整数 a(脚的总数) 📤 输出:输出最少数和最多数

📥 输入样例
20
📤 输出样例
5 10
🎯 例题精讲 · 解答
P105鸡兔同笼 · 解题

🪜 解题三步走

脚是奇数 → 无解输出 0 0
想动物最多:全养鸡(2 脚/只)→ a // 2 只
想动物最少:全养兔(4 脚/只)→ 尽量多 4;a÷4 向上取整 (a+3)//4
⚠️ 易错点:20 只脚:最多 10 只(全鸡)✓;最少 5 只(全兔)✓。别忘了奇数脚数的无解情况!
参考代码
a = int(input())
if a % 2 == 1:
    print(0, 0)
else:
    zuiduo = a // 2
    zuishao = (a + 3) // 4
    print(zuishao, zuiduo)
✏️ 随堂练习
✏️ P82 最大数输出

一行输入三个整数,输出最大的那个。

💡 提示(先自己想,再点开)
一行读三个后,print(max(a, b, c)) —— 也可以挑战手写 if 版本,体会“降维打击”!
🔓 点开看参考答案
a, b, c = map(int, input().split())
print(max(a, b, c))
✏️ 随堂练习
✏️ P99 孔融让梨

孔融挑了最小的梨!一行输入三个整数(梨的重量),输出最小的,格式是 min=3。

💡 提示(先自己想,再点开)
min(a, b, c) 取最小,再用 f-string 或 str 拼出 min=? 的格式。
🔓 点开看参考答案
a, b, c = map(int, input().split())
print("min=" + str(min(a, b, c)))
✏️ 随堂练习
✏️ P109 三个数

一行输入三个整数,按从大到小输出(空格隔开)。

💡 提示(先自己想,再点开)
sorted 从小到大排,倒过来输出即可;print 里逗号自动加空格。
🔓 点开看参考答案
a, b, c = map(int, input().split())
s = sorted([a, b, c])
print(s[2], s[1], s[0])
🕵️ 小侦探找错

🕵️ 小侦探找错

结课小测要来了!下面哪种做法最靠谱?
先复习错题大本营,再用四步法做题,最后测边界
不用复习,直接裸考
只做难题,简单题不用管
把代码背下来,不理解也没关系
🌟 课堂小结
🎵 max 取大 min 取小,sorted 排队真轻松;
读题找关系,代码跟上去,边界测一测(恭喜你完成基础语法 11 关 —— 下一站:循环的魔法世界!)
  • max / min / sorted 三兄弟一行解决三数问题
  • 解题四步法:读题→找关系→写代码→测边界
  • 三角形 = 三边条件 and 连用
  • 计算器题:运算符是文字,除零要特判
  • 错题大本营四大错误:标点、转换、边界、格式
📚 课后作业 · 到 CodingMAX 提交
难度题号题目考点提示
必做P135三角形判断and 连用
必做P82最大数输出max()
必做P99孔融让梨min()
必做P109三个数sorted()
巩固P105鸡兔同笼至多至少
挑战P138简单计算器分支大综合
挑战P2057[GESP一级] 去旅行四行输入取最小·真题

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

🥚 编程彩蛋

🥚 下一站:循环的魔法世界 🔁

想打印 100 遍爱心怎么办?写 100 行 print 吗?
print("❤") × 100 行?手会断的!
下一单元的 for 循环 只要 2 行就能做一万遍!配套训练《Python循环结构训练》已经在题库等你 —— 先去把基础语法 11 关的作业全部清零吧,勇士!⚔️