14.从入门到精通:Python条件控制 if 语句 if 嵌套

14.从入门到精通:Python条件控制 if 语句 if 嵌套

  • Python条件控制
    • if 语句
    • if 嵌套
    • match...case

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>:
        # 如果匹配,则执行这里的代码块
    case <pattern2>:
        # 如果匹配,则执行这里的代码块
    ...
    case <patternN>:
        # 如果匹配,则执行这里的代码块
    case _:
        # 如果与所有模式都不匹配,则执行这里的代码块

其中,是要匹配的值,是一种模式,用于匹配。如果与某个匹配,则执行相应的代码块;否则,继续测试下一个,直到找到匹配的模式或者执行最后一个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语句,使代码更加简洁和易读。

你可能感兴趣的:(Python从入门到精通,python,开发语言)