首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2025年Python新手入门:控制流语句完全指南

2025年Python新手入门:控制流语句完全指南

作者头像
安全风信子
发布2025-11-13 12:55:49
发布2025-11-13 12:55:49
3420
举报
文章被收录于专栏:AI SPPECHAI SPPECH

引言

要点

描述

痛点

程序只会按顺序执行?想要实现更复杂的逻辑控制?

方案

本教程详细讲解Python的条件语句和循环语句

驱动

掌握控制流语句,让你的Python程序能够根据不同情况做出不同的决策和重复执行任务!

在上一篇教程中,我们学习了Python的数据类型。今天,我们将学习Python的控制流语句,包括条件语句和循环语句。控制流语句是编程语言中用来控制程序执行流程的语句,它们使程序能够根据不同的条件做出不同的决策,或者重复执行某些任务。掌握控制流语句是编写复杂程序的基础。

目录

章节

内容

1

条件语句(if-elif-else)

2

嵌套条件语句

3

三元运算符

4

match-case语句(Python 3.10+)

5

循环语句:while循环

6

循环语句:for循环

7

循环中的break、continue和else语句

8

嵌套循环

9

综合应用示例

1. 条件语句(if-elif-else)

条件语句用于根据不同的条件执行不同的代码块。Python中的条件语句主要包括ifelifelse关键字。

1.1 if语句

if语句是最基本的条件语句,用于在条件为真时执行特定的代码块。

代码语言:javascript
复制
# if语句的基本语法
if 条件:
    # 条件为真时执行的代码(注意缩进)

# 示例
age = 18
if age >= 18:
    print("你已经成年了!")

在上面的示例中,如果age变量的值大于或等于18,则会执行print语句,输出"你已经成年了!"。

1.2 if-else语句

if-else语句在条件为真时执行一个代码块,在条件为假时执行另一个代码块。

代码语言:javascript
复制
# if-else语句的基本语法
if 条件:
    # 条件为真时执行的代码
else:
    # 条件为假时执行的代码

# 示例
score = 85
if score >= 60:
    print("恭喜你通过了考试!")
else:
    print("很遗憾,你没有通过考试。请继续努力!")

在上面的示例中,如果score变量的值大于或等于60,则输出"恭喜你通过了考试!“;否则,输出"很遗憾,你没有通过考试。请继续努力!”。

1.3 if-elif-else语句

if-elif-else语句用于检查多个条件,并执行第一个为真的条件对应的代码块。

代码语言:javascript
复制
# if-elif-else语句的基本语法
if 条件1:
    # 条件1为真时执行的代码
elif 条件2:
    # 条件2为真时执行的代码
elif 条件3:
    # 条件3为真时执行的代码
...
else:
    # 所有条件都为假时执行的代码

# 示例
grade = 85
if grade >= 90:
    print("优秀")
elif grade >= 80:
    print("良好")
elif grade >= 70:
    print("中等")
elif grade >= 60:
    print("及格")
else:
    print("不及格")

在上面的示例中,根据grade变量的值,程序会输出不同的评级。

1.4 条件表达式

条件可以是任何返回布尔值的表达式,包括比较运算符、逻辑运算符等。

代码语言:javascript
复制
# 条件表达式示例
# 比较运算符
a = 10
b = 5
print(a > b)  # 输出: True
print(a == b)  # 输出: False

# 逻辑运算符
x = 15
print(x > 10 and x < 20)  # 输出: True
print(x < 10 or x > 20)  # 输出: False
print(not (x > 10))  # 输出: False

# 成员运算符
fruits = ["apple", "banana", "orange"]
print("apple" in fruits)  # 输出: True
print("grape" not in fruits)  # 输出: True

# 身份运算符
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b)  # 输出: True(a和b指向同一个对象)
print(a is c)  # 输出: False(a和c指向不同的对象)
print(a == c)  # 输出: True(a和c的值相等)

2. 嵌套条件语句

在一个条件语句中可以嵌套另一个条件语句,这样可以处理更复杂的条件判断。

