Python条件控制深度解析,成为编程必备

本文详细介绍了Python中的条件控制语句,包括if、elif、else的基本语法,三元运算符,以及Python3.10引入的match...case语法。通过实例演示如何根据条件执行不同代码块,提升代码的逻辑复杂性。
摘要由CSDN通过智能技术生成

在Python中,条件控制至关重要,任何编程语言中,条件控制都是基础,它可以出现在Python中的任何位置。Python作为一种易学易用的编程语言,当然也提供了丰富的条件控制工具。Python允许程序根据不同的条件执行不同的代码块,从而实现更复杂的逻辑。那么下面我们一起来学习条件控制语句。

1. 基本语法

在 Python 中,条件语句用于根据条件的真假(True 或者 False)执行不同的代码块。下图是if语句的执行过程:从结构上看,条件语句决定了代码的执行方向,if 语句检查一个条件是否为真,如果为真,则执行 if 代码块中的代码。

语法如下:

if condition:
    # 如果条件为真,则执行这里的代码块
    statement1
    statement2
    # 可以有多个语句

# 可选,可以添加一个或多个 elif 语句
elif condition2:
    # 如果条件2为真,则执行这里的代码块
    statement3
    statement4
    # 可以有多个语句

# 可选,可以添加一个 else 语句
else:
    # 如果上述条件都不为真,则执行这里的代码块
    statement5
    statement6
    # 可以有多个语句

注意:

  • 可以有一个或多个 elif(else if)语句,用于检查多个条件。如果之前的 if 或 elif 条件为假,会继续检查下一个条件。
  • 可以有一个可选的 else 语句,用于指定如果上述条件都为假时要执行的代码块。

1.1 if语句

if语句用于在代码中创建条件分支,根据条件的真假来执行不同的代码块。

下面来看一段示例代码:

x = 10

if x > 5:
    print("x 大于 5")

这里的逻辑是,如果x的值大于5,就会打印出"x大于5"。否则,这个print语句就不会被执行。我们这里x=10,那么肯定会输出 x 大于 5 。大家一定要跟着练一下,下去试试。

1.2 if-else语句

if-else语句,允许在条件为假时执行另一段代码块。可以看上面1.1的代码只有一个if,也就是说,if存在即可,elif、else都是可选的,可以存在0到多个,只要合理即可。

if-else语法如下:

if condition:
    # 如果条件为真,执行这里的代码
else:
    # 如果条件为假,执行这里的代码 

下面继续来看一段示例代码:

x = 10

if x > 5:
    print("x 大于 5")
else:
    print("x 小于等于 5")

这里如果x大于5,那么输出x 大于 5,否则输出x 小于等于 5,输出如下结果:

x 大于 5

1.3 if-elif-else语句

elifelse if的缩写,允许我们在前一个条件为假时检查另一个条件。elif可以检查多个条件,其语法如下:

if condition1:
    # 如果条件1为真,执行这里的代码
elif condition2:
    # 如果条件2为真,执行这里的代码
else:
    # 如果以上条件都不为真,执行这里的代码 

示例代码:

x = 10

if x > 5:
    print("x 大于 5")
elif x == 5:
    print("x 等于 5")
else:
    print("x 小于 5")

这将输出:

x 大于 5

2. if语句嵌套

有时候我们会面对多种条件的逻辑,这时候需要嵌套条件语句,可以在一个 if 语句块内部嵌套另一个 if 语句块,这样可以根据更复杂的条件来执行代码块。

嵌套的 if 语句示例:

x = 10
y = 5

if x > 5:
    print("x 大于 5")
    
    if y > 5:
        print("y 大于 5")
    else:
        print("y 小于等于 5")
else:
    print("x 小于等于 5")

这里外部的 if 语句检查 x 是否大于 5。如果条件为真,它会执行内部的 if 语句块。如果 y 大于 5,它会打印 "y 大于 5"。如果 y 小于等于 5,它会打印 "y 小于等于 5"。

那么,这将输出:

x 大于 5
y 小于等于 5

3. 三元运算符

三元运算符是条件语句中,一种简化的条件表达式,也就是用一行代码中,根据条件为真或为假执行不同的操作。三元运算符的语法如下:

x = true_value if condition else false_value

条件中的 condition 是一个条件表达式,如果它为真,x 将被赋值为 true_value,否则将被赋值为 false_value

