零基础Python完全自学教程11:Python中的选择语句

    时间: 浏览:1599次  来源:站长在线
欢迎你来到站长学堂,学习站长在线出品的在线课程《零基础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中的循环语句


相关阅读:

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

1、认识python

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

3、Python开发工具介绍

4、Python语法特点

5、Python中的变量

6、Python中的基本数据类型

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

8、Python中常用的运算符

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

10、Python中的三大程序结构


文末福利:

1、关注站长在线官方公众号站长在线微信号:olzzcom ,文末也有公众号二维码,关注公众号以后回复python,本站精心整理的Python书籍、软件、工具都实时更新哦!本站所安装的python3.10、 IDLE中文版 、PyCharmVisual Studio CodeSublime Text4等都在里面哦!

2、站长在线官方微信交流群已经开通了,微信扫码进入,一起交流,一起进步!

本文地址:https://www.olzz.com/pythonxzyj.html
码字不易,打个赏呗
杨泽业感谢你的支持!

猜你喜欢

PHP8的静态变量和方法-PHP8知识详解

导读:我们在上一课程讲到了public、private、protected这3个关键字,今天我们来讲解static关键字,明天再讲解final关键字。 如果不想通过创建对象来调用变量或方法,则可以将该变量或方法创建为静态变量或方法,也就是在变量或方法的前面加上static关键词。

2023-09-28  分类:PHP学堂  浏览:303次


PHP8中伪变量“$this->”和操作符“::”的使用-PHP8知识详解

导读:对象不仅可以调用自己的变量和方法,也可以调用类中的变量和方法。php8通过伪变量“$this->”和操作符“::”来实现这些功能。

2023-09-24  分类:PHP学堂  浏览:272次


PHP8的类与对象的基本操作之成员变量-PHP8知识详解

导读:成员变量是指在类中定义的变量。在类中可以声明多个变量,所以对象中可以存在多个成员变量,每个变量将存储不同的对象属性信息。

2023-09-21  分类:PHP学堂  浏览:300次


PHP8内置函数中的变量函数-PHP8知识详解

导读:今天学习的变量函数中,着重讲解了5个,分别是:检测变量是否为空的函数empty()、判断变量是否定义过的函数isset()、销毁指定的变量的函数unset()、获取变量的类型的函数gettype()、检查变量是否为数字或数字字符串的函数is_numeric()。

2023-09-02  分类:PHP学堂  浏览:282次


变量函数及销毁函数中的变量-PHP8知识详解

导读:今天分享PHP8知识详解中的变量函数及销毁函数中的变量,以及相应的示例代码。

2023-08-26  分类:PHP学堂  浏览:344次


给PHP8和MySQL8添加到环境变量-ThinkPHP8知识详解

导读:在phpenv安装的时候,环境变量默认的PHP版本是7.4的,MySQL的版本是5.7的,要想使用thinkphp8来开发,就必须修改环境变量,本文就详细讲解了如果修改PHP和MySQL的环境变量。

2023-08-12  分类:ThinkPHP教程  浏览:382次


PHP8的变量-PHP8知识详解

导读:昨天我们讲解了PHP8的常量,今天讲解PHP8的变量。常量有定义常量和预定义常量,变量呢?那就没有定义变量了,那叫给变量赋值,但是还是有预定义变量的。下面就给大家讲解什么是变量、变量赋值及使用及预定义变量。

2023-08-11  分类:PHP学堂  浏览:309次


域名pythonw.cn出售

域名pythonw.cn的详细信息:Python网

2022-08-06  分类:域名出售  浏览:1094次


站长在线Python教程:Python中类定义详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《Python中类定义详解》。

2022-02-23  分类:Python学堂  浏览:1300次


站长在线Python教程:python中面向对象相关概述详解

导读:欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《python中面向对象相关概述详解》。本文的主要内容有:面向对象是什么、面向对象中的对象是什么、Python中的类是什么、面向对象编程的特点有哪些?

2022-02-14  分类:Python学堂  浏览:1126次