代码语言:javascript
复制
# 嵌套条件语句示例
age = 16
has_id = False

if age >= 18:
    print("你已经成年了")
    if has_id:
        print("并且你有身份证")
    else:
        print("但你没有身份证")
else:
    print("你还未成年")
    if age >= 16:
        print("但你可以申请身份证了")
    else:
        print("等你满16岁就可以申请身份证了")

在上面的示例中,我们首先检查年龄是否大于或等于18,然后在这个条件语句中又嵌套了另一个条件语句,检查是否有身份证。对于年龄小于18的情况,我们也嵌套了一个条件语句,根据不同的年龄给出不同的提示。

注意:嵌套条件语句容易使代码变得复杂和难以理解,所以应该尽量避免过深的嵌套。如果需要处理非常复杂的条件判断,可以考虑使用函数或其他方法来简化代码。

3. 三元运算符

三元运算符是一种简化的条件表达式,它允许在一行中编写简单的条件语句。

代码语言:javascript
复制
# 三元运算符的基本语法
变量 = 值1 if 条件 else 值2

# 示例
age = 18
status = "成年人" if age >= 18 else "未成年人"
print(status)  # 输出: 成年人

# 不使用三元运算符的等价写法
age = 18
if age >= 18:
    status = "成年人"
else:
    status = "未成年人"
print(status)  # 输出: 成年人

# 更复杂的示例
a = 10
b = 20
max_value = a if a > b else b
print(max_value)  # 输出: 20

三元运算符使代码更加简洁,但只适用于简单的条件判断。对于复杂的条件判断,使用普通的if-else语句会更加清晰。

4. match-case语句(Python 3.10+)

Python 3.10引入了match-case语句,这是一种新的控制流结构,类似于其他编程语言中的switch-case语句,但功能更加强大。

代码语言:javascript
复制
# match-case语句的基本语法
match 表达式:
    case 值1:
        # 表达式等于值1时执行的代码
    case 值2:
        # 表达式等于值2时执行的代码
    case 值3 | 值4:
        # 表达式等于值3或值4时执行的代码
    case _:
        # 表达式不匹配任何值时执行的代码(相当于默认情况)

# 简单示例
day = "Monday"

match day:
    case "Monday":
        print("今天是星期一")
    case "Tuesday":
        print("今天是星期二")
    case "Wednesday":
        print("今天是星期三")
    case "Thursday":
        print("今天是星期四")
    case "Friday":
        print("今天是星期五")
    case "Saturday" | "Sunday":
        print("今天是周末")
    case _:
        print("无效的日期")

# 使用变量绑定
value = 42

match value:
    case 0:
        print("值为0")
    case 1 | 2 | 3:
        print("值为1、2或3")
    case int(x) if x > 10:
        print(f"值是大于10的整数: {x}")
    case float(x):
        print(f"值是浮点数: {x}")
    case _:
        print("值的类型未知")

# 使用结构模式匹配
data = [1, 2, 3]

match data:
    case [1, *rest]:
        print(f"以1开头的列表,其余元素为: {rest}")
    case [x, y, z]:
        print(f"包含三个元素的列表: {x}, {y}, {z}")
    case _:
        print("其他类型的列表")

match-case语句提供了一种更灵活、更强大的方式来处理多条件判断,特别是在需要根据表达式的结构进行匹配时。

5. 循环语句:while循环

循环语句用于重复执行一段代码。Python中的循环语句主要包括while循环和for循环。

5.1 while循环的基本用法

while循环在条件为真时重复执行代码块。

代码语言:javascript
复制
# while循环的基本语法
while 条件:
    # 条件为真时重复执行的代码

# 示例:打印1到5的数字
count = 1
while count <= 5:
    print(count)
    count += 1  # 不要忘记更新计数器,否则会导致无限循环

# 输出:
# 1
# 2
# 3
# 4
# 5

在上面的示例中,我们使用while循环打印了1到5的数字。在每次循环中,我们先打印count变量的值,然后将count变量的值加1。当count变量的值大于5时,循环条件变为假,循环结束。

5.2 无限循环

