博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3之运算符
阅读量:4568 次
发布时间:2019-06-08

本文共 3505 字,大约阅读时间需要 11 分钟。

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!=2True>>> 1>2   #大于False>>> 2>1True>>> 2<1    #小于False>>> 1<2True>>> 2>=1   #大于或等于True>>> 2>=2True>>> 2>=3 False>>> 2<=3   #小于或等于True>>> 2<=2True>>> 2<=1False

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>>> c10>>> c=30>>> c-=a  #等效于c=c-a>>> c20>>> c=5>>> c*=a   #等效于c=c*a>>> c50>>> c=30>>> c/=a   #等效于c=c/a>>> c3.0>>> c=36>>> c%=a   #等效于c=c%a>>> c6>>> c=2>>> c**=a   #等效于c=c**a>>> c1024>>> c=33>>> c//=a   #等效于c=c//a>>> c3

4、python位运算符

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

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

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

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

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

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

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

a = 60    # 60 = 0011 1100b = 13    # 13 = 0000 1101c = 0c = a & b  #12 = 0000 1100  都为真即为1否则为0print('c的&值:',c)c = a | b  #61 = 0011 1101  只要有一个为真则为1否则为0print('c的|值:',c)c = a ^ b  #49 = 0011 0001  二进制结果位相异时为1否则为0print('c的^值:',c)c = ~a     #-256-195= 1100 0011  反方向取值即可以取256-(195)的值-61print('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的&值: 12c的|值: 61c的^值: 49c的~a值: -61c的<
<值: 240c的>
>值: 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时输出为00>>> x and a0>>> a or b  #a和b有一个为真则输出第一个碰到为真的值10>>> a or x10>>> y = 0>>> x or y   #两个都不满足时,才输出为00>>> 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 #成员在元组其中则返回trueTrue>>> 1 in l1True>>> '1' in l1 #注意这是字符串了,所以返回falseFalse>>> 6 not in l1 #判断成员不在其中返回trueTrue>>> 'd' not in tupleTrue>>> 'python' in dict.values() #判断‘python‘在字典的value中返回trueTrue>>> 'k1' not in dict.values() #k1不是values的成员,所以返回trueTrue>>> 'k5' not in dict.keys()True

7、python身份运算符

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

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

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

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

8、python运算符优先级

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

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

转载于:https://www.cnblogs.com/zhangxinqi/p/7651801.html

你可能感兴趣的文章
ARC076F Exhausted
查看>>
TC1570 DesertWind
查看>>
CF277D Google Code Jam
查看>>
(七)unittest单元测试框架
查看>>
(八) 自动化测试的实例(以浏览器为例)
查看>>
js获取单选框和复选框的值并判断值存在后允许转跳
查看>>
任务一:零基础HTML编码
查看>>
C#类和结构以及堆和栈大烩菜(本来就迷,那就让暴风来的更猛烈吧!)
查看>>
Bayan 2012-2013 Elimination Round (ACM ICPC Rules, English statements) A. Old Peykan
查看>>
jmeter之jdbc请求
查看>>
Windows常用命令集
查看>>
C语言习题三
查看>>
94. Binary Tree Inorder Traversal
查看>>
MongoDB安装及多实例启动
查看>>
[css]我要用css画幅画(三)
查看>>
eletron打包
查看>>
numpy
查看>>
django | 连接mysql数据库
查看>>
labelme2coco问题:TypeError: Object of type 'int64' is not JSON serializable
查看>>
Python字符串操作
查看>>