Python从入门到实战系列——目录

Python语言支持以下类型的运算符:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

算术运算符

  • Python中算术运算符包含:+,-,*,/,%,**,//
a = 10
b = 5
a + b 返回结果 15
a - 5 返回结果 5
a * b 返回结果 50
a / b 返回结果 2.0 # / 总是返回浮点数
a % b 返回结果 0 # % 表示a除以b取余数
a ** b 返回结果 100000 # ** 表示 a 的 b 次方
a // b 返回结果 2 # // 表示 a 除以 b 的商的整数部分
10.0 // 5.0 返回结果 2

比较运算符

  • Python中比较运算符包含:>,<,>=,<=,==,!=
a = 10
b = 5
( a > b ) 返回结果 True
( a < b ) 返回结果 False
( a >= b ) 返回结果 True
( a <= b ) 返回结果 False
( a == b ) 返回结果 False
( a != b ) 返回结果 True

赋值运算符

  • Python中赋值运算符包含:=,+=,-=,*=,/=,%=,**=,//=
a = 10
b = 20
c = a + b # 将 a + b 的值赋值给c
c += a # 相当于 c = c + a
c -= a # 相当于 c = c - a
c *= a # 相当于 c = c * a
c /= a # 相当于 c = c / a
c %= a # 相当于 c = c % a
c **= a # 相当于 c = c ** a
c //= a # 相当于 c = c // a

逻辑运算符

  • Python中逻辑运算符包含:and,or,not
  • and: 布尔"与"; x and y 表示如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值;
a = 10
b = 20
print( a and b ) # 输出:20
  • or: 布尔"或"; x or y 表示 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值;
a = 10
b = 20
print( a or b ) # 输出:10
  • not: 布尔"非"; not x 表示如果 x 为 True,返回 False 。如果 x 为 False,它返回 True;
a = 10
b = 20
print(not(a==10)) # 输出:False
print(not(b==10)) # 输出:True

位运算符

  • Python中位运算符包含:&,|,^,~,<<,>>;按位运算符是把数字看作二进制来进行计算的;
  • & (按位与运算符):参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0;
a = 0b0011 1100
b = 0b0000 1101
a & b = 0000 1100
  • | (按位或运算符):只要对应的二个二进位有一个为1时,结果位就为1;
a = 0b0011 1100
b = 0b0000 1101
a | b = 0011 1101
  • ^ (按位异或运算符):当两对应的二进位相异时,结果为1;
a = 0b0011 1100
b = 0b0000 1101
a ^ b = 0011 0001
  • ~ (按位取反运算符):对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1;
a = 0b0011 1100
~a = 1100 0011
  • << (左移动运算符):运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0;
a = 0b0011 1100
a << 2 # a 左移两位,即结果:1111 0000
  • “>>” (右移动运算符):把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数;
a = 0b0011 1100
a >> 2 # a 右移两位,即结果:0000 1111

成员运算符

  • Python中成员运算符包含:in,not in;
  • in:如果在指定的序列中找到值返回 True,否则返回 False;
a = 10
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print ("变量 a 在列表中 list 中")
else:
print("变量 a 不在列表 list 中")
  • not in:如果在指定的序列中没有找到值返回 True,否则返回 False;
a = 10
list = [1, 2, 3, 4, 5 ];
if ( a not in list ):
print ("变量 a 不在列表中 list 中")
else:
print("变量 a 在列表 list 中")

身份运算符

  • Python中身份运算符包含:is,is not;身份运算符用于比较两个对象的存储单元
  • is 判断两个标识符是不是引用自一个对象,x is y, 类似 id(x) == id(y);
a = 20
b = 20
if ( a is b ):
print (" a 和 b 有相同的标识")
else:
print (" a 和 b 没有相同的标识")
if ( id(a) == id(b) ):
print (" a 和 b 有相同的标识")
else:
print (" a 和 b 没有相同的标识")
# 输出结果均为: a 和 b 有相同的标识
# 修改 b 的值
b = 30
if ( a is b ):
print (" a 和 b 有相同的标识")
else:
print (" a 和 b 没有相同的标识")
# 输出结果: a 和 b 没有相同的标识
  • is not 判断两个标识符是不是引用自不同对象,x is not y , 类似 id(a) != id(b)
a = 20
b = 30
if ( a is not b ):
print (" a 和 b 没有相同的标识")
else:
print (" a 和 b 有相同的标识")
if ( id(a) != id(b) ):
print (" a 和 b 没有相同的标识")
else:
print (" a 和 b 有相同的标识")
# 输出结果均为: a 和 b 没有相同的标识
# 修改 b 的值
b = 20
if ( a is not b ):
print (" a 和 b 没有相同的标识")
else:
print (" a 和 b 有相同的标识")
# 输出结果: a 和 b 有相同的标识

运算符优先级

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

最新文章

  1. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
  2. Java String,StringBuffer和StringBuilder的区别
  3. Linux下 RabbitMQ的安装与配置-3
  4. 【转】iOS开发-Protocol协议及委托代理(Delegate)传值
  5. new失败判断
  6. Video Surveillance - POJ 1474(判断是否存在内核)
  7. cmake,gtest单元测试程序
  8. InetAddress类的使用
  9. UESTC_秋实大哥与线段树 2015 UESTC Training for Data Structures&lt;Problem M&gt;
  10. 构建Nginx均衡LAMP高性能服务器
  11. JAVA_SE基础——29.构造函数
  12. MySQL中使用sql语句获得表结构
  13. javascript基础修炼(1)——一道十面埋伏的原型链面试题
  14. OAuth2简易实战(二)-模拟客户端调用
  15. 基于.NET框架的消息通信组件ZMQ资料汇编-总目录
  16. SNF快速开发平台2018-移动端代码生成器已发布
  17. 剑指offer题目java实现
  18. win10中显示资源管理器扩展
  19. TCP封包解包---如有错误,请纠正!
  20. java nio buffer读取数据乱码问题

热门文章

  1. Windows/Linux获取当前运行程序的绝对路径
  2. 树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)
  3. POJ 3687 Labeling Balls(反向拓扑+贪心思想!!!非常棒的一道题)
  4. kubernetes 禁用虚拟内存 swapoff -a ----- 顺便复习sed 命令
  5. Beautifulsoap - request 网络爬虫 (转)
  6. ORA-02291: 违反完整约束条件 - 未找到父项关键字
  7. jqgrid 分页时,清空原表格数据加载返回的新数据
  8. 【小程序】&lt;image&gt;图片实现宽度100%时,高度自适应
  9. POJ1035&amp;&amp;POJ3080&amp;&amp;POJ1936
  10. OFS环境,删除Resource 时出现错误失败,应该如何继续