如果while循环的条件永远为真,那么循环将永远执行下去,这就是无限循环。在某些情况下,我们可能需要使用无限循环,但通常需要提供一种跳出循环的方式。

代码语言:javascript
复制
# 无限循环示例
# 这个循环会一直执行,除非用户输入'quit'
while True:
    user_input = input("请输入一些文本(输入'quit'退出): ")
    if user_input.lower() == 'quit':
        break  # 使用break语句跳出循环
    print(f"你输入的是: {user_input}")

在上面的示例中,我们创建了一个无限循环,但提供了一种跳出循环的方式:当用户输入’quit’时,使用break语句跳出循环。

5.3 while循环的应用场景

while循环适用于以下场景:

  1. 当你不知道循环需要执行多少次时
  2. 当循环的继续条件是动态变化的时
  3. 当需要等待某个条件变为真时
代码语言:javascript
复制
# while循环的应用场景示例

# 场景1:猜数字游戏
import random

target_number = random.randint(1, 100)  # 生成1到100之间的随机数
attempts = 0

print("欢迎来到猜数字游戏!我已经想好了一个1到100之间的数字。")

while True:
    guess = int(input("请输入你的猜测: "))
    attempts += 1
    
    if guess < target_number:
        print("太小了!再试一次。")
    elif guess > target_number:
        print("太大了!再试一次。")
    else:
        print(f"恭喜你猜对了!答案是{target_number}。你用了{attempts}次尝试。")
        break

# 场景2:处理用户输入直到用户选择退出
option = 0
while option != 4:
    print("\n请选择一个选项:")
    print("1. 查看个人信息")
    print("2. 修改个人信息")
    print("3. 保存更改")
    print("4. 退出")
    
    option = int(input("请输入选项编号: "))
    
    if option == 1:
        print("查看个人信息...")
    elif option == 2:
        print("修改个人信息...")
    elif option == 3:
        print("保存更改...")
    elif option == 4:
        print("退出程序...")
    else:
        print("无效的选项,请重试。")

6. 循环语句:for循环

for循环用于遍历序列(如列表、元组、字符串)或其他可迭代对象中的元素。

6.1 for循环的基本用法
代码语言:javascript
复制
# for循环的基本语法
for 变量 in 可迭代对象:
    # 对每个元素执行的代码

# 示例1:遍历列表
fruits = ["apple", "banana", "orange", "grape"]
for fruit in fruits:
    print(fruit)

# 输出:
# apple
# banana
# orange
# grape

# 示例2:遍历字符串
word = "Python"
for char in word:
    print(char)

# 输出:
# P
# y
# t
# h
# o
# n

# 示例3:使用range()函数
for i in range(5):  # range(5)生成0到4的数字序列
    print(i)

# 输出:
# 0
# 1
# 2
# 3
# 4

# 示例4:range()函数的高级用法
for i in range(2, 10, 2):  # 从2开始,到10结束(不包含10),步长为2
    print(i)

# 输出:
# 2
# 4
# 6
# 8
6.2 range()函数详解

range()函数是Python内置的用于生成整数序列的函数,常用于for循环中。它有三种用法:

  1. range(stop):生成从0到stop-1的整数序列
  2. range(start, stop):生成从startstop-1的整数序列
  3. range(start, stop, step):生成从startstop-1的整数序列,步长为step
代码语言:javascript
复制
# range()函数的详细用法

# 用法1:range(stop)
for i in range(5):
    print(i, end=" ")  # 输出: 0 1 2 3 4
print()

# 用法2:range(start, stop)
for i in range(2, 8):
    print(i, end=" ")  # 输出: 2 3 4 5 6 7
print()

# 用法3:range(start, stop, step)
for i in range(1, 10, 2):
    print(i, end=" ")  # 输出: 1 3 5 7 9
print()

# 负步长
for i in range(10, 0, -1):
    print(i, end=" ")  # 输出: 10 9 8 7 6 5 4 3 2 1
print()
6.3 遍历字典

我们可以使用for循环遍历字典的键、值或键值对:

