在3.3节中讲解了if语句条件成立时的处理方法,如果条件不成立该如何处理呢?可以使用if条件分支语句。使用if条件分支语句可以处理条件成立和条件不成立两种情况,其语法结构如图3-15所示。
图3-15 if条件分支语句的语法结构
● if是关键字,固定写法,不能有任何变化。
● conditional_test是条件测试表达式,返回的结果是逻辑值(True或False)。
● “:”是关键字,固定写法,不能有任何变化。
● do something1是条件测试表达式返回值为True时执行的处理语句。
● else是关键字,固定写法,不能有任何变化。注意,书写else关键字时要与if关键字对齐,相对if关键字,else是没有缩进的。
● do something2是条件测试表达式返回值为False时执行的处理语句。
在学习了if条件分支语句的语法后,下面看一个简单的案例。案例代码如下所示,代码在“Chapter-3-13.py”文件中。
先看条件成立时的运算逻辑。
第1行代码 if 100>=90: ,判断100是否大于或等于90,当前条件是成立的。
第2行代码 print('优秀') ,由于第1行代码条件判断的结果是成立的,所以执行该行代码,在屏幕上输出“优秀”。
第3行代码 else: ,准备执行条件不成立时的语句,固定写法。
第4行代码 print('普通') ,由于第1行代码条件判断的结果是成立的,所以不执行该行代码。
再看条件不成立时的运算逻辑。
第5行代码 if 80>=90: ,判断80是否大于或等于90,当前条件是不成立的。
第6行代码 print('优秀') ,由于第5行代码条件判断的结果是不成立的,所以不执行该行代码。
第7行代码 else: ,准备执行条件不成立时的语句,固定写法。
第8行代码 print('普通') ,由于第5行代码条件判断的结果是不成立的,所以执行该行代码,在屏幕上输出“普通”。
实际上,if…else…条件分支语句可以写在一行,也叫三目运算。如果处理语句不太复杂,则可以使用这种写法,语法结构如图3-16所示。
图3-16 if条件分支语句单行写法的语法结构
接下来看看这种单行写法的案例,代码如下所示,代码在“Chapter-3-14.py”文件中。
第1行代码 print('优秀')if 100>=90 else print('普通') ,因为100>=90是成立的,所以会执行代码 print('优秀') 。
第2行代码 print('优秀')if 80>=90 else print('普通') ,因为80>=90是不成立的,所以会执行代码 print('普通') 。
统计[95,89,69,100,88,94,91]列表中数字大于或等于90的个数和数字小于90的个数,代码如下所示,代码在“Chapter-3-15.py”文件中。
第1行代码 lst=[95,89,69,100,88,94,91] ,将列表赋值给lst变量。
第2行代码 counter_a,counter_b=0,0 ,分别初始化counter_a和counter_b,用于存储后面判断条件成立时的次数和条件不成立时的次数。
第3行代码 for num in lst ,循环读取lst列表中的数字,赋值给num变量。
第4~7行代码,在for循环体中执行,对循环读取的num变量的值进行判断,如果条件成立,则累加计数到counter_a变量中;如果条件不成立,则累加计数到counter_b变量中。
第8行代码 print('>=90有{}个,<90有{}个。'.format(counter_a,counter_b)) ,在屏幕上输出统计结果,最后返回的结果为“>=90有4个,<90有3个”。