Day 010 完成清单 ✅
循环(for/while)
已学内容
- [ ] 理解循环的本质:用统一逻辑处理不同数据
- [ ] 掌握
for循环的基本语法和用法 - [ ] 理解迭代器协议:
iter()+next()+StopIteration - [ ] 使用
enumerate()同时获取索引和值 - [ ] 使用
zip()并行迭代多个序列 - [ ] 掌握
range()三种调用方式:range(stop),range(start, stop),range(start, stop, step) - [ ] 理解
range()的惰性求值原理 - [ ] 掌握
break完全退出循环 - [ ] 掌握
continue跳过当前迭代 - [ ] 理解
for...else和while...else的行为 - [ ] 掌握
while循环基本语法 - [ ] 区分意外无限循环和故意无限循环
- [ ] 掌握循环嵌套的执行逻辑
- [ ] 能用嵌套循环打印图形(三角形、矩形、菱形)
练习题
练习 1: 斐波那契数列(Fibonacci)
斐波那契数列定义为:F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2)
要求: - 用户输入一个正整数 n - 程序输出前 n 个斐波那契数 - 至少使用两种方式实现(for 和 while 各一种)
示例:
输入: 10
输出: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34
练习 2: 数字统计
要求: - 生成一个包含 50 个随机整数的列表(范围 1-100) - 统计其中奇数和偶数的个数 - 找出列表中的最大值、最小值和平均值 - 找出所有能被 3 整除的数
提示:
python
import random
numbers = [random.randint(1, 100) for _ in range(50)]
练习 3: 密码强度检测器
要求: - 用户输入一个密码字符串 - 检查密码长度是否 ≥ 8 - 检查是否包含大写字母、小写字母、数字、特殊字符 - 根据满足的条件数量评定密码强度(弱/中/强/很强)
评分规则: | 条件数量 | 强度 | |---------|------| | 0-1 | ❌ 弱 | | 2 | ⚠️ 中 | | 3 | ✅ 强 | | 4 | 💪 很强 |
练习 4: 数字金字塔
要求: - 用户输入金字塔层数 n - 打印数字金字塔(见示例)
示例(n=5):
1
121
12321
1234321
123454321
提示: 每行数字分两部分:前半部分递增,后半部分递减。
练习 5: 冒泡排序(Bubble Sort)
要求: - 用 Python 实现冒泡排序算法 - 使用嵌套循环(外层控制轮数,内层控制比较和交换) - 每轮结束后输出当前数组状态,观察排序过程
示例:
原始: [64, 34, 25, 12, 22, 11, 90]
第1轮: [34, 25, 12, 22, 11, 64, 90]
第2轮: [25, 12, 22, 11, 34, 64, 90]
...
排序后: [11, 12, 22, 25, 34, 64, 90]
额外挑战
- [ ] 实现一个空心菱形(只打印边界)
- [ ] 用 while 循环重写九九乘法表
- [ ] 实现杨辉三角打印(需用到 list 和循环嵌套)
学习笔记
_________________________
_________________________
_________________________
_________________________
_________________________
_________________________
_________________________