1、python算术运算符

>>> a=15
>>> b=5
>>> a+b #加
20
>>> a-b #减
10
>>> a*b #乘
75
>>> a/b #除,为浮点数
3.0
>>> a%b #取模,余数
0
>>> a**b #取幂,a的b次方
759375
>>> a//b #取整除,返回商的整数部分
3

2、python比较运算符

>>> 1==1  #等于
True
>>> 1!=1 #不等于
False
>>> 1!=2
True
>>> 1>2 #大于
False
>>> 2>1
True
>>> 2<1 #小于
False
>>> 1<2
True
>>> 2>=1 #大于或等于
True
>>> 2>=2
True
>>> 2>=3
False
>>> 2<=3 #小于或等于
True
>>> 2<=2
True
>>> 2<=1
False

3、python赋值运算符

>>> a=123
>>> a=b=c=123 #多变量赋值
>>> a,b,c=1,2,'python' #多变量按顺序赋值 >>> a,b=10,20
>>> c=0
>>> c+=a #等效于c=c+a
>>> c
10 >>> c=30
>>> c-=a #等效于c=c-a
>>> c
20 >>> c=5
>>> c*=a #等效于c=c*a
>>> c
50 >>> c=30
>>> c/=a #等效于c=c/a
>>> c
3.0 >>> c=36
>>> c%=a #等效于c=c%a
>>> c
6 >>> c=2
>>> c**=a #等效于c=c**a
>>> c
1024 >>> c=33
>>> c//=a #等效于c=c//a
>>> c
3

4、python位运算符

按位运算符是把数字看作二进制来进行计算的。

&  按位与运算符,参与运算的两个值,如果连个相对应位都为1则该位结果位1,否则为0

|  按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。

^  按位异或运算符:当两对应的二进位相异时,结果为1

~  按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1

<<  左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。

>>  右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数

a = 60    # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0 c = a & b #12 = 0000 1100 都为真即为1否则为0
print('c的&值:',c) c = a | b #61 = 0011 1101 只要有一个为真则为1否则为0
print('c的|值:',c) c = a ^ b #49 = 0011 0001 二进制结果位相异时为1否则为0
print('c的^值:',c) c = ~a #-256-195= 1100 0011 反方向取值即可以取256-(195)的值-61
print('c的~a值:',c) c = a << 2 #240= 1111 0000 对a二进制位向左位移2位,移动后面用0补齐
print('c的<<值:',c) c = a >> 2 #15 = 0000 1111 对a二进制位向右位移2位,移动后面用0补齐
print('c的>>值:',c) c的&值: 12
c的|值: 61
c的^值: 49
c的~a值: -61
c的<<值: 240
c的>>值: 15

5、python逻辑运算符

and  x and y  布尔‘与’,如果x为false,x and y返回false,否则它返回y的计算值

or  x or y  布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值

not  not x  布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True

>>> a = 10
>>> b = 20
>>> x = 0
>>> a and b #当a和b都为真时才输出b的值
20
>>> a and x #a为true,x为false时输出为0
0
>>> x and a
0 >>> a or b #a和b有一个为真则输出第一个碰到为真的值
10
>>> a or x
10
>>> y = 0
>>> x or y #两个都不满足时,才输出为0
0 >>> not a #取a的反值
False
>>> not y #y本身为false,取反就为true了
True

6、python成员运算符

Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

in  如果在指定的序列中找到值返回 True,否则返回 False。

not in  如果在指定的序列中没有找到值返回 True,否则返回 False。

>>> l1 = [1,2,3,4,5]
>>> tuple = ('a','b','c')
>>> dict = {'k1':'python','k2':'java','k3':'php'} >>> 'a' in tuple #成员在元组其中则返回true
True
>>> 1 in l1
True
>>> '' in l1 #注意这是字符串了,所以返回false
False
>>> 6 not in l1 #判断成员不在其中返回true
True
>>> 'd' not in tuple
True >>> 'python' in dict.values() #判断‘python‘在字典的value中返回true
True
>>> 'k1' not in dict.values() #k1不是values的成员,所以返回true
True
>>> 'k5' not in dict.keys()
True

7、python身份运算符

身份运算符用于比较两个对象的存储单元

is  判断两个标识符是不是引用自一个对象,如果是同一个对象则返回true否则返回false

is not  判断两个标识符是不是引用自不同的对象,如果引用的不是同一个对象则返回true,否则返回false

>>> a = 11
>>> b = 'ab' >>> a is b #引用不同对象返回false
False
>>> a is not b #引用不同对象返回true
True
>>> c = 11
>>> a is c #应用自同一个内存地址对象返回true
True
>>> id(a)
8956800
>>> id(c)
8956800 >>> a is not c #是同一个地址对象返回false
False
#is 与 == 的区别
#is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等
>>> a = [1,2,3,4]
>>> b = a
>>> id(a)
139653642018888
>>> id(b)
139653642018888
>>> a is b #内存地址相同则返回true
True
>>> a == b #值相同返回true
True
>>> b = a[:] #将a列表的值赋值给了b,此时b的内存地址发生了改变,但值同a相同
>>> id(b)
139653642018952
>>> b
[1, 2, 3, 4]
>>> b is a #内存地址不同了,则返回false
False
>>> b == a #值还是相同则返回true
True

8、python运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

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

最新文章

  1. java多线程系类:JUC原子类:01之框架
  2. 具备 jQuery 经验的人如何学习AngularJS(附:学习路径)
  3. cain使用教程
  4. 解决Win10图片打开方式没有“Windows照片查看器”问题
  5. 深入理解Javascript中this, prototype, constructor
  6. CAS原子锁 高效自旋无锁的正确用法
  7. knockoutJS+knockout.multimodels使用记录
  8. Effective Java 27 Favor generic methods
  9. vs2015上配置Armadillo+openBlas
  10. (原)STL中vector的疑问
  11. 【MS SQL】把多个数据库合并为一个新的数据库
  12. IIS 服务无法在此时接受控制信息
  13. webpack基础打包安装分享
  14. Scrapy:配置日志
  15. 真实分享记录我学习Linux系统遇到的问题
  16. Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC 配置校验器
  17. Triangle leetcode java
  18. OCMock 3 参考
  19. Robotium测试套管理测试用例
  20. js 延时

热门文章

  1. 一、OpenStack入门 之 初步认识
  2. 一、Spring Cloud介绍
  3. 自学WPF之Binding(二)
  4. 深入理解计算机系统_3e 第八章家庭作业 CS:APP3e chapter 8 homework
  5. redis的set类型
  6. iOS手势之pinch
  7. 3D位置语音,引领吃鸡游戏体验升级
  8. iOS 网络监听、判断
  9. three.js实现3D模型展示
  10. 使用VMware安装linux虚拟机以及相关配置