返回顶部
首页 > 资讯 > 后端开发 > Python >如何理解Python条件语句
  • 806
分享到

如何理解Python条件语句

2023-06-15 23:06:25 806人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“如何理解python条件语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!01 if条件语句if语句用于检测某个条件是否成立

本篇内容介绍了“如何理解python条件语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

01 if条件语句

if语句用于检测某个条件是否成立。如果成立,则执行if语句内的程序;否则,跳过if语句,执行后面的内容。if语句的格式如下。

if(表达式):      语句1  else:      语句2

if语句的执行过程如下:如果表达式的布尔值为真,则执行语句1;否则,执行语句2。其中的else子句可以省略,表达式两侧的括号也可以省略。

在讲解if语句之前,先介绍一下Python中的控制台输入函数。在C语言中,使用scanf()和getchar()捕获用户输入,而Java语言的System.in包提供了控制台输入的方法。Python也提供了类似功能的函数——input(),用于捕获用户的原始输入并将其转为字符串。input()函数的声明如下。

input([prompt]) -> string

参数prompt是控制台中对于输入的提示文字,提示用户输入,返回值为字符串。如果输入的是数字,返回的还是字符串,那么使用前需要调用int()做一下字符串和数字类型的转换。下面这段代码说明了字符串和数字类型的转换。

x = input("x:") x = int(x) x = x + 1

如果不调用int()把字符串转换为数字,而直接计算表达式x = x + 1,将提示如下错误。

TypeError: Can't convert 'int' object to str implicitly

下面这段代码演示了if语句的执行流程。

1# 执行if语句内的程序 2a = input("a:") 3a = int(a) 4b = input("b:") 5b = int(b) 6if(a > b): 7    print (a, " > ", b)

【代码说明】

  • 第2行代码定义了变量a。

  • 第3行将用户输入的a转换为int类型。

  • 第4行代码定义了变量b。

  • 第5行将用户输入的b转换为int类型。

  • 第6行代码判断变量a、b的大小。

  • 对于第7行代码,假设a=2、b=1,输出结果:2>1。

如果不满足if语句内的条件,程序将跳过if语句,执行后面的内容。

1# 跳过if语句 2a = input("a:") 3a = int(a) 4b = input("b:") 5b = int(b) 6if(a > b): 7    print (a, " > ", b) 8print (a, " < ", b)

【代码说明】

  • 假设a=1、b=2,第6行代码中变量a的值小于变量b的值,因此,程序跳转执行第8行代码。

  • 第8行代码输出结果:1<2。

【例3-1】把上面的代码改写成if&hellip; else&hellip;结构。

【例3-1.py】

1# if&hellip; else&hellip;语句 2a = input("a:") 3a = int(a) 4b = input("b:") 5b = int(b) 6if(a > b): 7    print (a, " > ", b) 8else: 9    print (a, " < ", b)

【代码说明】

  • 假设a=1、b=2,第6行代码中变量a的值小于变量b的值。因此,程序跳转到else子句。

  • 第9行代码输出结果:1<2。

注意:else子句后需要加一个冒号,使Python解释器能识别出else子句对应的代码块。Java程序员可能会不习惯这种语法,往往会忽略else子句后的冒号。在Python  2中还可用raw_input()函数接收用户输入,其功能与Python 3的input()相同。而Python  2中的input()接收的值不转换为字符串类型,而是保留原始类型,它在Python 3中已经去除。

02 if&hellip;elif&hellip;else判断语句

if&hellip;elif&hellip;else语句是对if&hellip;else&hellip;语句的补充。当程序的条件分支很多时,可以使用这种语句。if&hellip;elif&hellip;else语句相当于C、Java中的if&hellip;elseif&hellip;else语句。该语句的格式如下。

if(表达式1): 语句1 elif(表达式2): 语句2 &hellip; elif(表达式n): 语句n else: 语句m

if&hellip;elif&hellip;else语句的执行过程:首先判断表达式1的值是否为真。如果为真,则执行语句1。否则,程序流转到elif子句,判断表达式2的值是否为真。如果表达式2的值为真,则执行语句2。否则,程序进入下面一个elif子句,以此类推。如果所有的表达式都不成立,则程序执行else子句的代码。其中的else子句可以省略,表达式两侧的括号也可以省略。

