默认情况下,Python程序的执行是顺序执行,不过这样不能满足我们开发中的需求,比如我们根据用户输入的年龄给出不同的输出结果,那么此时就需要用到Python的条件控制语句if else。
下面分别介绍Python if else 几种不同的语法。
if 语句
语法:
if [boolean expression]:
statement1
statement2
...
statementN
if 关键字后面可以跟任何计算结果为True或False的布尔表达式,然后输入英文的冒号: 回车,接下来可以编码您在布尔表达式后面的程序。
注意:回车后的缩进建议为4个空格,保持整个代码缩进的统一。
下面看一个if条件表达式的例子:
#!/usr/bin/python
# coding=utf-8
age = 24
if age>=22:
print('您已满男性适婚年龄')
上面的例子中,因为 age>=22,所以执行if条件的后面的代码块。多个if的例子:
#!/usr/bin/python
# coding=utf-8
age = 24
if age>=22:
print('您已满男性适婚年龄')
age2 = 22
if age2>=20:
print('您已满女性适婚年龄')
上面的例子,我们增加了一个if条件判断,这个和上一个例子没有太多的区别。
if else 语句
if else 语句是在前面的if语句的基础上面加了一个else 流程控制,其中else 跟在if 条件语句的后面,当if 条件为False的时候执行else 条件后面的代码块。
语法如下:
if [boolean expression]:
statement1
statement2
...
statementN
else:
statement1
statement2
...
statementN
我们看到else关键字要和if关键字对齐,也是输入英文的冒号: 回车,接下来可以编码您在布尔表达式后面的程序。
通过if else 我们可以实现比if条件语句更多个功能,看下面的例子:
#!/usr/bin/python
# coding=utf-8
age = 24
if age>=22:
print('您已满男性适婚年龄')
else:
print('您不到男性适婚年龄')
上面的例子中,当输入的age>=22时,输出'您已满男性适婚年龄',否则将输出:'您不到男性适婚年龄'。
对于if else 可以实现我们的条件判断,但是当条件很多的时候它就又不适用了,比如:
期末成绩,老师给学生分数评级,60到70为及格,70-80为中,80到90为良,90-100为优秀。
接下来介绍elif 条件语句可以解决我们的问题。
elif 条件语句
elif 条件语句是在if和else之间使用的条件判断语句,而且它可以是多个elif表达式。
语法如下:
if [boolean expression]:
[statements]
elif [boolean expresion]:
[statements]
elif [boolean expresion]:
[statements]
else:
[statements]
elif 关键字后面跟 布尔表达式,也是输入英文的冒号: 回车,接下来可以编码您在布尔表达式后面的程序。结合上面述说的优良中差,看下面的例子:
#!/usr/bin/python
# coding=utf-8
score=82
if score>=60 and score<70:
print('成绩为及格')
elif score>=70 and score<80:
print('成绩为中')
elif score>=80 and score<90:
print('成绩为良')
elif score>=90:
print('成绩为优秀')
else:
print('不及格')
上面的例子中,分数score为82,进入条件判断:
- 首先进入if 条件判断(score>=60 and score<70)是不满足的,
- 然后执行第一个elif 条件判断(score>=70 and score<80),仍旧不满足,
- 接下来执行第二个elif条件(score>=80 and score<90)判断,此时它是满足的。
所以输出结果为'成绩为良'。
if elif else 嵌套使用
在Pyhton中可以使用if elif else嵌套,解决更为复杂的条件判断逻辑。
我们将上面的例子改为if elif else 嵌套的方式:
#!/usr/bin/python
# coding=utf-8
score=82
if score>=60:
if score < 70:
print('成绩为及格')
elif score>=70 and score<80:
print('成绩为中')
elif score>=80 and score<90:
print('成绩为良')
elif score>=90:
print('成绩为优秀')
elif score>=50 and score<60:
print('及格还需努力')
elif score>=40 and score<50:
print('上课要听讲')
else:
print('不及格')
输出:上面的例子中嵌套的if语句后面还需要再缩进4个空格,即8个空格,简单来说每嵌套一层需要缩进4个空格。