Python的流程控制:if条件判断


前面我们学习Python基础语法和数据类型的过程中,已经接触过很多Python的程序代码了,它们都是从第一行往后一行一行地执行,也就是从头到尾的顺序执行。

然而,计算机程序不只是顺序执行,为了实现更多更赋值的逻辑,程序的执行需要更多的流程控制,它们就是条件判断(if else)和循环(for, while)。

if-else 条件判断

条件判断:if else 语句

if 语句就是用来检查一个条件是否为 True 来判断程序的执行流程:
如果( if )条件为 True ,则执行一段代码(if代码段),否则( else )执行另外一段代码(else代码段)。

条件判断过程中, if 可以单独存在,后面的 else 可要可不要,根据实际情况而定。

条件判断的语法是这样的:

第一行以 if 开头,后面是空格,空格后面就是具体的条件表达式,条件表达式后面以冒号 : 结尾;
第二行从第一行的if位置缩进开始写,如果if代码块有多行,这个代码块的多行都要缩进;
接下来是 else ,其位置和 if 对齐,以冒号 : 结尾;
接着是else代码段,规则和if代码段一样。

让我们看看下面这段代码实例,来理解 if else 的使用:

# file: demo-if.py

age = 10

if age < 18:
    # 这是 if 条件为 True 的代码段
    print('you are under age')
else:
    # 这是 if 条件为 False 的代码段
    print('you are adult')

# 只有if 没有else
if age >= 18:
    print('you can drink')

上面这段代码根据年龄来判断是否成年,如果成年了可以有酒喝(注意:喝酒伤身,只可小酌哦)。

如果老猿我没有记错的话,这是该教程开写以来第一次写代码文件,那么多说几句如何来执行一个Python代码文件:
打开 VS code ,按ctrl+n新建一个文件,保存为 demo-if.py ,再录入这段代码再保存,在代码编辑区域点击鼠标右键,选择“在终端运行 Python 文件”,即可在下方的终端窗口看到程序的输出。

运行这段代码,输出为:

you are under age

如果把 age 改为 20,运行后的输出为:

you are adult
you can drink

条件判断可以有多种分支情况:

  • 单分支:只有if
  • 双分支:if 和 else
  • 多分支:if, elif, else

接下来我们看看多分支的情况:

hour = 10

if hour < 7:
    print('it is still night')
elif hour >= 7 and hour < 12:
    print('it is forenoon')
elif hour >= 12 and hour <= 13:
    print('it is noon')
elif hour > 13 and hour <= 19:
    print('it is afternoon')
else:
    print('it is night')

通过钟点来判断上午、中午、下午、晚上,这就出现了多赚钱情况,我们可以通过添加不同的 elif 条件来增加分支。 elif 就是 else if 的简写。

if 语句嵌套

if语句支持嵌套,但是嵌套的层级太多了就会降低程序的可读性和逻辑性。具体实践中不鼓励太多级嵌套哦:
Python的流程控制:if条件判断

不鼓励但有时候也得用,我们还是看看嵌套if语句的用法吧,比如上面的 hour < 7 我们还可以细分:

if hour < 7:
    if hour >= 0 and hour <= 5:
        print('it is wee hours')
    elif hour > 5:
        print('it is dawn')

总结

条件判断让我们在编程时实现复杂的逻辑,根据不同的条件执行不同的代码片段。