下面【例3-2】中的这段代码通过判断学生的分数,确定学生成绩的等级。

【例3-2.py】

1# if elif else语句 2score = float( input("score:"))  # 接收用户输入并将其转换为float类型,当输入为小数时,使用int转换会报错 3if 90 <= score <= 100: 4    print("A") 5elif 80 <= score < 90: 6    print("B") 7elif 60 <= score < 80: 8    print("C") 9else: 0    print("D")

【代码说明】

  • 第2行代码定义了一个变量score,假设输入的值为70。这个变量表示学生的分数。接收用户输入并将其转换为float类型。

  • 第3行代码,分数大于等于90并且小于等于100,则等级评定为“A”。

  • 第5行代码,分数大于等于80并且小于90,则等级评定为“B”。

  • 第7行代码,分数大于等于60并且小于80,则等级评定为“C”。此时条件表达式成立,程序流转到第8行。输出结果为C。

  • 第9行代码,当前面的条件表达式都不成立时,程序流转到else子句。

03 if语句也可以嵌套

if语句的嵌套是指if语句中可以包含一个或多个if语句。嵌套的格式如下所示。

if(表达式1): if(表达式2): 语句1 elif(表达式3): 语句2 &hellip; else: 语句3 elif(表达式n): &hellip; else:  &hellip;

下面【例3-3】中的这段代码是一个嵌套的条件语句。如果x的值大于0,则y的值等于1;如果x的值等于0,则y的值等于0;如果x的值小于0,则y的值等于-1。

【例3-3.py】

1x = -1 2y = 99 3if(x >= 0): 4    if(x > 0):#嵌套的if语句 5        y = 1 6    else: 7        y = 0 8else: 9    y = -1 0print ("y =", y)

【代码说明】

  • 第2行代码定义了一个变量y。为了不和最终可能的输出结果1、0、-1重复,设置y的初始值为99。

  • 第3行代码判断变量x的值。如果x大于等于0,则执行下面嵌套的if语句。

  • 第4行代码,判读x的值是否大于0。如果大于0,则执行第5行代码;否则,执行第7行代码。

  • 第8行代码,如果变量x的值小于0,则执行第9行代码。

  • 第9行代码,由于变量x的值为-1,因此y的值等于-1。

  • 第10行代码的输出结果为-1。

嵌套语句可以组合出很多写法,但是要注意把所有的分支情况都考虑到。下面的这种写法是错误的。

1# 错误的嵌套语句 2x = -1 3y = 99 4if(x != 0):           # 如果x不等于0 5    if(x > 0):          #嵌套的if语句 6        y = 1 7else: 8    y = 0 9print ("y =", y)

【代码说明】

  • 第4行代码判断变量x的值是否等于0。如果不等于0,则执行if语句下面的代码块;否则执行else子句的代码。由于x的值等于-1,程序流转到第5行。

  • 第5行代码判断变量x的值是否大于0。如果大于0,则变量y的值设置为1。由于这里没有考虑到变量x小于0的情况,所以程序直接跳转到第9行。

  • 第9行代码,变量y的值并没有被改变,程序的分支结构没有考虑到x小于0的情况,所以最终输出的不是期望中的结果。输出结果为99。

注意:编写条件语句时,应该尽可能避免使用嵌套语句。嵌套语句不便于阅读,而且可能会忽略一些可能性。

04 switch语句的替代方案

switch语句用于编写多分支结构的程序,类似于if&hellip;elif&hellip;else语句。C语言中switch语句的结构如下所示。

switch(表达式) {     case 常量表达式1: 语句1     case 常量表达式2: 语句2     &hellip;     case 常量表达式n: 语句n     default: 语句m }

switch语句表示的分支结构比if&hellip;elif&hellip;else语句更清晰,代码可读性更高,但是Python并没有提供switch语句,而是可以通过字典实现switch语句的功能。

实现方法分为两步。首先,定义一个字典。字典是由键值对组成的集合。其次,调用字典的get()获取相应的表达式。

下面【例3-4】中的这段代码通过算术运算的符号,获取算术运算表达式。

【例3-4.py】

 1# 使用字典实现switch语句  2from __future__ import division# 导入division模块  3x = 1  4y = 2  5operator = "/"  6result = {         # 定义字典  7"+" : x + y,  8"-" : x - y,  9"*" : x * y, 10"/" : x / y  11} 12print (result.get(operator))