代码语言:javascript
复制
# 遍历字典
person = {"name": "Alice", "age": 25, "city": "New York"}

# 遍历字典的键(默认)
print("字典的键:")
for key in person:
    print(key)

# 输出:
# 字典的键:
# name
# age
# city

# 明确遍历字典的键
print("\n字典的键:")
for key in person.keys():
    print(key)

# 遍历字典的值
print("\n字典的值:")
for value in person.values():
    print(value)

# 输出:
# 字典的值:
# Alice
# 25
# New York

# 遍历字典的键值对
print("\n字典的键值对:")
for key, value in person.items():
    print(f"{key}: {value}")

# 输出:
# 字典的键值对:
# name: Alice
# age: 25
# city: New York
6.4 for循环的应用场景

for循环适用于以下场景:

  1. 当你需要遍历一个序列或可迭代对象中的每个元素时
  2. 当你知道循环需要执行的次数时
  3. 当你需要对数据集合中的每个元素进行相同的操作时
代码语言:javascript
复制
# for循环的应用场景示例

# 场景1:计算列表中所有元素的和
numbers = [1, 2, 3, 4, 5]
sum_numbers = 0
for num in numbers:
    sum_numbers += num
print(f"列表中所有元素的和为: {sum_numbers}")  # 输出: 列表中所有元素的和为: 15

# 场景2:找出列表中的最大值
numbers = [3, 8, 1, 6, 2, 9, 4, 7, 5]
max_number = numbers[0]
for num in numbers[1:]:
    if num > max_number:
        max_number = num
print(f"列表中的最大值为: {max_number}")  # 输出: 列表中的最大值为: 9

# 场景3:统计字符串中每个字符出现的次数
word = "programming"
char_count = {}
for char in word:
    if char in char_count:
        char_count[char] += 1
    else:
        char_count[char] = 1
print("字符串中每个字符出现的次数:")
for char, count in char_count.items():
    print(f"{char}: {count}")

# 输出:
# 字符串中每个字符出现的次数:
# p: 1
# r: 2
# o: 1
# g: 2
# a: 1
# m: 2
# i: 1
# n: 1

7. 循环中的break、continue和else语句

Python提供了breakcontinueelse语句,用于在循环中控制程序的执行流程。

7.1 break语句

break语句用于立即终止当前循环,跳出循环体。

代码语言:javascript
复制
# break语句示例
# 找出100以内的第一个能被7整除的数
for i in range(1, 101):
    if i % 7 == 0:
        print(f"100以内的第一个能被7整除的数是: {i}")
        break  # 找到后立即跳出循环

# 输出: 100以内的第一个能被7整除的数是: 7

# 在嵌套循环中使用break(只跳出当前循环)
for i in range(1, 4):
    print(f"外层循环: {i}")
    for j in range(1, 4):
        if j == 2:
            break  # 只跳出内层循环
        print(f"  内层循环: {j}")

# 输出:
# 外层循环: 1
#   内层循环: 1
# 外层循环: 2
#   内层循环: 1
# 外层循环: 3
#   内层循环: 1
7.2 continue语句

continue语句用于跳过当前循环中的剩余代码,直接开始下一次循环。

代码语言:javascript
复制
# continue语句示例
# 打印1到10之间的所有奇数
for i in range(1, 11):
    if i % 2 == 0:
        continue  # 跳过偶数
    print(i, end=" ")

# 输出: 1 3 5 7 9

# 计算1到100之间所有能被3整除但不能被5整除的数的和
sum_numbers = 0
for i in range(1, 101):
    if i % 5 == 0:
        continue  # 跳过能被5整除的数
    if i % 3 == 0:
        sum_numbers += i
print(f"1到100之间所有能被3整除但不能被5整除的数的和为: {sum_numbers}")  # 输出: 1到100之间所有能被3整除但不能被5整除的数的和为: 1368
7.3 循环中的else语句

Python允许在循环后使用else语句,当循环正常结束时(即没有被break语句终止),会执行else语句块。

代码语言:javascript
复制
# 循环中的else语句示例

