Python条件控制
if 语句
if语句是Python中最基本的条件语句之一,通常用于根据条件执行不同的代码块。
if语句的一般形式如下:
if condition: # 如果条件为真,则执行这里的代码块 else: # 如果条件为假,则执行这里的代码块
其中,condition是一个布尔表达式,它的值为True或False。如果condition为True,则执行if语句块中的代码;否则执行else语句块中的代码。
在Python中,if语句可以包含多个elif子句,用于测试多个条件。
elif子句的一般形式如下:
if condition1: # 如果条件1为真,则执行这里的代码块 elif condition2: # 如果条件2为真,则执行这里的代码块 elif condition3: # 如果条件3为真,则执行这里的代码块 else: # 如果所有条件都为假,则执行这里的代码块
在这个例子中,如果condition1为True,则执行第一个代码块;否则,如果condition2为True,则执行第二个代码块;以此类推,直到最后一个else语句块。
在Python中,if语句可以嵌套,也就是说,在if语句块中可以包含另一个if语句块。例如:
if condition1: if condition2: # 如果两个条件都为真,则执行这里的代码块 else: # 如果第一个条件为真,但第二个条件为假,则执行这里的代码块 else: # 如果第一个条件为假,则执行这里的代码块
在这个例子中,如果condition1为True,则继续测试condition2。如果condition2也为True,则执行第一个代码块;否则,执行else语句块。
总之,if语句是Python中最常用的条件语句之一,可以根据条件执行不同的代码块,使程序具有更好的灵活性和适应性。
if 嵌套
在Python中,可以使用if语句嵌套来实现更复杂的条件控制。if语句嵌套是指在if语句中嵌套另一个if语句,以此类推。它可以用于检测多个条件,根据不同的条件执行不同的代码块。
if语句嵌套的语法如下:
if condition1: if condition2: statement(s) else: statement(s) else: statement(s)
其中,condition1和condition2是要检测的条件,statement(s)是要执行的语句块。如果condition1为真,则检测condition2,如果condition2为真,则执行if语句块中的代码,否则执行else语句块中的代码。如果condition1为假,则执行else语句块中的代码。
示例代码
x = 10 y = 5 if x > 0: if y > 0: print("x and y are both positive") else: print("x is positive but y is non-positive") else: print("x is non-positive")
输出结果:
x and y are both positive
需要注意的是,if语句嵌套可以无限嵌套,但是过多的嵌套会使代码难以理解和维护,因此应该尽量避免过多的嵌套。
match…case
match…case是Python 3.10中引入的一种新的条件语句,用于替代旧的switch…case语句。match…case语句的一般形式如下:
match <value>: case <pattern1>: # 如果<value>与<pattern1>匹配,则执行这里的代码块 case <pattern2>: # 如果<value>与<pattern2>匹配,则执行这里的代码块 ... case <patternN>: # 如果<value>与<patternN>匹配,则执行这里的代码块 case _: # 如果<value>与所有模式都不匹配,则执行这里的代码块
其中,是要匹配的值,是一种模式,用于匹配。如果与某个匹配,则执行相应的代码块;否则,继续测试下一个,直到找到匹配的模式或者执行最后一个case _:语句块。
下面是一个示例,演示如何使用match…case语句:
def get_day_of_week(day): match day: case "Monday": return 1 case "Tuesday": return 2 case "Wednesday": return 3 case "Thursday": return 4 case "Friday": return 5 case "Saturday": return 6 case "Sunday": return 7 case _: raise ValueError("Invalid day of week")
在这个例子中,get_day_of_week()函数使用match…case语句将字符串类型的星期几转换为数字类型的星期几。如果输入的字符串不是有效的星期几,则抛出一个ValueError异常。
总之,match…case语句是Python 3.10中引入的一种新的条件语句,可以替代旧的switch…case语句,使代码更加简洁和易读。