104 lines
2.8 KiB
Python
104 lines
2.8 KiB
Python
# 第 1-6 课示例:循环
|
||
#
|
||
# 本文件依次演示 for、range()、计数器、累加器、while、break 和 continue。
|
||
# 每段示例都会直接运行,不要求用户输入,便于重复观察结果。
|
||
|
||
|
||
# 一、使用 range(结束值)
|
||
# range(3) 依次提供 0、1、2,不包含结束值 3。
|
||
for number in range(3):
|
||
print(f"range(3) 当前数字:{number}")
|
||
|
||
|
||
# 二、指定开始值和结束值
|
||
# range(1, 4) 依次提供 1、2、3,适合显示自然的次数编号。
|
||
for day in range(1, 4):
|
||
print(f"第 {day} 天:完成 Python 学习")
|
||
|
||
|
||
# 三、指定步长
|
||
# 从 0 开始,每次增加 2,在到达 11 前结束。
|
||
for even_number in range(0, 11, 2):
|
||
print(f"当前偶数:{even_number}")
|
||
|
||
|
||
# 四、遍历字符串
|
||
# for 会依次取得字符串中的每一个字符。
|
||
for character in "Agent":
|
||
print(f"当前字符:{character}")
|
||
|
||
|
||
# 五、使用计数器
|
||
# 计数器必须在循环外初始化,否则每次循环都会重新变为 0。
|
||
completed_count = 0
|
||
|
||
for task_number in range(1, 6):
|
||
completed_count += 1
|
||
print(f"完成第 {task_number} 个任务")
|
||
|
||
print(f"任务完成总数:{completed_count}")
|
||
|
||
|
||
# 六、使用累加器
|
||
# daily_hours 表示五天的学习时长。
|
||
# 列表会在后续课程详细讲解,本例只需知道 for 能依次取得其中的数字。
|
||
daily_hours = [2.0, 1.5, 0.0, 2.5, 3.0]
|
||
total_hours = 0.0
|
||
|
||
for hours in daily_hours:
|
||
total_hours += hours
|
||
|
||
print(f"五天总学习时长:{total_hours} 小时")
|
||
|
||
|
||
# 七、循环结合条件判断
|
||
# 只有学习时长大于 0 的记录才算有效学习日。
|
||
effective_days = 0
|
||
|
||
for hours in daily_hours:
|
||
if hours > 0:
|
||
effective_days += 1
|
||
|
||
print(f"有效学习日:{effective_days} 天")
|
||
|
||
|
||
# 八、while 循环
|
||
# 每次循环末尾增加 current_day,确保条件最终会变为 False。
|
||
current_day = 1
|
||
|
||
while current_day <= 3:
|
||
print(f"while 正在处理第 {current_day} 天")
|
||
current_day += 1
|
||
|
||
|
||
# 九、使用 continue 跳过无效数据
|
||
# -1 表示无效记录;遇到它时跳过本次循环的剩余代码。
|
||
learning_records = [2.0, -1.0, 1.5, 0.0]
|
||
valid_total_hours = 0.0
|
||
|
||
for hours in learning_records:
|
||
if hours == -1:
|
||
print("发现无效记录,本次跳过")
|
||
continue
|
||
|
||
valid_total_hours += hours
|
||
|
||
print(f"排除无效记录后的总时长:{valid_total_hours} 小时")
|
||
|
||
|
||
# 十、使用 break 提前结束循环
|
||
# 当 task_number 等于 4 时结束循环,因此不会处理第 4、5 个任务。
|
||
for task_number in range(1, 6):
|
||
if task_number == 4:
|
||
print("收到停止信号,提前结束任务循环")
|
||
break
|
||
|
||
print(f"正在处理第 {task_number} 个任务")
|
||
|
||
|
||
# 十一、简单嵌套循环
|
||
# 外层循环执行两次;每次都会让内层循环完整执行三次。
|
||
for week in range(1, 3):
|
||
for day in range(1, 4):
|
||
print(f"第 {week} 周,第 {day} 天")
|