Python机器学习原理与算法实现
上QQ阅读APP看书,第一时间看更新

2.1.1 选择语句

选择语句对应选择执行,选择语句包括三种:if语句,if…else语句和if…elif…else语句。这三种选择语句之间也可以相互嵌套。

1.if语句

if语句相当于“如果……就……”,基本语法格式为:

     if 表达式:
        代码块

表达式可以为一个布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式的值为真(True),则执行下面的代码块,如果表达式的值为假(False),则跳过下面的代码块,执行代码块后面的语句。需要注意的是,当表达式的值为非零的数字或者非空的字符串时,if语句也会认为是条件成立。

2.if…else语句

if…else语句相当于“如果……就……,否则……”,基本语法格式为:

     if 表达式:
         代码块1
     else:
         代码块2

表达式可以为一个布尔值或者变量,也可以是比较表达式或者逻辑表达式。如果表达式的值为真(True),则执行代码块1,如果表达式的值为假(False),则执行代码块2。

if…else语句也可以简化为条件表达式,比如在输入年份时,如果想要把2022年以前的年份统一设置为2022年,则输入以下代码:

     x=2022     # 为x赋值
     if x>2022:       # 如果x大于2022,则y=x,否则y=2022
         y=x
     else:
         y=2022
     print(y) # 输出y的值

上述代码也可以简化为条件表达式:

     x=2022     # 为x赋值
     y=x if x>2022 else 2022 # 通过条件表达式得到y值
     print(y)   # 输出y的值

3.if…elif…else语句

if…elif…else语句相当于“如果……则……,否则如果满足某种条件则……,不满足某种条件则……,”,基本语法格式为:

     if 表达式1:
         代码块1
     elif表达式2:
         代码块2
     elif表达式3:
         代码块3
     …
     else:
         代码块n

表达式可以为一个布尔值或者变量,也可以是比较表达式或者逻辑表达式。如果表达式1的值为真(True),则执行代码块1;否则判断表达式2,如果表达式2的值为真(True)则执行代码块2,如果表达式2的值不为真,则继续向下判断表达式3……最后如果所有的表达式均不为真,则执行代码块n。

4.三种选择语句之间的嵌套

在if语句中嵌套if…else语句:

     if 表达式1:
       if 表达式2:
         代码块1
       else:
         代码块2

上述语句的意思是,如果表达式1的值为真(True),则执行下面的if…else语句,否则跳过下面的代码块,执行代码块2后面的语句。

在if…else语句中嵌套if…else语句:

     if 表达式1:
       if 表达式2:
         代码块1
       else:
         代码块2
     else:
       if 表达式3:
         代码块3
       else:
         代码块4

上述语句的意思是,如果表达式1的值为真(True),则执行第一条if…else语句;如果表达式1的值不为真,则执行第二条执行if…else语句。

注意

在Python中,流程控制语句的代码之间需要区分层次,采取的方式是使用代码缩进和冒号(:)。行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束则代码块也就结束。同一层次代码块的缩进量必须相同,一般情况下以4个空格作为一个缩进量,如果同一层次代码块的缩进量不同或输入的空格数不同,系统就会提示错误。