# 示例1:查找元素
fruits = ["apple", "banana", "orange", "grape"]
search_fruit = "watermelon"

for fruit in fruits:
    if fruit == search_fruit:
        print(f"找到了{search_fruit}!")
        break
else:
    print(f"没有找到{search_fruit}。")

# 输出: 没有找到watermelon。

# 示例2:判断是否为质数
number = 17
is_prime = True

if number <= 1:
    is_prime = False
else:
    for i in range(2, int(number ** 0.5) + 1):
        if number % i == 0:
            is_prime = False
            break

if is_prime:
    print(f"{number}是质数")
else:
    print(f"{number}不是质数")

# 输出: 17是质数

# 使用else语句简化质数判断
number = 17

if number <= 1:
    print(f"{number}不是质数")
else:
    for i in range(2, int(number ** 0.5) + 1):
        if number % i == 0:
            print(f"{number}不是质数")
            break
    else:
        print(f"{number}是质数")

# 输出: 17是质数

8. 嵌套循环

一个循环内部可以包含另一个循环,这就是嵌套循环。嵌套循环常用于处理多维数据结构,如二维列表。

代码语言:javascript
复制
# 嵌套循环示例

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

# 输出:
# 九九乘法表:
# 1 × 1 = 1	
# 1 × 2 = 2	2 × 2 = 4	
# 1 × 3 = 3	2 × 3 = 6	3 × 3 = 9	
# ...
# 1 × 9 = 9	2 × 9 = 18	...	9 × 9 = 81	

# 示例2:生成二维列表
# 创建一个3x3的矩阵,初始值为0
matrix = []
for i in range(3):
    row = []
    for j in range(3):
        row.append(0)
    matrix.append(row)
print("初始矩阵:")
for row in matrix:
    print(row)

# 输出:
# 初始矩阵:
# [0, 0, 0]
# [0, 0, 0]
# [0, 0, 0]

# 修改矩阵的值,使其成为单位矩阵
for i in range(3):
    for j in range(3):
        if i == j:
            matrix[i][j] = 1
print("\n单位矩阵:")
for row in matrix:
    print(row)

# 输出:
# 单位矩阵:
# [1, 0, 0]
# [0, 1, 0]
# [0, 0, 1]

# 示例3:遍历二维列表
numbers = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print("二维列表中的所有元素:")
for row in numbers:
    for num in row:
        print(num, end=" ")
    print()  # 换行

# 输出:
# 二维列表中的所有元素:
# 1 2 3 
# 4 5 6 
# 7 8 9 

9. 综合应用示例

现在,让我们通过几个综合应用示例来巩固所学的控制流语句知识。

9.1 示例1:猜数字游戏
代码语言:javascript
复制
# 猜数字游戏
import random

def guess_number_game():
    print("欢迎来到猜数字游戏!")
    print("我已经想好了一个1到100之间的数字。")
    print("你有5次机会来猜测这个数字。")
    
    target_number = random.randint(1, 100)
    attempts = 0
    max_attempts = 5
    
    while attempts < max_attempts:
        attempts += 1
        try:
            guess = int(input(f"第{attempts}次猜测,请输入一个1到100之间的数字: "))
            
            if guess < 1 or guess > 100:
                print("请输入1到100之间的数字!")
                continue
            
            if guess < target_number:
                print("太小了!")
            elif guess > target_number:
                print("太大了!")
            else:
                print(f"恭喜你猜对了!答案是{target_number}。")
                print(f"你用了{attempts}次尝试。")
                break
        except ValueError:
            print("请输入有效的数字!")
    else:
        print(f"很遗憾,你没有在{max_attempts}次尝试内猜对。")
        print(f"正确的数字是{target_number}。")
        
    play_again = input("是否再玩一次?(y/n): ")
    if play_again.lower() == 'y':
        guess_number_game()
    else:
        print("谢谢你玩猜数字游戏!再见!")

