• if语句


    2019-05-14 17:51:57

           编程时经常需要检查一系列条件,并据此决定采取什么措施。在Python中,if语句让你能够检查程序的当前状态,并据此采取相应的措施。

    1、一个简单示例 

      假设有一个汽车列表,并想将其中没亮汽车的名称打印出来:对于大多数汽车,都应以首字母大写的方式打印名称,但对于汽车名‘bmw’,应以全大写的方式打印。

    2、条件测试

      每条if语句的核心都是一个值为true或false的表达式,这种表达式被称为条件测试。Python根据条件测试的值为true还是false来决定是否执行if语句中的代码。如果条件测试的值为true,Python就执行紧跟在if语句后面的代码;如果为false,Python就忽略这些代码。

    • 检查是否相等

      大多数条件测试都将一个变量的当前值同特定值进行比较。最简单的条件测试检查变量的值是否与特定值相等:

      一个等号是陈述:对于第一行的代码,可解读为将变量car的值设置为‘bmw’;两个等号是在发问:对于第二行的代码,可解读为‘变量car的值是‘bmw’’吗?

      注:在Python中检查是否相等时要区分大小写,例如,两个大小写不同的值会被视为不相等。 

    •  检查是否不相等

       要判断两个值是否不等,可结合使用惊叹号和等号(!=),其中的惊叹号表示不。例如:

    • 检查多个条件

    1、使用and检查多个条件

      要检查是否两个条件都为true,可使用关键字and将两个条件测试合二为一;如果每个测试都通过了,整个表达式就为true;如果至少有一个测试没有通过,整个表达式就为false。

     

    2、使用or检查多个条件

      关键字也能够检查多个条件,但只要至少有一个条件满足,就能够通过整个测试,仅当所有的测试都没有通过时,使用or的表达式才为false。

    3、检查特定值是否包含在列表中

       有时候,执行操作前必须检查列表是否包含特定的值。例如,结束用户的注册过程前,可能需要检查它提供的用户名是否包含在用户列表中。在地图程序中,可能需要检查用户提交的位置是否包含在已知位置列表中。

       要判断特定的值是否包含在列表中,可使用关键字in.

     

     4、检查特定值是否不包含在列表中

      确定特定的值未包含在列表中可以使用关键字not in.例如,如果有一个列表,其中包含被禁止在论坛上发表评论的用户,就可在允许用户提交评论前检查他是否被禁言:

     

    3、if语句

    •  简单的if语句

       最简单的if语句只有一个测试和一个操作:

     

      在第一行中,可包含任何条件测试,而在紧跟在测试后的缩进代码块中,可执行任何操作。如果条件测试的结果为true,Python就会执行紧跟在if语句后面的代码;否则Python将忽略这些代码。

      在if语句中,缩进的作用与for循环中相同。如果测试通过了,将执行if语句后面所有缩进的代码行,否则将会忽略他们。

    •  if-else语句

       经常需要在条件测试通过了是执行一个操作,并在没有通过时执行另一个操作。在这种情况下,可使用Python提供的if-else语句。

    • if-elif-else结构

       经常需要检查超过两个的情形,为此可使用Python提供的if-elif-else结构。Python只执行if-elif-else结构中的一个代码块,他一次检查每个条件测试,直到遇到通过了的条件测试。测试通过后,Python将执行紧跟在它后面的代码,并跳过余下的测试。

      在生活中,很多情况下需要考虑的情形都超过两个。例如:

    1. 4岁一下免费
    2. 4-18岁收费5美元
    3. 18岁(含)以上收费10美元

       如果只使用一条if语句:

      使用if-elif-else语句:

    •  使用多个elif代码块

      可根据需要使用任意数量的elif代码块。例如:假设前述游乐场要给老年人打折,可再添加一个条件测试,判断顾客是否符合打折条件。下面假设对于65岁(含)以上的老人,可以半价(即5美元)购买门票:

    • 省略else代码块

       Python并不要求if-elif结构后面必须有else代码块。在有些情况下,else代码块很有用;而在其他一些情况下,使用一条elif语句来处理特定的情形更清晰:

      else是一条包罗万象的语句,只要不满足任何if或elif中的条件测试,其中的代码就会执行,这可能会引入无效甚至恶意的数据。如果知道最终要测试的条件,应考虑使用一个elif代码块来代替else代码块。这样,你就可以肯定,仅当满足相应的条件时,你的代码才会执行。

    • 测试多个条件

       if-elif-else结构功能强大,但仅适用于只有一个条件满足的情况:遇到通过了的测试后。Python就会跳过余下的测试。这种行为很好,效率很高,让你能够测试一个特定的条件。

      然而,有时候必须检查你关心的所有条件。在这种情况下,应使用一系列不包含elif和else代码块的简单if语句。在可能有多个条件为true,且你需要在每个条件为true时都采取相应措施时,适合使用这种方法。

    4、使用if语句处理列表

       通过结合使用if语句和列表,可完成一些有趣的任务:对列表中特定的值做特殊处理;高效地管理不断变化的情形,如餐馆是否还有特定的食材;证明代码在各种情形下都将按预期那样运行。

    • 检查特殊元素

       通过创建一个列表,在其中包含顾客点的配料,并使用一个循环来指出添加到比萨中的配料,可以以极高的效率编写这样的代码:

      然而,如果比萨店的青椒用完了,该如何处理呢?为了妥善地处理这种情况,可在for循环中包含一个if语句:

    • 确定列表不是空的

       到目前为止,对于处理的每个列表都做了一个简单的假设,即假设它们都至少包含一个元素。我们马上就要让用户来提供存储在列表中的信息,因此不能再假设循环运行时列表不是空的。鉴于此,在运行for循环前确定列表是否为空很重要。

       下面在制作比萨前检查顾客点的配料是否为空。如果列表是空的,就向顾客确认他是否要点普通比萨;如果列表不为空,就像之前的示例那样制作比萨:

      在这里,我们首先创建了一个空列表,其中不包含任何配料;然后,我们进行了简单的if检查,而不是直接执行for循环。在if语句中将列表名用在条件表达式中时,Python将在列表中至少包含一个元素时返回true,并在列表为空时返回false。如果不为空,就与前一个for循环相同;否则,就打印一条消息,询问顾客是否确实要点不加任何配料的普通比萨。

    • 使用多个列表

      顾客的要求往往五花八门,在比萨配料方面尤其如此。如果顾客要在比萨中添加炸薯条该如何?可以使用列表和if语句来确定能否满足顾客的要求。下面定义了两个列表,其中第一个列表包含比萨店供应的配料,而第二个列表包含顾客点的配料。这次对于requested_toppings中的每个元素,都检查他是否是比萨店供应的配料,再决定是否在比萨中添加它:

    输出:

    5、设置代码的格式

       在条件测试的格式设置方面,PEP 8提供的唯一建议是,在诸如==、>=和<=等比较运算符两边各添加一个空格,例如,if age < 4要比If age<4好。这样的代码不会影响Python对代码的解读,而只是让代码阅读起来更加容易。

  • 相关阅读:
    Centos5.x 更换yum源
    前端常用的数据处理(基础版)
    动态库和静态库的区别是什么(转)
    java8.0_181b13 异常信息
    sql server 跨数据库调用存储过程
    基于51单片机的简易“视频播放器”
    https还安全吗 https抓包原理 https抓包工具
    hash 碰撞的2种解决办法
    商品秒杀提高QPS解决方案
    指针压缩原理和为什么指针压缩只能压缩3位
  • 原文地址:https://www.cnblogs.com/haohanTL/p/10863674.html
Copyright © 2020-2023  润新知