下面简单演示一下:

x = 10
y = 20

max_value = x if x > y else y

print(max_value)     # 输出:20

这里的逻辑是:如果 x 大于 ymax_value 将被赋值为 x 的值,否则将被赋值为 y 的值。这将输出 20,因为 y 的值是 20

当然,很多时候,我们用三元运算符,是为了简单赋值的操作。就如下面:

result = "Pass" if score >= 60 else "Fail"

如果 score 大于或等于 60result 将被赋值为 "Pass",否则将被赋值为 "Fail"。这样就可以简单判断成绩的合格与否。

4. match...case

在 Python 3.10 中引入的 match...case 语法是一种新的模式匹配语法,它提供了一种更简洁、更直观的方式来处理复杂的条件逻辑。这种语法在很多其他编程语言中都有类似实现,如 Rust、Scala、Kotlin 等。

match...case 语法允许你使用类似于 switch...case 的结构,但是更加灵活和强大。它允许你匹配对象的类型、结构、属性等,并根据匹配的结果执行相应的代码块。

与if-elif-else语句相比,match...case提供了一种更具表达力的方式来处理复杂的条件判断,更适合用于多个条件的情况,并且可以在一个结构中直观地展示多种模式的匹配。

match...case语法结构:

match expression:
    case pattern1:
        # 处理pattern1的情况
    case pattern2:
        # 处理pattern2的情况
    ...
    case _:
        # 处理其他情况,类似于default
  • expression是需要进行匹配的表达式。
  • pattern1pattern2, ... 是不同的模式,用来匹配 expression 的值。
  • _ 是通配符,用于匹配其他未列出的所有情况,类似于switch语句中的default

示例代码:

data = "String"

def check_data_type(data):
    match data:
        case int:
            print("整数")
        case str:
            print("字符串")
        case list:
            print("列表")
        case _:
            print("未知类型")

在这个例子中,根据传入的data的类型,打印出相应的信息。如果传入的data类型不在已知的类型中,则打印"未知类型"。

再次提醒:Python 3.10 中才引入match...case 语法,所以,得检查一下你的Python环境是不是Python 3.10,用python --version,去看看吧。

5. 练习题

判断用户是否成年的程序:

age = int(input("请输入您的年龄:"))

if age >= 18:
    print("您已经成年了!")
else:
    print("您还未成年。")

根据用户输入的成绩判断等级的程序:

score = float(input("请输入您的成绩:"))

if score >= 90:
    print("您的成绩为 A 级别")
elif score >= 80:
    print("您的成绩为 B 级别")
elif score >= 70:
    print("您的成绩为 C 级别")
elif score >= 60:
    print("您的成绩为 D 级别")
else:
    print("您的成绩为 E 级别,不及格")

根据用户输入的月份判断季节的程序:

month = int(input("请输入一个月份(1-12):"))

if month < 1 or month > 12:
    print("输入错误,请输入一个有效的月份!")
else:
    if month in [12, 1, 2]:
        print("这是冬季。")
    elif month in [3, 4, 5]:
        print("这是春季。")
    elif month in [6, 7, 8]:
        print("这是夏季。")
    else:
        print("这是秋季。")

这些程序中,input() 函数用于接收用户的输入,并将其转换为适当的类型(如 int 或 float)进行判断。

结语

Python 条件语句在实际编程中广泛应用。大家可以尝试着跟着代码一起学习,如果后面还有补充的,我将继续为大家分享。

我们下一篇文章将开始Python结构语法的讲解,继续学习、记录python的下一个知识点。

如果感觉阅读对您还有些作用,可以评论留言,关注我。谢谢您的阅读!

往期学习:

Python安装教程(版本3.8.10)windows10

Linux系统:安装Conda(miniconda)

Conda快速安装的解决方法(Mamba安装)

VSCode安装教程(版本:1.87.0)Windows10

Python基础语法:从入门到精通的必备指南

Python的基本数据类型

Python数据类型间的转换(隐式、显式)-CSDN博客

Python基础知识:运算符详解-CSDN博客

Python基础知识:数字类型及数学函数详解-CSDN博客

Python字符串操作及方法详解!一篇就搞定!-CSDN博客

Python列表及其操作详解,从此不再迷茫!-CSDN博客

Python元组(Tuple)深度解析!

Python字典的使用技巧(一篇详解)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TiYong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值