【代码说明】

  • 第3、4行代码定义了两个操作数x、y。

  • 第5行代码定义了操作符变量operator,该变量用于存放算术运算符。

  • 第6行代码定义了一个字典result。该字典的key值由“+”“-”“*”“/”四则运算符组成。value值由对应的算术表达式组成。

  • 第12行代码调用get()方法,get()的参数就是变量operator的值。由于operator的值为“/”,因此将执行除法运算。输出结果为0.5。

另一种使用switch分支语句的方案是创建一个switch类,处理程序的流转。这种实现方法比较复杂,涉及面向对象、for循环、中断语句、遍历等知识,实现步骤分为4步。

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 创建一个switch类,该类继承自Python的祖先类object。调用构造函数__init__()初始化需要匹配的字符串,并定义两个成员变量value和fall。value用于存放需要匹配的字符串。fall用于记录是否匹配成功,初始值为False,表示匹配不成功。如果匹配成功,程序向后执行。

  3. 定义一个match()方法,该方法用于匹配case子句。这里需要考虑3种情况。首先是匹配成功的情况,其次是匹配失败的默认case子句,最后是case子句中没有使用break中断的情况。

  4. 重写__iter__()方法,定义了该方法后才能使switch类用于循环语句中。__iter__()调用match()方法进行匹配,通过yield关键字,使函数可以在循环中迭代。此外,调用异常StopIteration中断循环。Python中的循环都是通过异常StopIteration中断的。这样switch类就构造完成了。

  5. 编写调用代码,在for&hellip;in&hellip;循环中使用switch类。

下面【例3-5】中的这段代码实现了switch语句的功能。

【例3-5.py】

 1class switch(object):# 定义switch类  2    def __init__(self, value):# 初始化需要匹配的值value  3        self.value = value  4        self.fall = False           # 如果匹配到的case语句中没有break,则fall为True  5  6    def __iter__(self):# 定义__iter__()方法  7        yield self.match           # 调用match方法 返回一个生成器  8        raise StopIteration# 用StopIteration 异常来判断for循环是否结束  9 10    def match(self, *args):   # 模拟case子句的方法 11        if self.fall or not args:   # 如果fall为True,则继续执行下面的case子句 12                                 # 或case子句没有匹配项,则流转到默认分支 13            return True 14        elif self.value in args:    # 匹配成功 15            self.fall = True 16            return True 17        else: # 匹配失败 18            return False 19 20operator = "+" 21x = 1 22y = 2 23for case in switch(operator):  # switch只能用于for... in...循环中 24    if case('+'): 25        print (x + y) 26        break 27    if case('-'): 28        print (x - y) 29        break 30    if case('*'): 31        print (x * y) 32        break 33    if case('/'): 34        print (x / y) 35        break 36    if case():               # 默认分支 37        print ""

【代码说明】

  • 第1行到第18行代码定义了switch类,定义了__init__()、__iter__()、match()方法。

  • 第23行代码在for&hellip;in&hellip;循环中调用switch类,变量operator作为switch类的参数传递给构造函数。变量operator的值等于“+”,程序流转到第24行。

  • 第25行代码输出x + y的结果。输出结果为3。

  • 第26行代码使用break语句中断switch分支结构,程序流转到文件的末尾。

“如何理解Python条件语句”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何理解Python条件语句