# 启动游戏
guess_number_game()
9.2 示例2:简单计算器
代码语言:javascript
复制
# 简单计算器
def simple_calculator():
    print("欢迎使用简单计算器!")
    print("支持的操作: +, -, *, /, %")
    
    while True:
        try:
            # 获取用户输入
            num1 = float(input("请输入第一个数字: "))
            operator = input("请输入运算符(+, -, *, /, %): ")
            num2 = float(input("请输入第二个数字: "))
            
            # 执行计算
            if operator == '+':
                result = num1 + num2
            elif operator == '-':
                result = num1 - num2
            elif operator == '*':
                result = num1 * num2
            elif operator == '/':
                if num2 == 0:
                    print("错误:除数不能为零!")
                    continue
                result = num1 / num2
            elif operator == '%':
                if num2 == 0:
                    print("错误:除数不能为零!")
                    continue
                result = num1 % num2
            else:
                print("错误:不支持的运算符!")
                continue
            
            # 显示结果
            print(f"{num1} {operator} {num2} = {result}")
            
            # 询问是否继续
            continue_calculation = input("是否继续计算?(y/n): ")
            if continue_calculation.lower() != 'y':
                print("谢谢你使用简单计算器!再见!")
                break
        except ValueError:
            print("错误:请输入有效的数字!")

# 启动计算器
simple_calculator()

实践练习

  1. 练习1:条件语句练习
    • 编写一个程序,根据用户输入的分数,输出对应的等级(A, B, C, D, F)
    • 编写一个程序,判断一个年份是否是闰年
    • 使用match-case语句(如果使用Python 3.10+)实现一个简单的菜单系统
  2. 练习2:循环语句练习
    • 使用while循环打印1到100之间的所有偶数
    • 使用for循环和range()函数计算1到100的和
    • 使用嵌套循环打印一个由星号组成的三角形
  3. 练习3:综合练习
    • 编写一个程序,生成斐波那契数列的前20个数
    • 编写一个程序,统计一段文本中每个单词出现的次数
    • 编写一个程序,实现简单的登录系统(使用预设的用户名和密码)

结论

要点

描述

价值

掌握Python的控制流语句,使程序能够根据不同情况做出决策和重复执行任务

行动

学习Python的函数和模块,将代码组织成更结构化、可重用的形式

恭喜你完成了Python控制流语句的学习!通过本教程,你已经了解了Python的条件语句(if-elif-else、嵌套条件语句、三元运算符、match-case语句)和循环语句(while循环、for循环、嵌套循环),以及如何在循环中使用break、continue和else语句。

控制流语句是Python编程的核心,它们使你的程序能够根据不同的条件做出不同的决策,或者重复执行某些任务。掌握好控制流语句,你就能够编写更加复杂和实用的Python程序。

在下一篇教程中,我们将学习Python的函数和模块,这将帮助你将代码组织成更加结构化、可重用的形式,提高代码的可读性和维护性。

记住,编程是一门需要实践的技能,所以请务必多写代码、多做练习,巩固所学的知识!

参考

来源

描述

Python官方文档

提供权威的Python控制流语句说明

菜鸟教程

适合初学者的Python控制流语句教程

W3School

提供Python控制流语句的详细讲解和实例

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 目录
  • 1. 条件语句(if-elif-else)
    • 1.1 if语句
    • 1.2 if-else语句
    • 1.3 if-elif-else语句
    • 1.4 条件表达式
  • 2. 嵌套条件语句
  • 3. 三元运算符
  • 4. match-case语句(Python 3.10+)
  • 5. 循环语句:while循环
    • 5.1 while循环的基本用法
    • 5.2 无限循环
    • 5.3 while循环的应用场景
  • 6. 循环语句:for循环
    • 6.1 for循环的基本用法
    • 6.2 range()函数详解
    • 6.3 遍历字典
    • 6.4 for循环的应用场景
  • 7. 循环中的break、continue和else语句
    • 7.1 break语句
    • 7.2 continue语句
    • 7.3 循环中的else语句
  • 8. 嵌套循环
  • 9. 综合应用示例
    • 9.1 示例1:猜数字游戏
    • 9.2 示例2:简单计算器
  • 实践练习
  • 结论
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档