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语句
elif
是else 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 小于等于 5
三、三元运算符
三元运算符是条件语句中,一种简化的条件表达式,也就是用一行代码中,根据条件为真或为假执行不同的操作。三元运算符的语法如下:
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
大于 y
,max_value
将被赋值为 x
的值,否则将被赋值为 y
的值。这将输出 20
,因为 y
的值是 20
。
当然,很多时候,我们用三元运算符,是为了简单赋值的操作。就如下面:
result = "Pass" if score >= 60 else "Fail"
如果 score
大于或等于 60
,result
将被赋值为 "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
是需要进行匹配的表达式。pattern1
,pattern2
, ... 是不同的模式,用来匹配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,去看看吧。