条件与循环
用 if/elif/else 做决策,用 for 和 while 循环重复。
你将学到
- if、elif 和 else 分支语句
- for 循环和 range() 函数
- while 循环做条件重复
- break 和 continue 控制循环流程
- 遍历列表、字典和字符串
概念讲解
if / elif / else
Python 的条件语法干净可读。注意每个条件后的冒号和缩进的代码块:
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "F"
print(f"Grade: {grade}")
Python 用缩进(约定 4 个空格)定义代码块——没有花括号。
for 循环
Python 的 for 循环遍历任何可迭代对象——列表、字符串、字典、range:
# 遍历列表
for fruit in ["apple", "banana", "cherry"]:
print(fruit)
# 遍历字符串
for char in "Hello":
print(char)
# 用 range() 做计数循环
for i in range(5): # 0, 1, 2, 3, 4
print(i)
for i in range(2, 10, 2): # 2, 4, 6, 8(起始, 终止, 步长)
print(i)
while 循环
while 循环在条件为真时持续运行:
count = 5
while count > 0:
print(count)
count -= 1
print("Liftoff!")
小心:如果条件永远不为假,就会无限循环。务必确保循环变量会变化。
break 和 continue
break——立即退出循环continue——跳过本次迭代剩余部分,进入下一次
for n in range(10):
if n == 3:
continue # 跳过 3
if n == 7:
break # 在 7 停止
print(n) # 0, 1, 2, 4, 5, 6
遍历字典与 enumerate()
user = {"name": "Ada", "age": 25, "role": "admin"}
# 同时遍历键和值
for key, value in user.items():
print(f"{key} = {value}")
# 遍历列表时同时获取索引和值
for index, fruit in enumerate(["apple", "banana", "cherry"]):
print(f"{index}: {fruit}")
enumerate() 是同时获取索引和值的 Pythonic 方式——比手动跟踪索引清晰得多。
循环的 else 子句
Python 循环可以有 else 子句,只在循环没有遇到 break 时运行:
for n in range(2, 10):
if n == 5:
break
else:
print("Loop completed without break")
这对搜索循环很有用——你想在未找到时做些什么。
示例代码
# if / elif / else
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "F"
print(f"Score {score} earns grade {grade}")
# for 循环配 range
print("Countdown:")
for i in range(3, 0, -1):
print(f" {i}...")
# while 循环配安全计数器
attempts = 0
max_attempts = 3
while attempts < max_attempts:
print(f"Attempt {attempts + 1}")
attempts += 1
# break 和 continue
print("Even numbers up to 10 (skipping 6):")
for n in range(1, 11):
if n % 2 != 0:
continue # 跳过奇数
if n == 6:
break # 在 6 停止
print(f" {n}")
# enumerate 获取索引+值
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
print(f" {index}: {fruit}")
# 遍历字典
user = {"name": "Ada", "age": 25}
for key, value in user.items():
print(f" {key} = {value}")
展示了 if/elif/else 评分、for 倒计时、while 重试循环、break/continue 过滤、enumerate 获取索引+值,以及字典遍历。这些模式覆盖了大部分日常循环使用。
动手试一试
- Text Counter
统计字符和单词是 Python 中经典的循环任务。
- Math Evaluator
计算常出现在循环条件中的表达式。
常见错误
错误写法
在 if/for/while 语句后忘记冒号
正确做法
Python 在 if、elif、else、for 和 while 行末要求冒号。错误 'SyntaxError: expected :' 是初学者最常见的——务必加冒号。
错误写法
不更新条件变量导致 while 无限循环
正确做法
while 循环内务必更新条件检查的变量。开发时加个安全计数器作后备:if safety > 1000: break 防止失控循环。
相关资源
相关速查表
- Python Cheatsheet
条件和循环语法及示例。
练习 条件与循环
2 个练习
查阅不认识的术语
新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。
动手做项目
通过引导式项目应用所学,含起始代码与解决方案。
解读错误信息
用大白话解释常见错误——什么意思、为什么发生、如何修复。