零基础学python 13 多个条件:and,or和not的使用

avatar 2017年4月22日20:28:02 评论 17,104

加入VIP,可以享受无广告视频播放!更可享受教程提前看!详情猛戳:VIP介绍

之前我们学过的选择if结构以及计次循环for循环结构都是需要我们填写运行条件的,这样能让我们的代码非线性运行,有选择性运行或者缩短冗余重复的代码量和代码块。

但是,之前我们学习过的选择结构是判断一个条件就开始执行了,其实,在现实中,我们可能需要进行两个或者多个条件的判断才能进行。而要进行判断运行的条件一种是几个条件都满足才运行,有的时候是几种条件中满足某一种就可以运行了,还有的情况,可能是这两种情况的结合体。

有的时候我们也需要取一个条件的相反值来判断条件是否满足运行。

于是,在python中我们使用and以及or来连接不同的条件,and表示“且”(而且的意思),or表示“或”(或者的意思)。同时我们可以使用not写在某一个条件之前,用来表示“非”(取反的意思)。

我们把and,or以及not叫做逻辑运算符

我们之前学习过,对于选择结构来说,如果条件判断为真,那么就会执行if语句块的代码,如果为假,那么就会检查是否有elif或者else的部分,依次检测条件和执行。那么多个条件是如何进行判断的呢?

python运行到选择结构的条件时,会分开有哪几个条件,然后从左到右去进行真假检测。


我们来举一个栗子:

x = 1
y = 2
if x == 1 and y == 2:
    print(x * y)

这里我们有两个判断条件,一个是判断x是否为1,第二个是判断y是否为2,中间连接它们的是一个and,也就是且,因此我们进入if执行块运行的先决条件是这两个条件都满足,都返回真,才会运行。当其中任意一个条件不满足的时候,则这段代码不会执行。你可以尝试修改下其中一个条件或者两个条件都不满足测试下还能不能运行。

如果有多个条件多个and呢?那么就需要从左到右判断所有条件都满足才返回最后的真,运行代码执行块。

因此我们来总结一下:and的部分就是要所有的条件都能满足,都返回真才执行代码块。


如果上述例子改成or呢?

x = 1
y = 2
if x == 1 or y == 2:
    print(x * y)

python的运行顺序是:先检测第一个条件,如果第一个条件满足,返回为真,那么不会再检测第二个条件的代码,直接运行后面的执行块。如果第一个返回为假,则再检测下一个条件,一旦检测到一个为真的条件,就往下执行代码,如果所有条件都检测完了都返回假,则执行代码段不会运行代码。

总结一下:or的部分就是检测到任意一个(从左到右检测)条件为真,就会运行代码块了。


下面我们来看一个表格,表格显示了在只有两个条件的情况下,and以及or的所有返回情况:

条件1 逻辑运算符 条件2 合并结果
and
and
and
and
or
or
or
or

接下来我们再来学习下not的栗子:

x = 1
y = 2
if not x >= 0:
    print(x * y)

这里,python会先判断所写条件的真假,然后套上not之后,取相反方向。如果条件返回真,那么not 条件就会返回假,如果条件返回假,那么not 条件就会返回真。


如果多个逻辑运算符都使用怎么办?我们可以很简单的使用小括号()来确定先判断哪个部分,小括号具有最高运算优先级别,比如下图的栗子:

x = 1
y = 2
if (not x == 0) or (x > 1 and y <= 2):
    print(x * y)

上面这种情况,我们就把小括号作为一个整体,先把每一个小括号的内容全部判断完毕,当然,小括号甚至可以嵌套,大家可以自己去尝试。比如例子这里,我们先判断(not x == 0)这个整体,它整体得到的结果是真,然后再判断后面(x > 1 and y <= 2)这一部分,它们整体得到的结果为假,真 or 假一起来判断,最后的结果是真,因此可以执行代码块。


以下是我们的视频教程:

在线观看:

 

高清源文件下载:

内容已经隐藏,请注册为本站会员后查看

 

感谢大家的收看,我们下期再见!

avatar

发表评论

您必须才能发表评论!