当前位置:首页>python>Python 零基础 100 天 — Day 6 for 循环

Python 零基础 100 天 — Day 6 for 循环

  • 2026-10-11 08:04:13
Python 零基础 100 天 — Day 6 for 循环

Python Day06:循环入门 — for 循环

🕐 预计用时:2-3 小时 | 🎯 今日目标:掌握 for 循环,让程序帮你做重复劳动


📖 今日目录

  1. 为什么需要循环
  2. for 循环基本语法
  3. range() 函数
  4. 遍历字符串和列表
  5. enumerate() 同时拿索引和值
  6. break 和 continue
  7. 嵌套 for 循环
  8. 实战项目
  9. 今日小结

1. 为什么需要循环

想象你在工厂流水线上拧螺丝——同一个动作重复 1000 次。人会累,但计算机不会。

循环就是让计算机自动重复执行某段代码。

循环就像流水线——同样的动作自动重复,不需要人工干预

# 没有循环:手动写 5 遍print("Hello!")print("Hello!")print("Hello!")print("Hello!")print("Hello!")# 有循环:一行搞定for i in range(5):    print("Hello!")

2. for 循环基本语法

for 循环的基本结构:for 变量 in 可迭代对象

📐 语法结构

for 变量 in 可迭代对象:    循环体(要重复执行的代码)

💡 理解 for 循环的三要素: 1. 变量:每次循环都会被赋一个新值(就像流水线上的工人,每件产品都检查一遍) 2. 可迭代对象:一组要处理的数据(列表、字符串、range等) 3. 缩进:Python 用缩进表示"这段代码属于循环体"

🎯 最简单的例子

# 遍历一个列表fruits = ["苹果", "香蕉", "橘子"]for fruit in fruits:    print("我喜欢吃" + fruit)

输出:

我喜欢吃苹果我喜欢吃香蕉我喜欢吃橘子

执行过程:

第 1 次循环:fruit = "苹果" → 打印 "我喜欢吃苹果"第 2 次循环:fruit = "香蕉" → 打印 "我喜欢吃香蕉"第 3 次循环:fruit = "橘子" → 打印 "我喜欢吃橘子"循环结束(列表遍历完了)

3. range() 函数

range() 是"数数器"——生成一串数字,配合 for 循环使用。

range() 就像节拍器,控制循环的次数

三种用法

用法
含义
示例
输出
range(n)
从 0 到 n-1
range(5)
0, 1, 2, 3, 4
range(start, end)
从 start 到 end-1
range(2, 6)
2, 3, 4, 5
range(start, end, step)
带步长
range(0, 10, 2)
0, 2, 4, 6, 8
# 打印 0~4for i in range(5):    print(i)# 打印 1~10for i in range(1, 11):    # 注意:range(1, 11) 不包含 11    print(i)# 打印偶数:0, 2, 4, 6, 8for i in range(0, 10, 2):    print(i)# 倒序:5, 4, 3, 2, 1for i in range(5, 0, -1):    print(i)

⚠️ range() 的"左闭右开"规则range(start, end) 包含 start,但不包含 end! 就像楼层:1~10楼不包括"第11楼"。想打印1到10,要写 range(1, 11)。


4. 遍历字符串和列表

🔤 遍历字符串

# 逐个打印每个字符word = "Python"for ch in word:    print(ch)

输出:

Python

📋 遍历列表

# 计算列表中所有数字的总和numbers = [10, 20, 30, 40, 50]total = 0for n in numbers:    total += nprint("总和:", total)    # 总和: 150

🔢 配合 range(len()) 遍历

# 用索引遍历(当你需要知道"第几个"的时候)colors = ["红", "绿", "蓝"]for i in range(len(colors)):    print("第", i+1, "个颜色是", colors[i])

5. enumerate() 同时拿索引和值

enumerate() 让你同时拿到"第几个"和"是什么"

enumerate() 让你在遍历时同时获得"位置"和"内容"。

colors = ["红", "绿", "蓝"]# 不用 enumerate:需要额外变量for i in range(len(colors)):    print(i, colors[i])# 用 enumerate:更优雅for i, color in enumerate(colors):    print(i, color)

输出(两种方式一样):

0 红1 绿2 蓝

💡 什么时候用 enumerate? 当你需要知道"这是第几个元素"的时候。比如:排行榜、编号列表、计数器。


6. break 和 continue

🛑 break:立即跳出循环

