跳转至

第五章:流程控制

本章学习条件判断和循环语句。

5.1 条件判断 if

基本语法

age = 18

if age >= 18:
    print("成年人")

if-else

age = 16

if age >= 18:
    print("成年人")
else:
    print("未成年人")

if-elif-else

score = 85

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")

条件表达式(三元运算符)

age = 20
status = "成年" if age >= 18 else "未成年"
print(status)  # "成年"

多条件判断

age = 25
has_license = True

# and(与)
if age >= 18 and has_license:
    print("可以开车")

# or(或)
if age < 18 or not has_license:
    print("不能开车")

# in(成员判断)
fruits = ["苹果", "香蕉", "橙子"]
if "苹果" in fruits:
    print("有苹果")

嵌套判断

age = 25
has_license = True

if age >= 18:
    if has_license:
        print("可以开车")
    else:
        print("需要考驾照")
else:
    print("年龄不够")

5.2 循环 for

基本语法

# 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
    print(fruit)

# 遍历字符串
for char in "Hello":
    print(char)

# 遍历字典
person = {"name": "张三", "age": 25}
for key, value in person.items():
    print(f"{key}: {value}")

range() 函数

# range(stop)
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4

# range(start, stop)
for i in range(2, 6):
    print(i)  # 2, 3, 4, 5

# range(start, stop, step)
for i in range(0, 10, 2):
    print(i)  # 0, 2, 4, 6, 8

# 倒序
for i in range(5, 0, -1):
    print(i)  # 5, 4, 3, 2, 1

enumerate()

fruits = ["苹果", "香蕉", "橙子"]

for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")
# 0: 苹果
# 1: 香蕉
# 2: 橙子

# 指定起始索引
for index, fruit in enumerate(fruits, start=1):
    print(f"{index}: {fruit}")

zip()

names = ["张三", "李四", "王五"]
ages = [25, 30, 28]

for name, age in zip(names, ages):
    print(f"{name}: {age}岁")

# 不等长时以最短为准

5.3 循环 while

基本语法

count = 0
while count < 5:
    print(count)
    count += 1
# 0, 1, 2, 3, 4

while-else

count = 0
while count < 5:
    print(count)
    count += 1
else:
    print("循环结束")

无限循环

while True:
    response = input("输入 q 退出:")
    if response == "q":
        break

5.4 break 和 continue

break(跳出循环)

for i in range(10):
    if i == 5:
        break
    print(i)
# 0, 1, 2, 3, 4

continue(跳过本次)

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)
# 1, 3, 5, 7, 9

pass(占位)

for i in range(5):
    if i == 2:
        pass  # 什么都不做
    print(i)
# 0, 1, 2, 3, 4

5.5 循环嵌套

# 九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j}×{i}={i*j}", end=" ")
    print()

# 输出:
# 1×1=1
# 1×2=2 2×2=4
# 1×3=3 2×3=6 3×3=9
# ...

5.6 实战案例

猜数字游戏

import random

number = random.randint(1, 100)
attempts = 0

while True:
    guess = int(input("猜一个数字(1-100):"))
    attempts += 1

    if guess < number:
        print("太小了!")
    elif guess > number:
        print("太大了!")
    else:
        print(f"恭喜!你用了 {attempts} 次猜对了!")
        break

查找列表中的最大值

numbers = [3, 7, 2, 9, 4, 1, 8]
max_num = numbers[0]

for num in numbers:
    if num > max_num:
        max_num = num

print(f"最大值:{max_num}")

统计字符出现次数

text = "hello world"
char_count = {}

for char in text:
    if char in char_count:
        char_count[char] += 1
    else:
        char_count[char] = 1

print(char_count)
# {'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}

小结

本章学习了:

  • ✅ if 条件判断
  • ✅ for 循环
  • ✅ while 循环
  • ✅ break、continue、pass
  • ✅ 循环嵌套

下一章

第六章:函数 - 学习函数的定义和使用。

练习

  1. 编写程序判断一个数是否为质数。
  2. 打印斐波那契数列前 20 项。
  3. 编写程序找出列表中的所有偶数。