一、while循环基础
1. 循环本质与要素
- 核心机制:基于条件的重复执行过程
- 两大要素:
- 条件判断(True继续/False停止)
- 循环操作(重复执行的内容)
2. 基础语法
while 条件:循环体代码(Python)
3. 经典案例
案例1:表白100次
i = 0
while i < 100:
print("小美我喜欢你!")
i += 1
案例2:1-100累加
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print(f'1-100累加的和是:{sum}') # 输出5050
案例3:猜数字游戏
import random
num = random.randint(1, 100)
flag = True
count = 0 # 添加计数器初始化
while flag:
guess_num = int(input("请输入你猜测的数字: "))
count += 1
if guess_num == num:
print("猜中了")
flag = False
print(f"总共猜测了{count}次")
else:
if guess_num>num:
print("你猜大了")
else:
print(“你猜小了”)
二、while循环嵌套
1. 语法规范
- 使用空格缩进确定层次关系(外层4空格,内层8空格)
- 每层需要独立控制变量
2. 表白案例
i = 1
while i <= 100:
print(f"今天是第{i}天,准备表白...")
j = 1
while j <= 10:
print(f"送给小美第{j}朵玫瑰花")
j += 1
print("小美我喜欢你")
i += 1
print(f"坚持到第{i-1}天,表白成功")
三、for循环全解析
1. 核心特性
- 本质区别:for循环是一种”轮询”机制,对一批内容进行”逐个处理”,而while循环的条件是自定义的
- 适用场景:
- 字符串处理
- 列表/元组遍历
- 已知范围的数值处理
2. 基础语法
for 临时变量 in 数据集:
循环体代码
3. 经典案例
案例1:字符串遍历
name = "itheima"
for char in name:
print(char) # 逐个输出字符:i t h e i m a
案例2:统计字母a出现次数
text = "itheima is a brand of itcast"
count = 0
for char in text:
if char == 'a':
count += 1
print(f"字符串中共包含{count}个字母a") # 输出4个
四、range语句详解
1. 三种使用形式
| 语法形式 | 示例 | 输出范围 |
|---|---|---|
| range(num) | range(5) | 0-4 |
| range(start, end) | range(5,10) | 5-9 |
| range(start, end, step) | range(5,10,2) | 5,7,9 |
语法1:range(num) 生成从0开始到num-1的序列
示例:range(5) →【0,1,2,3,4】
特点:不包含num本身,最大值为num-1
语法2:range(num1, num2) 生成从num1到num2-1的序列
示例:range(5,10) →【5,6,7,8,9】
语法3:range(num1, num2, step) 带步长的数字序列
示例:range(5,10,2) →【5,7,9 】
默认步长:step默认为1
2. 实际应用
生成1-100的偶数序列
for num in range(2, 101, 2):
print(num)
五、循环控制双雄
1. continue使用示例
打印1-10的奇数
for i in range(1,11):
if i % 2 == 0:
continue
print(i) # 输出1,3,5,7,9
2. break使用示例
# 密码输入验证
password = "123456"
while True:
user_input = input("请输入密码:")
if user_input == password:
print("登录成功!")
break
print("密码错误,请重试")
3. 嵌套循环中的控制
# 多层循环中的break
for i in range(3):
print(f"外层循环第{i}次")
for j in range(5):
if j == 2:
break # 仅终止内层循环
print(f"--内层循环第{j}次")
六、综合实战案例
1. 九九乘法表实现
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}×{i}={j*i}\t", end='')
print()
2. 实现要点解析
- 动态范围控制:
range(1, i+1)确保每行列数与行号匹配 - 输出格式化:
\t制表符保证对齐end=''禁止自动换行- 外层循环的
print()实现换行
七、编程规范与技巧
1. 变量作用域管理
# 推荐写法(避免临时变量泄露)
i = 0 # 显式声明控制变量
for i in range(5):
print(i)
print(f"最终i值:{i}") # 输出4,但建议避免这种用法
2. 循环选择指南
| 循环类型 | 适用场景 | 特点 |
|---|---|---|
| while | 不确定次数的循环 | 需要手动控制循环变量 |
| for | 已知数据集/确定次数的遍历 | 自动迭代元素 |
3. 性能优化建议
- 避免在循环体内进行重复计算
- 大数据集遍历优先使用生成器
- 嵌套循环尽量将大循环放在外层