Skip to content

条件与循环

用 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 防止失控循环。

相关速查表

练习 条件与循环

2 个练习

练习 条件与循环

查阅不认识的术语

新手友好的术语表用大白话解释编程术语——变量、函数、DOM、Promise 等等。

查看术语表

动手做项目

通过引导式项目应用所学,含起始代码与解决方案。

查看项目

解读错误信息

用大白话解释常见错误——什么意思、为什么发生、如何修复。

查看错误