判断矩形形状并输出面积
输入一个矩形的长和宽,均为整数。判断这个矩形是正方形
还是长方形。如果长和宽相等,那么它是正方形;如果长和宽不
相等,那么它是长方形。然后输出这个矩形的面积以及它是正方
形还是长方形的描述。
示例输入:5 5
示例输出:这是一个正方形,面积是 25。
【一、教学目标】
- 掌握 `input()` 输入与 `split()` 分割用法
- 掌握 `map()` 类型转换
- 理解条件判断 `if-else` 结构
- 掌握 `f-string` 格式化输出
- 培养逻辑思维与编程基础能力
【 二、重难点提示】
| 类型 | 内容 |
|------|------|
| **重点** | 1. 一行读取两个整数的方法<br>2. `if-else` 条件判断实现分支逻辑<br>3. 面积计算与格式化输出 |
| **难点** | 1. `split()` 与 `map()` 的配合理解<br>2. 条件判断的等号 `==` 与赋值 `=` 的区别<br>3. 输出语句中的变量嵌入方式 |
【三、重点知识解析】
1. 输入处理
length, width = map(int, input().split())
- `input()`:获取用户输入的一行字符串,如 `"5 5"`
- `.split()`:按空格拆分成列表,如 `["5", "5"]`
- `map(int, ...)`:将列表中的每个元素转换为整数
- 解包赋值:将转换后的两个整数分别赋给 `length` 和 `width`
> ⚠️ 注意:输入必须用**空格**分隔,且恰好输入两个数,否则会报错。
2. 条件判断
if length == width: shape = "正方形"else: shape = "长方形"
- `==` 是比较运算符,判断是否相等
- `=` 是赋值运算符,容易混淆,要特别强调
- `if-else` 形成二分支结构,只执行其中一个分支
3. 面积计算
- 整数乘法,直接得到面积值
4. 输出格式化(f-string)
print(f"这是一个{shape},面积是{area}。")
- `f"..."` 表示格式化字符串
- `{变量名}` 会被替换为变量的值
- 输出内容与题目要求的标点符号保持一致
【四、完整程序解析】
# 1. 输入:一行读取两个整数length, width = map(int, input().split())
#2. 计算面积area = length * width
# 3. 判断形状if length == width: shape = "正方形"else: shape = "长方形"# 4. 输出结果print(f"这是一个{shape},面积是{area}。")
程序执行流程图
开始
↓
输入长和宽
↓
计算面积
↓
长 == 宽 ?
├─是→ shape = "正方形"
└─否→ shape = "长方形"
↓
输出结果
↓
结束
【 五、常见错误与避坑指南】
| 错误写法 | 问题 | 正确写法 |
|---------|------|---------|
| `length, width = input().split()` | 得到的是字符串,不能做乘法 | 加 `map(int, ...)` |
| `if length = width:` | 赋值号 `=` 误用 | 改为 `==` |
| `print("面积是" + area)` | 字符串与整数不能直接拼接 | 用 `f-string` 或 `str(area)` |
| 输入 `5,5` | 逗号分隔不被 `split()` 识别 | 使用空格 `5 5` |
【六、拓展演练】
🔹 练习1:输入合法性检查
在输入后判断长和宽是否都大于 0,如果不是,输出 `"长和宽必须为正整数!"` 并结束程序。
🔹 练习2:输出周长
除了面积,再输出该矩形的周长。
公式:周长 = 2 × (长 + 宽)
输出示例:`这是一个正方形,面积是25,周长是20。`
🔹 练习3:多次判断(循环)
让程序可以连续判断多个矩形,直到用户输入 `0 0` 时退出。
🔹 练习4:判断是否为正方形并给出对角线长度
如果是正方形,输出其对角线长度(保留两位小数)。
公式:对角线 = 边长 × √2
【 七、小结】
- 掌握了一行读取多个输入的标准写法
- 理解了 `if-else` 实现简单分支
- 学会了用 `f-string` 输出动态内容
- 能够根据需求扩展程序功能