# 找到第一个偶数就停止numbers = [1, 3, 4, 7, 8, 9]for n in numbers:    if n % 2 == 0:        print("找到偶数:", n)        break    # 跳出循环,不再检查后面的print("循环结束")

输出:

找到偶数: 4循环结束

⏭️ continue:跳过当前,继续下一次

# 只打印奇数for i in range(1, 11):    if i % 2 == 0:        continue    # 跳过偶数,继续下一次循环    print(i)

输出:

13579

💡 break vs continue 对比:break = 撒手不干了(整个循环结束) continue = 这个跳过,下一个继续(单次循环跳过)


7. 嵌套 for 循环

循环里面套循环——就像"外层循环控制行,内层循环控制列"。

九九乘法表是嵌套循环的经典应用

📐 九九乘法表

for i in range(1, 10):        # 外层循环:1~9(行)    for j in range(1, i+1):   # 内层循环:1~i(列)        print(j, "×", i, "=", i*j, end="\t")    print()  # 换行

输出:

1 × 1 = 11 × 2 = 2  2 × 2 = 41 × 3 = 3  2 × 3 = 6  3 × 3 = 9...(省略)1 × 9 = 9  2 × 9 = 18  3 × 9 = 27 ... 9 × 9 = 81

💡 嵌套循环的执行顺序: 外层循环走1步 → 内层循环跑完全部 → 外层再走1步 → 内层再跑完全部... 就像时钟:秒针转一圈(内层),分针才走一格(外层)。


8. 实战项目

🏋️ 实战 1:猜数字游戏(带次数限制)

import randomsecret = random.randint(1, 100)  # 随机生成 1~100 的秘密数字max_tries = 7                     # 最多猜 7 次print("=== 猜数字游戏 ===")print("我心里有一个 1~100 的数字,你有 7 次机会猜!")for attempt in range(1, max_tries + 1):    guess = int(input(f"第 {attempt} 次猜测:"))    if guess == secret:        print(f"🎉 恭喜!猜对了!答案就是 {secret}!")        print(f"你用了 {attempt} 次猜中")        break    elif guess < secret:        print("太小了!再大一点 ↑")    else:        print("太大了!再小一点 ↓")else:    # for/else:循环正常结束(没有 break)时执行    print(f"💀 机会用完了!答案是 {secret}")

🏋️ 实战 2:九九乘法表(美化版)

print("╔══════════════════════════════════════╗")print("║         九 九 乘 法 表              ║")print("╠══════════════════════════════════════╣")for i in range(1, 10):    print("║", end="")    for j in range(1, i+1):        result = i * j        print(f" {j}×{i}={result:2d}", end="")    # 补齐空格    for k in range(i+1, 10):        print("         ", end="")    print(" ║")print("╚══════════════════════════════════════╝")

🏋️ 练习题

练习 1:用 for 循环计算 1+2+3+...+100 的和。

练习 2:打印 1~20 中所有能被 3 整除的数。

练习 3:用 for 循环打印一个倒三角形:

***************

练习 4:用 for 循环和 enumerate 打印一个列表,每行显示 "第X项:内容"。

练习 5:写一个程序,输入一个正整数 n,计算 n 的阶乘(n! = 1×2×3×...×n)。


9. 今日小结

知识点
一句话总结
for 循环
for 变量 in 可迭代对象:
 — 逐个处理每个元素
range()
生成数字序列,三种用法:range(n)、range(start, end)、range(start, end, step)
遍历字符串
for ch in "hello"
 — 逐个字符处理
enumerate()
同时获取索引和值,比 range(len()) 更优雅
break
立即跳出整个循环
continue
跳过当前这一次,继续下一次
嵌套循环
循环里套循环,外层控制行,内层控制列
for/else
循环正常结束(没 break)时执行 else

🧠 自检清单

⬜ 能用 for 循环遍历列表和字符串

⬜ 能用 range() 生成指定范围的数字

⬜ 知道 range() 的"左闭右开"规则

⬜ 能用 enumerate() 同时获取索引和值

⬜ 知道 break 和 continue 的区别

⭐ 能用嵌套循环打印九九乘法表

⭐ 能写一个带次数限制的猜数字游戏

🎯 Day 7 预告

明天学习while 循环——另一种循环方式,适合"不知道要循环多少次"的场景。

就像"直到……才停止"的逻辑!🔁


📅 Day 6 完成!你已经掌握了 for 循环。明天见! 🚀

轻松时刻:

请在微信客户端打开

最新文章

随机文章