零基础Python完全自学教程11:Python中的选择语句
欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础Python完全自学教程》今天给大家分享的是第11课《Python中的选择语句》。本节课主要内容有:最简单的if语句、if...else语句、if...elif...else语句、选择语句的嵌套。
欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础python完全自学教程》今天给大家分享的是第11课《Python中的选择语句》。本节课主要内容有:最简单的if语句、if...else语句、if...elif...else语句、选择语句的嵌套。
选择语句,也称为条件语句。即按照条件执行不同的代码片段。
在Python中,选择语句主要有3种形式,分别是if语句、if...else语句、if...elif...else多分支语句。
11.1、Python中最简单的if语句
Python中使用if保留字来组成选择语句,起最简单的语法形式如下:
if 表达式;
语句块
其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如,a>b and a!=c),如果表达式为真,就执行语句块;如果表达式的值为假,就跳过语句块,继续执行后面的语句。这种形式的if语句相对于汉语里面的“如果……就……”。其执行流程图如下:
图11.1 最简单的if语句执行流程图
实例11.1、《射雕英雄传》中,黄蓉与瑛姑见面的一道数学题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
在这里使用if语句判断用户输入的是不是黄蓉所说的“除以三余二,除以五余三,除以七余二”的数,代码如下:
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?")
num = int(input("请输入你认为符合条件的数字:"))
if (num % 3 == 2) and (num % 5 == 3) and (num % 7 == 2):
print(num,"符合三三数之剩二,五五数之剩三,七七数之剩二")
运行程序,当输入23时,执行结果如下:
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
请输入你认为符合条件的数字:23
23 符合三三数之剩二,五五数之剩三,七七数之剩二
>>>
当输入的值,符合条件时,输出结果。
运行程序,当输入25时,执行结果如下:
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
请输入你认为符合条件的数字:25
>>>
当输入的值,不符合条件时,不会输出结果。
站长在线误区提示:
1、使用if语句的时候,后面没有加英文冒号:
# if语句未加英文冒号
number = 5
if number == 5
print("number的值为5")
正确的写法如下:
# if语句结尾处加英文冒号
number = 5
if number == 5:
print("number的值为5")
2、语句位置需要做正确的缩进。
#正确的缩进
height = float(input("请输入您的身高(单位为米):")) # 输入身高,单位:米,如:1.70
weight = float(input("请输入您的体重(单位为千克):")) # 输入体重,单位:千克,如:65
bmi=weight/(height*height) # 用于计算BMI指数,公式为“体重/身高的平方”
if bmi < 18.5:
print("您的BMI指数为:"+str(bmi)) # 输出BMI指数
print("您的体重过轻 ~@_@~")
上面是正确的缩进,比如输入身高:1.60,体重35结果如下:
请输入您的身高(单位为米):1.60
请输入您的体重(单位为千克):35
您的BMI指数为:13.671874999999998
您的体重过轻 ~@_@~
>>>
下面我来一个错误的缩进,代码如下:
# 错误的缩进
height = float(input("请输入您的身高(单位为米):")) # 输入身高,单位:米,如:1.70
weight = float(input("请输入您的体重(单位为千克):")) # 输入体重,单位:千克,如:65
bmi=weight/(height*height) # 用于计算BMI指数,公式为“体重/身高的平方”
if bmi < 18.5:
print("您的BMI指数为:"+str(bmi)) # 输出BMI指数
print("您的体重过轻 ~@_@~")
输入身高:1.60,体重35,执行结果如下:
请输入您的身高(单位为米):1.60
请输入您的体重(单位为千克):35
您的BMI指数为:13.671874999999998
您的体重过轻 ~@_@~
>>>
看起来可以执行,没有什么问题,我改成 身高1.60,体重70,执行结果如下:
请输入您的身高(单位为米):1.60
请输入您的体重(单位为千克):70
您的体重过轻 ~@_@~
>>>
不管bmi的值是否小于18.5都会输出“您的体重过轻 ~@_@~”。这显然是错误的,与本意不符合,但是程序不会报错,因此这个bug要特别注意。
11.2、Python中的if...else语句
在Python中,如果遇到只能二选一的条件,那么久使用if...else语句来解决问题。起语法格式如下:
if 表达式:
语句块1
else:
语句块2
使用if...else语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。
如果满足条件,则执行if后的语句块;否则,执行else后面的语句块。
这样的形式的选择语句相对于汉语里面的“如果......否则......”。其执行流程如图11.2所示:
图11.2 if...else语句执行流程图
现在我们通过一个实例来讲解if...else的使用。
例11.2、判断输入的是不是黄蓉所说的数。
使用if...else语句判断用户输入的数字是不是黄蓉所说的“除以三余二,除以五余三,除以七余二”的数,代码如下:
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?")
num = int(input("请输入你认为符合条件的数字:"))
if (num % 3 == 2) and (num % 5 == 3) and (num % 7 == 2):
print(num,"符合三三数之剩二,五五数之剩三,七七数之剩二")
else:
print(num,"不符合!")
当输入23时,就是符合条件的数字,结果如下:
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
请输入你认为符合条件的数字:23
23 符合三三数之剩二,五五数之剩三,七七数之剩二
>>>
当输入25时,就是不符合条件的数字,结果如下:
今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?
请输入你认为符合条件的数字:25
25 不符合!
>>>
站长在线误区提示:
1、else不可以单独使用,必须和if一起使用。
2、在程序中使用if...else语句时,如果出现if语句多于else时,那么改else语句就会根据缩进确定该else是属于哪一个if语句的。如:
#错误的缩进代码示范
a = -1
if a >= 0:
if a > 0:
print("a大于零")
else:
print("a等于零")
上述代码不会输出任何信息,因为else语句属于第3行的if语句,所以当a小于零时,else语句将不执行。而修改为:
#正确的缩进代码示范
a = -1
if a >= 0:
if a > 0:
print("a大于零")
else:
print("a小于零")
这样的话,就会有输出结果:a小于零
11.3、Python中的if...elif...else多分支语句。
在Python开发程序的时候,出现多选一的时候就使用if...elif...else多分支语句。通常表现为“如果满足某种条件,则进行某种处理,否则,满足另一种条件,则执行另一种处理。”
if...elif...else多分支语句语法格式如下:
if 表达式1
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
...
else:
语句块n
使用if...elif...else多分支语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。
如果表达式为真,则执行语句;如果表达式为假,则跳过该语句,进行下一个elif判断;只有在所有表达式都为假的情况下,才会执行else中的语句。if...elif...else多分支语句执行流程如图11.3所示:
图11.3 if...elif...else多分支语句执行流程图
注意:if和elif都需要判断表达式的真假,而else则不需要判断;另外elif和else都必须跟if一起使用,不能单独使用。
实例11.3、通过输入分数,输出对应的等级(优秀、良好、中等、及格、不及格)代码如下:
fenshu = float(input("请输入分数:")) #输入数据,且转换成浮点数
if fenshu > 100 or fenshu < 0:
print("分数输入不合理。")
elif fenshu >= 90:
print("优秀")
elif fenshu >= 80:
print("良好")
elif fenshu >= 70:
print("中等")
elif fenshu >= 60:
print("及格")
else:
print("不及格")
站长在线特别提醒:大多数教程使用的是int()函数,转换成整型数据,其实是不对的,比如输入66.5就会报错了。只有转换成浮点数(float)才能正确处理,而不会报错。
程序执行情况及输出结果:
请输入分数:66.5
及格
>>>
11.4、Python中选择语句的嵌套
在本节课中,我们讲到了if语句、if...else语句、if...elif...else多分支语句,这3种形式的选择语句之间是可以相互嵌套的。
11.4.1、例如:在最简单的if语句中嵌套if...else语句,语法如下:
if 表达式1:
if 表达式2:
语句块1
else:
语句块2
11.4.2、例如:在if...else语句中嵌套if...else语句,语法如下:
if 表达式1:
if 表达式2:
语句块1
else:
语句块2
else:
if 表达式3:
语句块3
else:
语句块4
站长在线特别提醒:选择语句可以有多种嵌套方式,当开发程序时,可以根据自身的需要选择合适的嵌套方式,但一定要严格控制好不同级别的代码块缩进量。
实例11.4、使用嵌套语句判断输入的年份是不是闰年。代码如下:
year = int(input("请输入一个年份:")) # 获取用户输入的年份,并转换为整型
if year % 4 == 0: # 四年一闰
if year % 100 == 0:
if year % 400 == 0: # 四百年再闰
print(year,"年是闰年")
else: # 百年不闰
print(year,"年不是闰年")
else:
print(year,"年是闰年")
else:
print(year,"年不是闰年")
说明:
判断一个年份是否为闰年的条件是,可以可以被4整除,但 不能被100整除,或者可以被400整除。
1582年以来的置闰规则:
普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
运行上面程序,输入一个闰年的年份,如2020,得到的结果如下:
请输入一个年份:2020
2020 年是闰年
>>>
重新运行上面程序,输入一个不是闰年的年份,如2021,得到的结果如下:
请输入一个年份:2021
2021 年不是闰年
>>>
好了本节课讲到了最简单的if语句、if...else语句、if...elif...else语句、选择语句的嵌套。今天的课程不是看的,而是靠大家亲自运行的,多写多练才有进步。今天的课程不好出选择题了。大家自己练习起来。
下节预告:零基础Python完全自学教程12:Python中的循环语句
相关阅读:
1、认识python
文末福利:
1、关注站长在线官方公众号【站长在线】微信号:olzzcom ,文末也有公众号二维码,关注公众号以后回复python,本站精心整理的Python书籍、软件、工具都实时更新哦!本站所安装的python3.10、 IDLE中文版 、PyCharm、Visual Studio Code、Sublime Text4等都在里面哦!
2、站长在线官方微信交流群已经开通了,微信扫码进入,一起交流,一起进步!
本文地址:https://www.olzz.com/pythonxzyj.html
阿里云虚拟主机1G空间,120元一年
香港、美国虚拟主机100元一年,1000元永久
腾讯云双十一0.4折起,2核8G5M三年仅700元,2核4G8M三年仅198元
猜你喜欢