分支语句-if
大家好,这个章节我们来介绍一下 python 中列表的一些常用操作。
简介
在生活中,总是要做出许多选择。
比如在学习的时候有文科和理科区分,对应的学生们就有擅长、喜欢文科和擅长、喜欢理科的。
针对于不同的擅长、喜欢的方向在将来也有不同的职业发展,擅长、喜欢文科可能以后的择业就会偏向历史、地理等。
而擅长、欢理科的可能以后的择业方向就有数学、生物、编程(软件)等等方向;
在大方向的选择之后还有更细粒度的选择方向,拿大家学习的软件从业来讲,还有软件测试、软件开发、产品和项目经理等方向可供选择。

在生活中,我们每天都需要做选择。比如,大家在学习的时候,可能会选择文科或理科。有些同学擅长文科,就可能以后会从事历史、地理等相关工作;而擅长理科的,可能就会从事数学、生物、编程(软件开发)等行业。就像你选择了一个大方向,接下来还有很多更小的方向可以选择。比如你如果进入了软件行业,就有很多不同的岗位可以选择:软件测试、开发、产品经理、项目经理等等。每个方向都会有不同的挑战和机会。
程序也是一样。不同场景下做出的不同行为,就是程序中的选择语句,也称为条件语句,即按照条件选择执行不同的代码片段。
下面给出几个常见的例子:
- 如果购买商品成功,用户余额减少,用户积分增多。
- 如果输入的用户名和密码正确,提示登录成功,进入网站,否则,提示登录失败。
- 如果用户使用微信登录,则使用微信扫一扫;如果使用 QQ 登录,则输入 QQ 号和密码; 如果使用微博登录,则输入微博账号和密码;如果使用手机号登录,则输入手机号和验证码。
程序设计其实也很像我们生活中的选择,程序中的“选择语句”就是用来根据条件做不同的决策。也就是说,程序会根据给定的条件去执行不同的代码。这种条件判断,我们称为条件语句或者选择语句。举几个例子:比如说,购买商品成功后,用户的余额会减少,积分会增加;还有像登录系统,如果用户名和密码正确,就提示“登录成功”,否则提示“登录失败”;如果你选择用微信登录,就让你扫码;用QQ登录就输入QQ号和密码;用微博登录就输入微博账号和密码;用手机号登录就输入手机号和验证码。
Python 中选择语句主要有 3 种形式,分别为
if语句、if…else语句和if…elif…else多分支语句。
在 Python 中,我们可以用三种主要的方式来做选择判断:if 语句、if else 语句,还有 if elif else 语句。
if 条件判断
Python 中使用 if 关键字实现选择语句,其最简单的语法形式如下:
if 表达式:
语句块
Python 的 if 语句非常简单。它的基本形式是这样的:if 表达式冒号,然后在下一行缩进 4 个空格,再写符合条件要执行的语句块。
其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如,是否是测试工程师)。
如果表达式的值为真,则执行 测试工程师 的打印;如果表达式的值为假,就跳过 语句块,继续执行后面的语句。这种形式的 if 语句相当于汉语里的 如果……就……,其流
程图如下所示。
这里的表达式可以是任何条件,比如判断某个变量是不是某个值,或者直接用一个布尔值。简单来说,如果表达式为真,程序就会执行后面的代码,否则就跳过。举个例子:如果某个变量的值是“测试工程师”,那么就会打印测试工程师。不管条件成立不成立,都会打印学测试认准霍格沃兹测试开发。
把以上流程转换成为Python代码
student = "测试工程师"
if student == "测试工程师":
print("测试工程师")
print("学测试\n认准霍格沃兹测试开发")
把以上流程转换成为 Python 代码就可以使用 if 条件语句。这里我们先定义一个变量 student,然后把测试工程师这个字符串赋值给它。接下来使用 if 判断 student 变量的值如果与测试工程师这个字符串相等,然后在缩进之后的代码块中使用 print 函数打印一下测试工程师这个字符串到控制台。接下来在和 if 条件相同缩进的位置再使用 print 函数打印一下学测试认准霍格沃兹测试开发。可以在学测试后面使用斜杠n来完成换行。这里一定要注意代码的缩进。最后一行代码只有和 if 缩进一致,才代表已经不属于 if 条件下的语句块了。
if...else 判断语句
如果遇到只能二选一的条件,Python 中提供了 if…else 语句解决类似问题,其语法格式如下:
if 表达式:
语句块1
else:
语句块2
如果你需要做一个二选一的判断,Python 提供了 if else 语句,格式是这样的。if 语句和前面的一样。else 后面就不需要跟表达式了,代表凡是不符合 if 后表达式的情况,都属于 else 的场景。然后在 else 下面缩进 4 个空格之后写不符合条件之后要完成的语句块。
使用 if…else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如判断 school 是否为 hogwarts)。
如果满足条件,则执行 if 后面的语句块(打印霍格沃兹测试开发),否则,执行 else 后面的语句块(打印测试开发)。
这种形式的选择语句相当于汉语里的 如果……否则……,其流程图如图所示。
使用 if else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式,比如这个例子中判断 school 是否为 hogwarts。在这个流程图中,如果满足条件,则执行 if 后面的语句块打印霍格沃兹测试开发,否则,执行 else 后面的语句块打印测试开发。这种形式的选择语句相当于汉语里的如果什么否则什么的场景。
把以上流程转换成为 Python 代码
student = "测试工程师"
school = "hogwarts"
if school == "hogwarts":
print("霍格沃兹测试开发")
else:
print("测试开发")
把以上流程转换成为 Python 代码可以这么写。这里如果 school 是hogwarts,就打印霍格沃兹测试开发,如果不是就打印测试开发。
if...elif...else 多重条件
网上购物时,通常都有多种付款方式以供选择,比如支付宝支付、银联支付、微信支付等等。这时用户就需要从多个选项中选择一个。
在开发程序时,如果遇到多选一的情况,则可以使用 if…elif…else 语句。
该语句是一个多分支选择语句,通常表现为 如果满足某种条件,进行某种处理,否则,如果满足另一种条件,则执行另一种处理……。
if 表达式:
语句块1
elif 表达式:
语句块2
...
else:
语句块n
当你需要做多个条件判断时,if elif else 语句就非常有用了。举个例子,购物时你有多种支付方式可以选择:支付宝、微信、银联等等。这个时候,你可以用 if elif else 来判断。这里 if 和 elif 后面都可以跟条件判断的表达式。
使用 if…elif…else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如判断 food 是否为 apple)。
如果满足条件,则执行 if 后面的语句块(打印苹果),如果表达式为假,就跳过第一个语句块,进行第二个表达式的执行(例如判断 food 是否为 banana)。
如果第二个表达式满足条件,则执行 elif 后面的语句块(打印香蕉),如果第二个表达式为假,就跳过第二个语句块,进行第三个表达式的执行(例如判断 food 是否为 orange)。
如果第三个表达式满足条件,则执行 elif 后面的语句块(打印橘子),如果第三个表达式为假,就跳过第三个语句块,执行 else 后面的语句块。
只有在所有表达式都为假的情况下,才会执行 else 中的语句。
使用 if elif else 语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如判断 food 是否为 apple)。如果满足条件,则执行 if 后面的语句块,如果表达式为假,就跳过第一个语句块,进行第二个表达式的执行。如果第二个表达式满足条件,则执行 elif 后面的语句块,如果第二个表达式为假,就跳过第二个语句块,进行第三个表达式的执行。如果第三个表达式满足条件,则执行 elif 后面的语句块,如果三个表达式为假,就跳过第三个语句块,执行 else 后面的语句块。所以说,只有在所有表达式都为假的情况下,才会执行 else 中的语句。
这种形式的选择语句相当于汉语里的 如果……如果……否则……,其流程图如图所示。
这种形式的选择语句相当于汉语里的如果、如果、否。比如你想判断输入的水果是什么,可能是苹果、香蕉、橘子,也可能是什么别的水果。如果你输入的是苹果,就打印苹果,如果是香蕉就打印香蕉,如果是橘子就打印橘子,如果都不是,就打印我不知道你输入的是什么。
把以上流程转换成为 Python 代码
food = input("请输入水果的类型:\n")
if food == "apple":
print("你输入的是苹果")
elif food == "banana":
print("你输入的是香蕉")
elif food == "orange":
print("你输入的是橘子")
else:
print("你触及了我翻译的盲区了:(")
把以上流程转换成为 Python 代码就可以这样来写。首先我们使用 input 接受用户输入的水果,把输入结果赋值给 food 变量。接下来就是用 if elif 来判断输入的水果到底是什么,打印不同的提示信息。如果这些条件都不符合,再在 else 中打印对应的提示信息。
分支嵌套
前面介绍了 3 种形式的 if 选择语句,这 3 种形式的选择语句之间都可以进行互相嵌套。例如,在最简单的 if 语句中嵌套 if…else 语句,形式如下:
if 表达式 1:
if 表达式 2:
语句块 1
else:
语句块 2
之前提到的这些条件语句,不仅可以单独使用,还可以嵌套使用。就是说,你可以在一个 if 语句里再加一个 if else。
也能在 else 语句中嵌套
if 表达式 1:
if 表达式 2:
语句块 1
else:
语句块 2
else:
if 表达式 3:
语句块 3
else:
语句块 4
也能在 else 语句中嵌套,嵌套之后的语法是这样的。
还能在 elif 语句中嵌套
if 表达式 1:
if 表达式 2:
语句块 1
else:
语句块 2
elif 表达式 3:
if 表达式 4:
语句块 3
else:
语句块 4
else:
if 表达式 5:
语句块 5
else:
语句块 6
甚至还可以在 elif 语句中嵌套,语法是这样的。
if 选择语句可以有多种嵌套方式,在开发程序时,可以根据自身需要选择在合适的分支基础上进行嵌套,但一定要严格控制好不同级别代码块的缩进量。
通过转换出来的代码,就能使用条件语句 if 实现学生的求职意向调查的简单逻辑了。
课程开始的例子转换成 Python 代码:
name = input("请输入你的名字:\n")
hobby = int(input("请选择你擅长/喜欢的科目,文科选1,理科选2:\n"))
if hobby == 1:
orientation_choose = int(input("请选择你想要的职业,历史选1,地理选2:\n"))
if orientation_choose == 1:
orientation = "历史"
else:
orientation = "地理"
else:
orientation_choose = int(input("请选择你想从业的方向:数学选1,生物选2,编程选3\n"))
if orientation_choose == 1:
orientation = "数学"
elif orientation_choose == 2:
orientation = "生物"
else:
coder_choose = int(input("请选择你想从事的软件职业方向:测试选1,开发选2,产品选3,项目经理选4\n"))
if coder_choose == 1:
orientation = "测试"
elif coder_choose == 2:
orientation = "开发"
elif coder_choose == 3:
orientation = "产品"
else:
orientation = "项目经理"
print(f"{name} 同学,你意向的职业为: {orientation}")
虽然 if 选择语句可以有多种嵌套方式,在开发程序时,可以根据自身需要选择在合适的分支基础上进行嵌套,但一定要严格控制好不同级别代码块的缩进量。比如你可以在判断喜欢文科还是理科后,再根据选择判断是学历史还是地理,或者如果选择了理科,再判断是想做数学、还是生物,还是编程方向。具体的代码就长得像这样。在这个代码中,我们首先判断是不是文科或者理科,然后根据选择进一步做出细分,最后输出最终的职业意向。
总结
if条件判断if...else判断语句if...elif...else多重条件- 分支嵌套
下面我们来总结一下。if 条件判断用来做最基本的条件判断。if else 判断语句用来做二选一的判断。if elif else 多重条件判断用来做多个条件判断。分支嵌套可以在条件语句里嵌套其他条件语句,做更复杂的判断。这些条件判断语句是编程中的基础,掌握它们之后,你就能做很多基于条件的决策了。