🔄

Python For循环

田浩然制作

📚
基础语法
for in range
🎯
核心用法
遍历与累加
💻
实战案例
数字雨特效
习题巩固
5道经典题

🎯 For循环基础

💡 什么是for循环?

for循环是一种重复执行代码的结构,可以让程序自动执行多次相同或相似的操作。

🔑 核心作用

避免重复书写相同代码,让程序更简洁高效

🎯 典型场景

• 输出1到100的数字
• 计算1+2+3+...+100
• 批量处理数据

📝 基本语法

for 变量 in range(次数):  
    # 要重复执行的代码  
    执行语句

示例:输出5次Hello

for i in range(5):  
    print("Hello")

⚠️ 注意缩进!循环体内的代码必须有4个空格的缩进

🎲 Range函数三种用法

1

单参数模式

range(n)

含义

生成0到n-1的整数

示例

for i in range(5):  
    print(i)  
# 输出: 0 1 2 3 4
2

双参数模式

range(start, end)

含义

生成start到end-1的整数

示例

for i in range(1, 6):  
    print(i)  
# 输出: 1 2 3 4 5
3

三参数模式

range(start, end, step)

含义

从start到end-1,步长为step

示例

for i in range(1, 10, 3):  
    print(i)  
# 输出: 1 4 7

⚠️ 重要提醒

🔴 左闭右开原则

range(1, 6) 生成的是 1, 2, 3, 4, 5,不包含6

💡 输出1到n的技巧

想输出1到n,要写 range(1, n+1)

🎨 课堂案例:彩色数字雨

💻 完整代码

import turtle as t  
import random  

t.bgcolor("black")  
t.speed(0)  
t.hideturtle()  

while True:  
    t.clear()  
    for i in range(1, 200):  
        # 随机位置和大小  
        x = random.randint(-1200, 1200)  
        y = random.randint(-700, 700)  
        size = random.randint(10, 45)  
        
        # 设置颜色  
        if i % 3 == 0 and i % 7 == 0:  
            co = "gold"  
        elif i % 3 == 0:  
            co = "lime"  
        elif i % 7 == 0:  
            co = "deepskyblue"  
        else:  
            co = "gray"  
        
        # 绘制数字  
        t.penup()  
        t.goto(x, y)  
        t.color(co)  
        t.write(str(i), align="center",  
              font=("Arial", size, "bold"))

🎯 代码分析

🔄 核心循环

for i in range(1, 200) 生成1到199的数字

🎨 条件判断

• i % 3 == 0 且 i % 7 == 0 → 金色
• i % 3 == 0 → 绿色
• i % 7 == 0 → 蓝色
• 其他 → 灰色

🎲 随机元素

random.randint() 生成随机位置和大小

💡 学习重点

① 循环变量 i 的使用
② 取模运算判断倍数
③ 多重条件判断

🌈 效果展示

42

普通数字(灰色)

9

3的倍数(绿色)

14

7的倍数(蓝色)

21

公倍数(金色)

💼 For循环四大经典应用

📝

场景1:顺序输出

# 输出1到n的所有整数  
n = int(input())  
for i in range(1, n+1):  
    print(i)

💡 关键点

range(1, n+1) 确保包含n

🔍

场景2:条件筛选

# 输出2的倍数但非3的倍数  
n = int(input())  
for i in range(1, n+1):  
    if i % 2 == 0 and i % 3 != 0:  
        print(i)

💡 关键点

循环中嵌套if判断条件

📊

场景3:等差数列

# 输出1, 4, 7, 10...  
n = int(input())  
for i in range(1, n+1, 3):  
    print(i)

💡 关键点

range的第三个参数设置步长

场景4:累加求和

# 计算1+2+3+...+n  
n = int(input())  
s = 0  
for i in range(n+1):  
    s = s + i  
print(s)

💡 关键点

先定义变量s=0,循环中累加

📝 课堂习题详解

1

输出1~n之间所有的整数

📋 题目要求

从键盘读入整数n,循环输出1~n之间所有整数

输入:5

输出:1 2 3 4 5