本文链接: https://lsjlt.com/news/281799.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何理解Python条件语句
    本篇内容介绍了“如何理解Python条件语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!01 if条件语句if语句用于检测某个条件是否成立...
    99+
    2023-06-15
  • python语句--条件语句
    一、print语句、import语句、赋值语句。1.1、print语句:输出>>> print(2,3,4)    //python2.x(2, 3, 4)>>> >>> print(1...
    99+
    2023-01-31
    语句 条件 python
  • python条件语句
    python条件语句 目录: 1.分支语句(if……else……) 2.循环(for,while,嵌套循环)  #for用在已知循环次数  while用在不确定循环次数和死循环 3.控制循环(break,continue,else)  #...
    99+
    2023-01-30
    语句 条件 python
  • Python 条件语句
    文 | 糖豆     图 | 来源网络糖豆贴心提醒,本文阅读时间3分钟,文末有秘密!Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。可以通过下图来简单了解条件语句的执行过程:Python程序语...
    99+
    2023-01-31
    语句 条件 Python
  • 详解Python的条件语句
    目录1.if语句2.if...else 语句3.if...elif...else 语句4.if 语句的嵌套总结条件语句主要有三种形式:分别为if语句、if...else语句和if.....
    99+
    2024-04-02
  • python 条件语句、循环语句
    *条件语句:    流控制语句-分支结构:    语法:     1.简单条件语句: if 条件:语句     2. if 条件:         语句1;       else:          语句2      3 if   条件: ...
    99+
    2023-01-31
    语句 条件 python
  • Python 条件,循环语句详解
    目录1、Python 条件语句1.1 pass语句2、Python for 循环语句2.1 for 嵌套循环3、Python while 循环语句3.1 while 循环嵌套4、br...
    99+
    2024-04-02
  • Python条件语句与循环语句
    目录1、条件语句1.1 if语句2、嵌套的分支语句3、案例练习4、循环语句4.1 for-in循环 4.2 range()函数4.3 实例1:计算1-100的和4.4 实例2:计算1...
    99+
    2024-04-02
  • Swift条件语句怎么理解
    这篇文章主要介绍“Swift条件语句怎么理解”,在日常操作中,相信很多人在Swift条件语句怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Swift条件语句怎么理解”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-03
  • python 基础 条件语句
    python 流程控制1、if语句    python的if 语句类似其它语言,if 语句包含一个逻辑表达式,使用表达式比较,在比较结果的基础上作出决定。  -if experssion(条件表达式):       statement(s)...
    99+
    2023-01-31
    语句 条件 基础
  • python条件语句和while循环语句
    目录一、条件语句二、​while循环语句​以Python 3.x版本为主 一、条件语句 ​条件语句基本结构​ 0或null为false,其余则为true if 判定条件:语句块......
    99+
    2024-04-02
  • Python基础之条件语句详解
    目录一、环境介绍二、条件判断介绍三、if语句的使用四、if判断的运算符五、学习小结一、环境介绍 Python版本Python 3.8.8 ( Pycharm版本2021.1.2 二、...
    99+
    2024-04-02
  • JavaScript如何缩短条件语句
    这篇文章将为大家详细讲解有关JavaScript如何缩短条件语句,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。缩短条件语句让我们来看这个例子:if (available) { ...
    99+
    2023-06-27
  • 如何写好JavaScript条件语句
    这篇文章主要介绍“如何写好JavaScript条件语句”,在日常操作中,相信很多人在如何写好JavaScript条件语句问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何写好JavaScript条件语句”的疑...
    99+
    2023-06-27
  • Python条件语句的使用
    目录if 条件判断语句条件语句嵌套你可能不知道的条件操作python条件判断语句案例python条件语句使用 if 表达式,难度不高,需要注意的是嵌套用法,以及如何设置对应的条件。 ...
    99+
    2024-04-02
  • Python学习-if条件语句
    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。 单分支条件语句 if 判断条件: 条件成立,执行该代码块....   注意:与其他编程语言,如Java和C语言不同的是,C语...
    99+
    2023-01-30
    语句 条件 Python
  • Python条件语句与循环
    1、判断与循环python 缩进main:print("Hello")print("Hello world.") if 判断条件: 执行语句 elif 判断条件: 执行语句 else: 执行语句 while 判断条件...
    99+
    2023-01-31
    语句 条件 Python
  • Python if else条件语句形式详解
    我们都知道代码都是顺序执行的,也就是先执行第1条语句,然后是第2条、第3条……一直到最后一条语句,这称为顺序结构。 但是对于很多情况,顺序结构的代码是远远...
    99+
    2024-04-02
  • VBScript中如何使用条件语句
    本篇内容介绍了“VBScript中如何使用条件语句”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!控制程序执行使用条件语句和循环语句可以控制 ...
    99+
    2023-06-09
  • python里的条件语句和循环语句你了解多少
    目录前言一、条件语句1、什么是条件语句2、if 语句的基本形式3、if 语句多个判断条件的形式4、if 语句多个条件同时判断5、if 嵌套二、循环语句1、什么是循环语句2、 for ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作