Python学习之条件控制

一、基本语法

在 Python 中,条件语句用于根据条件的真假(True 或者 False)执行不同的代码块。

语法如下:

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

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

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

注意:

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

1. if语句

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

下面来看一段示例代码:

x = 10
if x > 5:
    print("x 大于 5") # x 大于 5

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

2. if-else语句

if-else语法如下:

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

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

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

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

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

二、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 小于等于 

三、三元运算符

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

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"。这样就可以简单判断成绩的合格与否。

四、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"

#🌾:match...case
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,去看看吧。

posted on 2024-12-04 15:53  梁飞宇  阅读(130)  评论(0)    收藏  举报