💻 参考答案

n = int(input())  
for i in range(1, n+1):  
    print(i)

🎯 解题要点

range(1, n+1) 左闭右开,要+1

2

输出2的倍数但非3的倍数

📋 题目要求

输出1~n中是2的倍数但非3的倍数的数

输入:10

输出:2 4 8 10

💻 参考答案

n = int(input())  
for i in range(1, n+1):  
    if i % 2 == 0 and i % 3 != 0:  
        print(i)

🎯 解题要点

% 取模运算,==判断相等,!=判断不等

3

输出等差数列

📋 题目要求

观察规律:1 4 7 10...,输出1~n中满足的数

输入:10

输出:1 4 7 10

💻 参考答案

n = int(input())  
for i in range(1, n+1, 3):  
    print(i)

🎯 解题要点

首项1,公差3,用range的步长参数

4

求1+2+3+...+n

📋 题目要求

计算1+2+3+...+n的和

输入:100

输出:5050

💻 参考答案

n = int(input())  
s = 0  
for i in range(n+1):  
    s = s + i  
print(s)

🎯 解题要点

① 定义变量s=0
② 循环累加
③ 循环后输出

5

统计个数和总和

📋 题目要求

求1~n中2的倍数但非3的倍数的数,有多少个,总和是多少

输入:10

输出:4(个数)
24(总和)

💻 参考答案

n = int(input())  
count = 0  
total = 0  
for i in range(1, n+1):  
    if i%2==0 and i%3!=0:  
        count += 1  
        total += i  
print(count)  
print(total)

🎯 解题要点

定义两个变量分别记录个数和总和

✅ 随堂测验

1. range(5) 会生成哪些数字?

A. 0 1 2 3 4
B. 1 2 3 4 5
C. 0 1 2 3 4 5
D. 1 2 3 4

2. 要输出1到10的数字,应该使用哪个range?

A. range(1, 10)
B. range(1, 11)
C. range(0, 10)
D. range(10)

3. range(2, 10, 2) 会生成哪些数字?

A. 2 3 4 5 6 7 8 9
B. 2 4 6 8
C. 2 4 6 8 10
D. 4 6 8 10

4. 下面哪段代码能正确计算1到100的和?

A. s = 0
for i in range(100):
    s = s + i
B. s = 0
for i in range(1, 100):
    s = s + i
C. s = 0
for i in range(1, 101):
    s = s + i
D. for i in range(100):
    s = s + i

5. 以下关于for循环的说法,哪个是错误的?

A. for循环可以重复执行代码
B. for循环必须和range()函数一起使用
C. 循环体内的代码需要缩进
D. 循环变量i会自动变化

📚 知识点总结

🔑 核心语法

for循环结构

for 变量 in range(参数):  
    循环体代码

range()三种用法

• range(n) → 0到n-1
• range(a, b) → a到b-1
• range(a, b, step) → 带步长

注意事项

✅ 必须有冒号
✅ 必须缩进4个空格
✅ range左闭右开

💡 常见技巧

输出1到n

for i in range(1, n+1):
    print(i)

累加求和

s = 0
for i in range(n+1):
    s += i

条件筛选

for i in range(n+1):
    if 条件:
        print(i)

🎯 学习要点

🔄

理解循环

重复执行代码

📐

掌握range

左闭右开区间

🎯

循环变量

自动变化的i

💪

多练习

熟能生巧

🎉

课程完成!

你已掌握For循环的核心知识

📖
学会了什么

✅ for循环基本语法

✅ range()三种用法

✅ 循环的常见应用

✅ 解决实际问题

🎯
核心能力

✅ 批量处理数据

✅ 累加求和运算

✅ 条件筛选输出

✅ 等差数列生成

🚀
下一步

📚 学习列表操作

📚 掌握嵌套循环

📚 实战项目练习

📚 继续精进技能

Keep Learning! 继续加油!💪

💡 学习建议

多写代码

每天至少写3-5个for循环练习

多做题

在线OJ平台刷题巩固

多总结

记录易错点和小技巧