python中主要有三个逻辑操作符,分别是:and、or、not。

and:且,所有人为真才为真。

or:或,一个为正就是真。

not:非,取反。

>>> print(3>2 and 3 >4)
False #所有人为真方为真
>>> print(3>2 and 3 >1)
True
>>> print(3>2 or 3 > 4)
True #一人为真就可真
>>> print(3>6 or 3 > 4)
False
>>> print(not False)
True #取反
>>> print(not True)
False

逻辑操作符的优先级:()> not > and > or

同等优先级下,从左到右依次计算。

>>> print(2>1 and 3 < 4 or 4 > 5 and 2 <1)
优先级 真 or 假
          真     
True
>>> print(1>2 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6)
优先级 假 or 假 or 假
假 or 假

False
>>> print(1>2 and 3<4 or 4>5 and 2>1 and 9>8 or 7>6)
True
>>> print(not 2>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6)
假 and
假 or 假 or 假

False

小技巧:多个同样的操作符放在一块,一起判断。

布尔值只有两个False和True,False代表0,True代表1

除0和False以外所有的字符串和数字都为真

>>> bool(False)
False
>>> bool(1)
True
>>> bool(0)
False
>>> bool(10)
True
>>> bool('123wqeq')
True

以上所说得知识会在下面得到运用。

>>> print(3 or 4)
3
>>> print(2 or 4)
2
>>> print(0 or 4)
4
>>> print(-1 or 4)
-1
>>> print(3 and 4)
4
>>> print(2 and 4)
4
>>> print(0 and 4)
0
>>> print(-1 and 4)
4

总结:除了0代表假之外其余的全部都为真。关于3 or 4 为啥返回3,3 and 4返回4我也说不明白,只能做如下总结。

X or Y :真与假在一起返回真

>>> print(4 or 0)
4
>>> print(0 or 4)
4

 XY均为真,返回前面的

X and Y : 真与假在一起返回假

>>> print(4 and 0)
0
>>> print(0 and 4)
0

:真和真在一起,返回后面的

>>> print(3 and 4)
4
>>> print(2 and 4)
4

看一个例子:

>>> print(0 and 3 or 4 or 1 or 2)
0为假,返回0
0 or 4有真返真,故返回4
4 or 1 or 2 全为真返回前面的
4
>>> print(3 or 3>2)
3 #返回前面的,3>2可以看作内层计算,所以结果为True
>>> print(3>2 or 3)
True

python中的逻辑操作符的更多相关文章

  1. Python中and(逻辑与)计算法则

    在程序设计中,and称为逻辑与运算,也称布尔运算:1.and是在布尔上下文中从左到右计算表达式的值:2.0.''.[].().{}.None.False在布尔上下文中为假:其它任何东西都为真:3.如果 ...

  2. 9、python中的控制流

    学习完python的基础与数据后,我们就可以编写一些简单的命令了.但这时我们发现,目前位置写出来的程序都是自上而下顺序地执行的.要想程序改变这种自上而下的流程多一点变化,我们就要学习三种程序中的语句. ...

  3. 你好,C++(17)0.1*10不等于1.0——4.1.4 关系操作符4.1.5 逻辑操作符

    4.1.4  关系操作符 在C++中,除了需要用算术操作符对数据进行加减乘除的算术操作之外,我们有时候还需要对数据之间的关系进行操作,也就是对两个数据进行大小比较,得出它们之间的大小关系.在现实世界中 ...

  4. python 中的 %s,%r,__str__,__repr__

    1.%s,%r的区别 在进行格式化输出时,%r 与 %s 的区别就好比 repr() 函数处理对象与 str() 函数处理对象的差别. %s ⇒ str(),比较智能: %r ⇒ repr(),处理较 ...

  5. JavaScript:逻辑操作符“==”与“===”的区别

    Summary JavaScript中,逻辑操作符“===”会先检查操作数的数据类型,对不同的数据类型会返回false. 而“==”对不同类型的操作数进行比较时,会进行类型转换后再比较. Descri ...

  6. python中 and 和 or 运算的核心思想 ——— 短路逻辑

    python中 and 和 or 运算的核心思想 --- 短路逻辑 1. 包含一个逻辑运算符 首先从基本的概念着手,python中哪些对象会被当成 False 呢?而哪些又是 True 呢? 在Pyt ...

  7. Python中的集合类型分类和集合类型操作符解析

    集合类型    数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素(set elements).    Python把这个概念引入到它的集合类型对象里.集合对象是一组无 ...

  8. Python中三目计算符的正确用法及短路逻辑

    今天在看别人代码时看到这样一种写法, 感觉是个挺容易踩到的坑, 搞清楚后写出来备忘. 短路逻辑 Python中进行逻辑运算的时候, 默认采用的是一种叫做短路逻辑的运算规则. 名字是很形象的, 下面直接 ...

  9. Python中导入第三方声源库Acoular的逻辑解释以及Acoular的下载

    [声明]欢迎转载,但请保留文章原始出处→_→ 秦学苦练:http://www.cnblogs.com/Qinstudy/ 文章来源:http://www.cnblogs.com/Qinstudy/p/ ...

随机推荐

  1. 383. Ransom Note【easy】

    383. Ransom Note[easy] Given an arbitrary ransom note string and another string containing letters f ...

  2. bwlabel

    bwlabel是用来标记二维的二值图像中的连通组的,简言之,就是黑背景下面有多少白的块,也就是从黑背景甄别白块块的. L = bwlabel(BW, n) returns a matrix L, of ...

  3. python模块学习之collections

    更多信息请前往官网网址: https://docs.python.org/3.6/library/collections.html 8.3.5. namedtuple() 命名字段的元组的工场函数 命 ...

  4. 李洪强漫谈iOS开发[C语言-001]-开发概述

  5. java - day13 - ImplementDemo

    接口实现.继承等关系的运用案例P.S: 强制转换,看引用变量指向的对象与目标数据间的关系.可运用 "引用变量 instanceof 目标数据" 来判断是否可用强转 package ...

  6. _T("") vs L 到底用谁?L!

    一直没有注意这个,今天突然纠结起来这个问题,代码写多了,难免这两个混用. 现在是时候有个结论了: 如果你的工程是unicode编译,那么请明确的使用L! 如果是多字节(ansi),那么请使用_T(&q ...

  7. Flex读取txt文件里的内容报错

    Flex读取txt文件里的内容 1.详细错误例如以下 2.错误原因 读取文件不存在 var file:File = new File(File.applicationDirectory.nativeP ...

  8. vbox安装ubuntu之后挂载共享文件夹无权限访问的问题以及改了主机名,导致命令行不能解析主机名的问题

    1.挂载方法在挂载的时候虚拟机给出了命令 2. sudo adduser yourusername vboxsf (vboxsf是挂载的文件夹的用户组,在/media目录下用 ls -l 命令可以看到 ...

  9. 第一百七十八节,jQuery-UI,知问前端--对话框 UI

    jQuery-UI,知问前端--对话框 UI 学习要点: 1.开启多个 dialog 2.修改 dialog 样式 3.dialog()方法的属性 4.dialog()方法的事件 5.dialog 中 ...

  10. &&和&(||和|)区别

    上代码,引出问题 public class Test { private static int j = 0; private static Boolean methodB(int k) { j += ...