Python控制流程

在本章节中,您将学习Python的控制流程,包括条件语句(if-elif-else)、循环语句(for和while)以及控制语句(break、continue)等。 掌握这些控制流程,可以让您的程序更加灵活,能够根据不同的条件执行不同的操作。

条件语句

条件语句的作用

条件语句允许程序根据不同的条件执行不同的代码块,是程序实现决策的基础。

if语句

# 基本的if语句
age = 18
if age >= 18:
    print("您已成年")

# if-else语句
score = 85
if score >= 60:
    print("及格")
else:
    print("不及格")

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

# 嵌套的if语句
age = 20
has_ticket = True
if age >= 18:
    if has_ticket:
        print("可以进入电影院")
    else:
        print("请先购票")
else:
    print("未成年不能观看")

注意:Python使用缩进来表示代码块,确保if语句下的代码块正确缩进(通常是4个空格)。

循环语句

for循环

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

# 使用range()
for i in range(5):    # 0到4
    print(i)

# 带步长的range()
for i in range(0, 10, 2):  # 0, 2, 4, 6, 8
    print(i)

# 遍历字典
student = {'name': '小明', 'age': 18}
for key in student:
    print(f"{key}: {student[key]}")

# 同时获取索引和值
for index, value in enumerate(fruits):
    print(f"第{index+1}个水果是:{value}")

while循环

# 基本while循环
count = 0
while count < 5:
    print(count)
    count += 1

# 带条件的while循环
number = 1
sum = 0
while number <= 100:
    sum += number
    number += 1
print(f"1到100的和是:{sum}")

# 无限循环
while True:
    user_input = input("请输入'q'退出:")
    if user_input == 'q':
        break

控制语句

控制语句的作用

控制语句可以改变循环的执行流程,包括提前结束循环或跳过当前迭代。

break和continue

# break示例
for i in range(1, 11):
    if i == 5:
        break  # 遇到5就结束循环
    print(i)

# continue示例
for i in range(1, 6):
    if i == 3:
        continue  # 跳过3
    print(i)

# 实际应用示例
while True:
    password = input("请输入密码:")
    if len(password) < 6:
        print("密码太短,请重新输入")
        continue
    if password == "123456":
        print("登录成功")
        break
    print("密码错误,请重试")

else子句

# 循环的else子句
for i in range(5):
    if i == 10:
        break
else:
    print("循环正常完成")  # 只有循环正常完成才会执行

# 查找示例
numbers = [1, 3, 5, 7, 9]
search = 4
for num in numbers:
    if num == search:
        print("找到了")
        break
else:
    print("没有找到")

练习与实践

练习1:猜数字游戏

创建一个猜数字游戏,要求:

  1. 程序随机生成一个1-100的数字
  2. 用户有最多7次机会猜测
  3. 每次猜测后提示数字是偏大还是偏小

参考代码:

import random

# 生成1-100的随机数
target = random.randint(1, 100)
max_tries = 7
tries = 0

while tries < max_tries:
    guess = int(input(f"请猜一个1-100的数字(还有{max_tries-tries}次机会):"))
    tries += 1
    
    if guess == target:
        print(f"恭喜你,猜对了!用了{tries}次机会")
        break
    elif guess < target:
        print("猜小了")
    else:
        print("猜大了")
else:
    print(f"游戏结束,正确答案是{target}")

练习2:九九乘法表

使用嵌套循环打印九九乘法表:

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