循环和分支结构
2025年4月17日大约 3 分钟
循环和分支结构
控制流是编程中的核心概念,它决定了程序的执行顺序。Python提供了多种控制流语句,让我们来详细了解它们。
条件语句
if-elif-else 结构
age = 18
if age < 18:
print("未成年")
elif age == 18:
print("刚成年")
else:
print("成年人")
条件表达式(三元运算符)
age = 20
status = "成年" if age >= 18 else "未成年"
嵌套条件
age = 20
has_ticket = True
if age >= 18:
if has_ticket:
print("可以进入电影院")
else:
print("请先购票")
else:
print("未成年人不能观看")
循环结构
for 循环
# 遍历范围
for i in range(5):
print(i) # 打印 0,1,2,3,4
# 遍历字符串
for char in "Python":
print(char)
# 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(fruit)
# 使用enumerate获取索引
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
while 循环
# 基本while循环
count = 0
while count < 5:
print(count)
count += 1
# 无限循环与break
while True:
user_input = input("请输入'q'退出:")
if user_input == 'q':
break
print("继续循环...")
循环控制语句
# break:跳出整个循环
for i in range(10):
if i == 5:
break
print(i)
# continue:跳过当前迭代
for i in range(5):
if i == 2:
continue
print(i)
# else:循环正常完成时执行
for i in range(5):
print(i)
else:
print("循环正常完成")
实际应用示例
1. 猜数字游戏
import random
target = random.randint(1, 100)
attempts = 0
while True:
guess = int(input("猜一个1-100之间的数字:"))
attempts += 1
if guess < target:
print("太小了!")
elif guess > target:
print("太大了!")
else:
print(f"恭喜你,猜对了!用了{attempts}次。")
break
2. 打印乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}", end='\t')
print() # 换行
3. 列表处理
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_sum = 0
odd_count = 0
for num in numbers:
if num % 2 == 0:
even_sum += num
else:
odd_count += 1
print(f"偶数和:{even_sum}")
print(f"奇数个数:{odd_count}")
最佳实践
避免无限循环
- 确保循环有终止条件
- 使用适当的break语句
循环效率
- 尽量减少循环内的计算
- 使用适当的数据结构
代码可读性
- 使用有意义的变量名
- 添加适当的注释
- 保持适当的缩进
错误处理
- 使用try-except处理可能的异常
- 验证用户输入
常见陷阱
修改循环变量
# 错误示例 for i in range(5): i += 1 # 这不会影响循环
无限循环
# 错误示例 while True: print("无限循环") # 没有退出条件
条件判断顺序
# 注意条件的顺序 if score >= 60: print("及格") elif score >= 80: # 这个条件永远不会被检查 print("优秀")
练习
- 编写一个程序,打印出1到100之间所有的素数
- 创建一个程序,计算斐波那契数列的前n项
- 实现一个简单的计算器,支持基本的算术运算
下一步
掌握了循环和分支结构后,我们就可以开始学习数据结构了。