比较运算符

以下假设变量a为10,变量b为20:

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False.
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 (a < b) 返回 true。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。

逻辑运算符

运算符 逻辑表达式 描述
and x and y 只要有一个运算数是False,结果就是False; 只有所有的运算数都为True时,结果才是True 做取值运算时,取第一个为False的值,如果所有的值都为True,取最后一个值。 True and True and False–>结果为False True and True and True–>结果为True 1 and 0 and 2–>结果是0; 1 and 2 and 3–>结果是3
or x or y 只要有一个运算数是True,结果就是True; 只有所有的运算数都为False时,结果才是False 做取值运算时,取第一个为True的值,如果所有的值都为False,取最后一个值。 False or False or True–>结果为True False or False or False–>结果为False 1 or 0 or 2–>结果是1; 0 or None or () or ‘’ or {} -->结果是{}
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False

注意:

比较运算符中 会把布尔值转为数字进行比较 a == True 改为 2 == 1 所以不等于为False

逻辑运算符 会把数值转为布尔值 True默认为1 False为0 所有不为0的数值都为True(包括负数)

逻辑短路问题

a = 34a > 10 and print('hello world')
a < 10 and print('hello world')a >10 or print('你好世界')
a <10 or print('你好世界')
'''输出结果为 hello world   (第一排的hello world)你好世界       (第二排的你好世界)and逻辑运算符判断为两个都为True即输出hello world  第二排为False所以输出第一个or逻辑运算符判断为只要其中一个对了就为True  所以在判断 a>10为True的时候  即默认为True   后面的print没有判断  而第二排的a<10为False  然后判断后面的print  所以输出了'你好世界' '''

补充:位运算符(这里我自己也没那么明白 参考老师的做了表格)

按位运算符是把数字看作是二进制来进行计算的。 下表中变量 a 为 60,b 为 13,二进制格式如下:

a = 0011 1100  # 60的二进制
b = 0000 1101  # 13的二进制
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a  = 1100 0011
位运算 描述 示例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111

运算符优先级

当多种运算符做混合运算时,就会涉及到先运算哪个,后运算哪个问题。以下表格列出了从最高到最低优先级的所有运算符:

运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 ‘AND’
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not>and>or 逻辑运算符

ps:

在以后的实际开发中,如果有多种运算符进行混合运算时,强烈建议使用小括号来手动的控制运算符的优先级!

比较运算符,逻辑运算符,位运算符,运算符优先级相关推荐

  1. C语言运算符逻辑运算符位运算符

    逻辑运算符 下表显示了 C 语言支持的所有关系逻辑运算符.假设变量 A 的值为 1,变量 B 的值为 0,则: 运算符 描述 实例 && 称为逻辑与运算符.如果两个操作数都非零,则条件 ...

  2. c语言运算符逻辑运算符,C语言运算符之逻辑运算符

    下表是显示了C语言支持的所有逻辑运算符. 假设变量a,变量b. 创建源文件:mlogical_operators.c,代码如下: #include main() { int a = 5; int b ...

  3. 4、Python运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符、运算符优先级(学些笔记)

    4.1Python算术运算符 以下假设变量:a = 10,b=20 示例: # -*- coding: UTF-8 -*-a = 25 b = 3 c = 0c = a + b print(" ...

  4. 【笔记】Java的运算符(赋值运算符号、一元运算符、算术运算符、关系运算符、自增与自减运算符、逻辑运算符、括号运算符、位运算符、三元(三目)运算符)、表达式与语句:简洁表达式

    文章目录 一.运算符 1.赋值运算符号 2.一元运算符 3.算术运算符 4.关系运算符 5.自增与自减运算符 6.逻辑运算符 7.括号运算符 8.位运算符 左移位: 右移位: 9.三元(三目)运算符 ...

  5. MySQL运算符(逻辑运算符,比较运算符,位运算符)

    MySQL的运算符包括: 算术运算符 (类似数学中的 + - * /),在此基础上增加取余,也就是模运算,比较运算符,逻辑运算符,非符号运算符,位运算符. 本次重点讲解 逻辑运算符,和比较运算符,非符 ...

  6. swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)...

    swift:高级运算符 http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和 ...

  7. Verilog HDL中位运算符、逻辑运算符和缩减运算符的区别

    文章目录 前言 一.单目运算符.双目运算符和三目运算符 二.位运算符 三.逻辑运算符 四.缩减运算符 五.总结 前言 我们在学习和理解Verilog HDL中的一些运算符的意义时,可能会对一些运算符的 ...

  8. 【详解】位运算符:位逻辑运算符,位移运算符(<<左移,>>右移)

    位运算符包括位逻辑运算符.位移运算符.最近做算法的时候经常用到,现在来总结下. 重点掌握的是 左移 << ,右移 >> . 1.位逻辑运算符 那么位逻辑运算符怎么计算的呢?先看 ...

  9. 逻辑运算符 位运算符_在现代PHP中,按位运算符仍然有意义吗?

    逻辑运算符 位运算符 Many of you probably scratched your heads reading this title. "Bitwhat?" 你们中的许多 ...

  10. python位运算用途_Python 位运算符与位运算

    总结: 位运算符 是 直接对整数在内存中的二进制位进行操作: Python运算符优先级: 以下表格列出了从最高到最低优先级的所有运算符: 运算符 描述 ** 指数 (最高优先级) ~ + - 按位翻转 ...

最新文章

  1. 计算机转集成光学,集成光学
  2. On the Old, the New —— 用sql语句生成语句的例子
  3. 快讯 | 美国投资公司Avenue Capital Group联合创始人Marc Lasry:比特币价格可能达到40,000美元...
  4. servlet指定时间到现在过了多久_就喝一瓶啤酒,多久能开车?交警:过了这个时间,100%没问题...
  5. 20201014 《计算感知》第2节课 笔记
  6. 2021牛客OI赛前集训营-提高组(第五场)D-牛牛的border【SAM】
  7. python中的创建对象
  8. TransR:实体和关系分开嵌入(知识图谱嵌入)2015 AAAI
  9. 安卓逆向系列教程 4.1 字符串资源
  10. java 读取 tgz_java – 从Spark中的压缩中读取整个文本文件
  11. 黑马程序员--IO总结(含2个设计模式)
  12. 适合运动健身的蓝牙耳机推荐,六款适合运动健身的蓝牙耳机
  13. python迭代器是什么_python中什么是迭代器
  14. CityEngine2018正版免费申请试用教程
  15. 大数据的理解,大数据是什么,大数据能干什么?
  16. Transact-SQL(T-SQL)编程
  17. 前程无忧达成私有化协议:遭遇大砍价 作价降至43亿美元
  18. java如何获取手机号码归属地_在java中如何根据手机号查询号码归属地
  19. web服务器,web中间件,web容器的区别
  20. 信息系统基本知识(二)(兼顾第四版教程)

热门文章

  1. 链路聚合_【网络干货】链路聚合可靠性技术详解
  2. TCP和UDP协议的主要特点和应用场合
  3. 脊髓压迫症的治疗原则
  4. 【C语言】预处理超级详细解析
  5. 雷军最新万字演讲:传统产业如何借助互联网思维转型升级?
  6. mysql 如何查询当前年月日时分秒
  7. c语言从入门到入狱段子,坑人的套路一问一答
  8. BeautifulSoup4解析器
  9. JVM01_概述、跨平台原理、分类、三大商业虚拟机
  10. PyCharm 界面介绍