Python 分支结构

语句和代码块

程序是由语句和表达式构成的。

还有一些语句不仅仅由一行代码构成,例如分支和循环语句,在选择不同的分支或者 循环条件满足的情况下,有时需要执行多行代码。这样的语句称为复合语句

缩进的作用
在 Python 中, 要求使用缩进来标识代码块。 相同层级的代码必须以垂直对齐的方式来组织, 即相同的缩进。

一些代码行可以作为一组,放在“代码块”中可以根据代码行的缩进,知道代码块的开始和结束。代码块有3 条规则。

  1. 缩进增加时,代码块开始。
  2. 代码块可以包含其他代码块。
  3. 缩进减少为零,或减少为外面包围代码块的缩进,代码块就结束了。

Python语言采用严格的“缩进”来表明程序的格式框架。缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关系。

Python 对于缩进的数量没有严格规定,比较常见的是使用 4 个空格或者 1 个制表符。但最好不要在同一段代码中混合使用空格和制表符,这样可能会引起语法错误。

Python 的复合语句首行总是使用冒号:结尾。输入冒号后回车,新的代码行将自动缩进,以便于输入代码块中的语句。

1
2
首行语句: 
内嵌代码块

条件表达式

控制语句的开始部分通常是“条件表达式”。分支语句通过条件表达式确定选择执行的代码块;循环语句通过条件表达式决定是否执行循环体中的代码块。通常来说,条件表达式的结果为一个布尔值,即True或者False,例如关系运算或者逻辑运算的表达式。控制语句根据条件是True还是False来决定做什么。

当表达式的最终值是下表中的某个值时,会被认作是假值:

对象类型对象类型
布尔Falsenull类型None
整型0浮点型0.0
空字符串‘’空列表[]
空元组()空字典{}
空集合set()

除了上表所列出来的值,其他的值都会被认作是真值。


分支结构

分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,包括单分支结构和二分支结构。由二分支结构会组合形成多分支结构。

分支结构

单分支结构:if语句

单分支结构的条件为真值True时,执行代码块,然后执行后续代码;而条件为假值False时,跳过代码块,继续执行后续代码。

单分支结构的语法如下所示:

1
2
if condition:
statements

代码实例:

1
2
3
age = input(请输入你的年龄:)
if age < 0:
print('输入有误,请检查输入。')

else 语句

if子句后面有时候也可以跟着else语句。只有if语句的条件为False时,else子句才会执行。在英语中,else语句读起来可能是:“如果条件为真,执行这段代码。否则,执行那段代码”。else语句不包含条件,在代码中,else语句中包含下面部分:

1
2
3
4
if condition:
statements1
else:
statements2

代码实例:

1
2
3
4
5
ID = input(请输入身份证号码:)
if int(ID[-2]) % 2:
print('男')
else:
print('女')

多分支结构:elif子句

虽然只有ifelse子句会被执行,但有时候可能你希望,“许多”可能的子句中有一个被执行。elif语句是“否则如果”,总是跟在if或另一条elif语句后面。它提供了另一个条件,仅在前面的条件为False时才检查该条件。在代码中,elif语句总是包含以下部分:

1
2
3
4
5
6
if condition1:
statements1
elif condition2:
statements2
else:
statements3

代码实例:

1
2
3
4
5
6
7
ID = input(请输入身份证号码:)
if len(ID) != 18:
print('身份证号错误。')
elif int(ID[-2]) % 2:
print('男')
else:
print('女')

三元表达式: if/else

Python中的三元表达式可以将if-else语句放到一行里。语法如下:

1
True_expression if condition else False_expression

真值表达式或假值表达式可以是任何Python代码。它和下面的代码效果相同:

1
2
3
4
if condition:
a = True_expression
else:
a = False_expression

代码实例:

1
2
3
ID = input('请输入身份证号码:')
gender = '男' if int(ID[-2]) % 2 else '女'
print(gender)