条件与分支是编程语言逻辑的开始,也是编程领域里面非常重要的内容。
本文将从【完全 0 基础】的视角,为你阐述 Python 中的条件分支。

条件分支语句

初学 Python 遇到的第一个门槛,就是条件分支,因为这里会涉及几个难点,罗列如下,如果你已经学过条件分支语句,可以对比复习一下。

  • 你已经学习了 Python 中的变量,运算符,数据类型等基本概念,条件分支将把之前的内容进行系统的结合;
  • 你将首次接触编程中的分支概念,代码将不再是从上到下依次执行;
  • 你将首次接触 Python 中的代码缩进,而它将提高你编写 Python 代码犯错的几率;
  • 你要时刻区分 ===

在正式学习前,再次确定如下 Python 基础,你已经学习并掌握:

  • Python 变量的声明、赋值、使用;
  • Python 常见的数据类型,例如整数,字符串;
  • Python 运算符,重点是比较运算符,逻辑运算符;
  • Python 输出函数;

如果以上内容都准备完毕,那接下来要了解的第一个知识点为:

在 Python 中条件分支语句使用 if else 实现,如果出现多分支,还会使用 elif 。

条件分支语句的语法格式

任何编程语法学习,都建议先看代码,读代码的同时,去学习标准语法。

# 声明变量 num,并且赋值为 1
num = 1
# 条件分支
if num > 5:
	print("变量 num 大于 5")
else:
	print("变量 num 小于等于 5")

上述代码就是一个标准的条件分支语句,提炼语法格式如下:

if 条件表达式:
	# 满足条件语句,执行此处代码
else:
	# 不满足,执行此处代码

注意上述注释 # 之前为 4 个空格,或者使用键盘 Tab 进行缩进,Python 通过空格缩进判定代码层级,该写法是 Python 非常重要的一个知识点。

缩进常见的错误如下:

  • 不该使用空格或 Tab 缩进的地方,使用了空格或 Tab;
  • 同级别的代码没有缩进;
  • 缩进量不对,有的地方是 3 个空格,有的地方使用了 1 个 Tab 或者其它数量的空格;
  • 缩进和空格混用。

例如下述代码,就会出现异常错误:

if user_score >= 60:
   print("你的成绩合格")
    print("代码缩进量不一致") # 注意此处
else:
    print("成绩不及格")

运行代码,会得到如下异常:

  File "E:/pythonProject/测试.py", line 29
    print("代码缩进量不一致")
    ^
IndentationError: unexpected indent

unexpected indent 翻译成中文就是 意外缩进

同时在 Python 中只是行业建议缩进量为 4 空格,你可以在相同的层级缩进 3 个或者 1 个空格,都没有问题,只要保证该层级一致即可。

if user_score >= 60:
 # 此处的缩进量为1个空格
 print("你的成绩合格")
 print("代码缩进量为1空格")
else:
    print("成绩不及格")

条件表达式

上述语法格式中提及了条件表达式,你可以简单将其看为一个返回 True 或者 False 的表达式。

下述代码举例,都可以放在条件表达式位置。

a == 1
b > 5
a <= 4
my_str == "橡皮擦"
my_str != "橡皮擦"

只要一个表达式返回值是一个布尔类型,或者可以隐性转换为布尔类型,都可以放在条件表达式位置上。同时条件表达式位置,支持逻辑运算符,即 andornot

如果在编程逻辑中,出现三种以上分支逻辑,可以使用 elif 进行编码,语法格式如下:

if 条件表达式:
	# 执行代码
elif 条件表达式:
	# 执行代码
elif 条件表达式:
	# 执行代码
else:
	# 执行代码

参考上述格式,可以进行一个成绩判断,即根据得分展示 ABC……

# 获取成绩
user_score = input("请输入你的得分:")
# 成绩转换为 int 类型
user_score = int(user_score)

if user_score >= 90:
    print("你的成绩为A")
elif user_score >= 80 and user_score < 90:
    print("你的成绩为B")
elif user_score >= 70 and user_score < 80:
    print("你的成绩为C")
elif user_score >= 60 and user_score < 70:
    print("你的成绩为D")
else:
    print("成绩不及格")

如果条件表达式由多个语句构成,你可以使用小括号,使得代码更加清晰。

if user_score >= 90:
    print("你的成绩为A")
elif (user_score >= 80 and user_score < 90):
    print("你的成绩为B")

后续扩展

在部分代码编写时,有时只需要一个 if 判断即可完成业务逻辑,即条件分支语句只由 if 语句构成,代码如下:

if user_score >= 60:
	print("及格")

在 Python 中没有 switch/case 语句,如果你学习过其它语言,此点要特别注意一下。

else 除了应用在上述分支语句以外,在 for/while 循环try/except 语句 中也存在 else 分支,这点可以阅读 《滚雪球学Python系列》,在循环与异常两小节进行学习。

除了上述内容外,Python分支语句还有更加高级的用法,提高知识点如下所示

  1. 分支的多层嵌套,例如在 if 分支中,再嵌套一个或多个条件分支语句, 但是请尽量避免分支嵌套,因为层级越多,越容易出现错误;
  2. 假如使用了多层分支,你可以使用 returnraise 等语句提前结束分支;
  3. 如果条件分支逻辑中的条件表达式过于复杂,即 if 语句后面的表达式过长,可以对其进行封装,当然这些需要你掌握了函数相关知识,才可以实现;
  4. 不同分支下重复的代码,可以进行封装,简化代码;
  5. 在Python中还可以使用三元表达式编写分支,但三元表达式阅读性较差,建议只应用在简单的逻辑处理上;

更多的条件分支语法,需要我们进一步学习 Python 语言才能扩展,作为零基础的你,可以优先掌握本文所涉及知识点,然后学习后续内容即可。

收藏时间

来都来了,不发个评论,点个赞,收个藏吗?

今天是持续写作的第 198 / 200 天。
可以关注我,点赞我、评论我、收藏我啦。

更多精彩

《Python 爬虫 100 例》只需要 39.9 元,即可享受 100+篇博客阅读权,每篇文章不到 4 毛钱哦。

  • Python 爬虫 100 例教程导航帖(已完结)

更多推荐

3句话,让你学会Python条件与分支,那是不可能的……