零基础Python完全自学教程11Pyt

白癜风治疗得多少钱 http://www.victroncapital.com/

欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础Python完全自学教程》今天给大家分享的是第11课《Python中的选择语句》。本节课主要内容有:最简单的if语句、if...else语句、if...elif...else语句、选择语句的嵌套。

选择语句,也称为条件语句。即按照条件执行不同的代码片段。

在Python中,选择语句主要有3种形式,分别是if语句、if...else语句、if...elif...else多分支语句。

11.1、Python中最简单的if语句

Python中使用if保留字来组成选择语句,起最简单的语法形式如下:

if表达式;语句块

其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如,abanda!=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时,执行结果如下:

今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?请输入你认为符合条件的数字:符合三三数之剩二,五五数之剩三,七七数之剩二

当输入的值,符合条件时,输出结果。

运行程序,当输入25时,执行结果如下:

今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?请输入你认为符合条件的数字:25

当输入的值,不符合条件时,不会输出结果。

站长在线误区提示:

1、使用if语句的时候,后面没有加英文冒号:

#if语句未加英文冒号number=5ifnumber==5print("number的值为5")

正确的写法如下:

#if语句结尾处加英文冒号number=5ifnumber==5:print("number的值为5")

2、语句位置需要做正确的缩进。

#正确的缩进height=float(input("请输入您的身高(单位为米):"))#输入身高,单位:米,如:1.70weight=float(input("请输入您的体重(单位为千克):"))#输入体重,单位:千克,如:65bmi=weight/(height*height)#用于计算BMI指数,公式为“体重/身高的平方”ifbmi18.5:print("您的BMI指数为:"+str(bmi))#输出BMI指数print("您的体重过轻~

_

~")

上面是正确的缩进,比如输入身高:1.60,体重35结果如下:

请输入您的身高(单位为米):1.60请输入您的体重(单位为千克):35您的BMI指数为:13.您的体重过轻~

_

~

下面我来一个错误的缩进,代码如下:

#错误的缩进height=float(input("请输入您的身高(单位为米):"))#输入身高,单位:米,如:1.70weight=float(input("请输入您的体重(单位为千克):"))#输入体重,单位:千克,如:65bmi=weight/(height*height)#用于计算BMI指数,公式为“体重/身高的平方”ifbmi18.5:print("您的BMI指数为:"+str(bmi))#输出BMI指数print("您的体重过轻~

_

~")

输入身高:1.60,体重35,执行结果如下:

请输入您的身高(单位为米):1.60请输入您的体重(单位为千克):35您的BMI指数为:13.您的体重过轻~

_

~

看起来可以执行,没有什么问题,我改成身高1.60,体重70,执行结果如下:

请输入您的身高(单位为米):1.60请输入您的体重(单位为千克):70您的体重过轻~

_

~

不管bmi的值是否小于18.5都会输出“您的体重过轻~

_

~”。这显然是错误的,与本意不符合,但是程序不会报错,因此这个bug要特别注意。

11.2、Python中的if...else语句

在Python中,如果遇到只能二选一的条件,那么久使用if...else语句来解决问题。起语法格式如下:

if表达式:语句块1else:语句块2

使用if...else语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。

如果满足条件,则执行if后的语句块;否则,执行else后面的语句块。

这样的形式的选择语句相对于汉语里面的“如果......否则......”。其执行流程如图11.2所示:

图11.2if...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时,就是符合条件的数字,结果如下:

今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?请输入你认为符合条件的数字:符合三三数之剩二,五五数之剩三,七七数之剩二

当输入25时,就是不符合条件的数字,结果如下:

今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?请输入你认为符合条件的数字:不符合!

站长在线误区提示:

1、else不可以单独使用,必须和if一起使用。

2、在程序中使用if...else语句时,如果出现if语句多于else时,那么改else语句就会根据缩进确定该else是属于哪一个if语句的。如:

#错误的缩进代码示范a=-1ifa=0:ifa0:print("a大于零")else:print("a等于零")

上述代码不会输出任何信息,因为else语句属于第3行的if语句,所以当a小于零时,else语句将不执行。而修改为:

#正确的缩进代码示范a=-1ifa=0:ifa0:print("a大于零")else:print("a小于零")

这样的话,就会有输出结果:a小于零

11.3、Python中的if...elif...else多分支语句。

在Python开发程序的时候,出现多选一的时候就使用if...elif...else多分支语句。通常表现为“如果满足某种条件,则进行某种处理,否则,满足另一种条件,则执行另一种处理。”

if...elif...else多分支语句语法格式如下:

if表达式1语句块1elif表达式2:语句块2elif表达式3:语句块3...else:语句块n

使用if...elif...else多分支语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式。

如果表达式为真,则执行语句;如果表达式为假,则跳过该语句,进行下一个elif判断;只有在所有表达式都为假的情况下,才会执行else中的语句。if...elif...else多分支语句执行流程如图11.3所示:

图11.3if...elif...else多分支语句执行流程图

注意:if和elif都需要判断表达式的真假,而else则不需要判断;另外elif和else都必须跟if一起使用,不能单独使用。

实例11.3、通过输入分数,输出对应的等级(优秀、良好、中等、及格、不及格)代码如下:

fenshu=float(input("请输入分数:"))#输入数据,且转换成浮点数iffenshuorfenshu0:print("分数输入不合理。")eliffenshu=90:print("优秀")eliffenshu=80:print("良好")eliffenshu=70:print("中等")eliffenshu=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:语句块1else:语句块2

11.4.2、例如:在if...else语句中嵌套if...else语句,语法如下:

if表达式1:if表达式2:语句块1else:语句块2else:if表达式3:语句块3else:语句块4

站长在线特别提醒:选择语句可以有多种嵌套方式,当开发程序时,可以根据自身的需要选择合适的嵌套方式,但一定要严格控制好不同级别的代码块缩进量。

实例11.4、使用嵌套语句判断输入的年份是不是闰年。代码如下:

year=int(input("请输入一个年份:"))#获取用户输入的年份,并转换为整型ifyear%4==0:#四年一闰ifyear%==0:ifyear%==0:#四百年再闰print(year,"年是闰年")else:#百年不闰print(year,"年不是闰年")else:print(year,"年是闰年")else:print(year,"年不是闰年")

说明:

判断一个年份是否为闰年的条件是,可以可以被4整除,但不能被整除,或者可以被整除。

年以来的置闰规则:

普通闰年:公历年份是4的倍数,且不是的倍数的,为闰年(如年、年等就是闰年)。

世纪闰年:公历年份是整百数的,必须是的倍数才是闰年(如年不是闰年,年是闰年)。

运行上面程序,输入一个闰年的年份,如,得到的结果如下:

请输入一个年份:年是闰年

重新运行上面程序,输入一个不是闰年的年份,如,得到的结果如下:

请输入一个年份:年不是闰年

好了本节课讲到了最简单的if语句、if...else语句、if...elif...else语句、选择语句的嵌套。今天的课程不是看的,而是靠大家亲自运行的,多写多练才有进步。今天的课程不好出选择题了。大家自己练习起来。

下节预告:零基础Python完全自学教程12:Python中的循环语句

相关阅读:

《零基础Python完全自学教程》汇总

1、认识python

2、安装python及写第一个Python程序

3、Python开发工具介绍

4、Python语法特点

5、Python中的变量

6、Python中的基本数据类型

7、Python中的基本输入和输出

8、Python中常用的运算符

9、Python中运算符的优先级和条件表达式

10、Python中的三大程序结构




转载请注明:http://www.aierlanlan.com/rzfs/5682.html