Python中运算符详解
Python语言支持以下类型的运算符: 1算术运算符 2比较(关系)运算符 3赋值运算符 4逻辑运算符 5位运算符 6成员运算符 7身份运算符 8运算符优先级
1.Python算术运算符
以下的: a = 10;b = 11
运算符
功能
实例
- 减
得到负数或是一个数减去另一个数
print(a+b) #(输出)21
+ 加
两个对象相加
print( a - b) #(输出)-1
* 乘
两个数相乘或是返回一个被重复若干次的字符串
print(a * b ) #(输出)110
/ 除
x 除以 y
print(b / a) #(输出)1.1
% 取模
返回除法的余数
print( b % a ) #(输出)1
** 幂
返回x的y次幂
print(a**b ) #(输出)100000000000
// 取整除
返回商的整数部分
print(a**b ) #(输出)1
2.Python比较运算符
设: a = 10;b = 11
运算 符
功能
实例
== 等于
比较对象是否相等
print( a == b ) #(输出)False
!= 不等于
比较两个对象是否不相等
print( a! = b ) #(输出)True
> 大于
返回x是否大于y
print ( a > b ) #(输 出)False
< 小于
小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写
print ( b < a ) #(输出)False
>= 大于等于
返回x是否大于等于y
print( b>= a ) #(输出)True
<= 小于等于
返回x是否小于等于y
print(a <=b ) #(输出)True
3.Python赋值运算符
设: a = 10;b = 11
运算 符
功能
实例
== 等于
比较对象是否相等
print( a == b ) #(输出)False
!= 不等于
比较两个对象是否不相等
print( a! = b ) #(输出)True
> 大于
返回x是否大于y
print ( a > b ) #(输 出)False
< 小于
小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写
print ( b < a ) #(输出)False
>= 大于等于
返回x是否大于等于y
print( b>= a ) #(输出)True
<= 小于等于
返回x是否小于等于y
print(a <= b ) #(输出)True
4.Python位运算符
a = 10;b = 11 print(“十进制数为:”, dec) print(“转换为二进制为:”, bin(dec)) print(“转换为八进制为:”, oct(dec)) print(“转换为十六进制为:”, hex(dec)) 二进制为: #(输 出)a: 0b1010 二进制为: #(输 出)b: 0b1011 其实就是对比二进制数的,有点相当于加减法的式子,进行对比判断得出数字。
运算 符
功能
实例
&
按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
print( a & b ) # ( 输出)10 ;(二进制为: 0b1010)
I
按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
print( a I b ) #(输出)11;(二进制为: 0b1011)
^
按位异或运算符:当两对应的二进位相异时,结果为1
print ( a ^ b ) #(输 出)1;(二进制:0b1)
~
按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
print ( ~a ) #(输出)-11;(二进制:-0b1011)
<<
左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
print( a << 2 ) #(输出)40;(二进制:0b101000)
>>
右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数
print( a >> 2 ) #(输出)2;(二进制:0b10)
详解:
数字转化为二进制都是十六位字节: 1000000000000001 开头的1代表符号位为正, 开头的0代表符号位为负 符号位不移动
a&b(两个相应位都为1,则该位的结果为1,否则为0) :
1000……1 0 1 0
1000……1 0 1 1
上下对比判断:
1000……1 0 1 0 二级制数
print(a&b)则转化为十进制输出得 10
a | b(二个二进位有一个为1时,结果位就为1) :
1000……1 0 1 0
1000……1 0 1 1
上下对比判断:
1000……1 0 1 1 二级制数
print(a | b)则转化为十进制输出得 11
a ^ b(当两对应的二进位相异时,结果为1,否则为0) :
1000……1 0 1 0
1000……1 0 1 1
上下对比判断:
0000……0 0 0 1 二级制数
print(a&b)则转化为十进制输出得 1
~a(二进制位取反,即把1变为0,把0变为1) :
1000……1 0 1 0
上下对比判断:
0111……0 1 0 1 二级制数 总的十六个字节
print(a&b)则转化为十进制输出得 -11
a<<2(各二进位全部左移若干位,由"<<" 右边的数指定移动的位数,高位丢弃,低位补0) :
1000 …… 1 0 1 0
上下对比判断:
1000…… 1 0 1 0 0 0 二级制数
print(a<<2)则转化为十进制输出得 40
a>>2(各二进位全部左移若干位,由"<<" 右边的数指定移动的位数,高位丢弃,低位补0) :
1000 …… 1 0 1 0
上下对比判断:
1000…… 0 0 1 0 二级制数
print(a>>2)则转化为十进制输出得 2
5.Python逻辑运算符
首先,‘and’、‘or’和‘not’的优先级是not>and>or 逻辑操作符and 和or 也称作短路操作符(short-circuitlogic)或者惰性求值(lazy evaluation): 它们的参数从左向右解析,一旦结果可以确定就停止。 如果A 和C 为真 而B 为假, A and B and C 不会解析C 。 作用于一个普通的非逻辑值时,短路操作符的返回值通常是短路时的最后一个变量。
运算符
逻辑表达式
功能
实例
and
x and y
布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值
print(a and b) #(输出) 20
or
x or y
布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值
print((a or b) #(输出) 10
not
not x
布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,#(输出) True
print(not(a and b)) #(输出) False
6.Python成员运算符
运算符
功能
实例
in
如果在指定的序列中找到值返回 True,否则返回 False
print(x in y) , 如果 x 在 y 序列中 #(输出)True
not in
如果在指定的序列中没有找到值返回 True,否则返回 False
print(x in y) , 如果 x 不在 y 序列中 #(输出) True
7.Python身份运算符
运算符
描述
实例
is
is是判断两个标识符是不是引用自一个对象
print(x is y) , , 如果 id(x) 等于 id(y) , is #(输出) 1
is not
is not是判断两个标识符是不是引用自不同对象
print(x is not y)如果 id(x) 不等于 id(y). is not #(输出) 1
8.Python运算符优先级
运算符
功能
**
指数 (最高优先级)
* / % //
乘,除,取模和取整除
~ + -
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@
&
加法减法
>> <<
右移,左移运算符
^
位运算符
<= < > >=
等于运算符
= %= /= //= -= += *= **=
赋值运算符
is is not
身份运算符
in not in
成员运算符
not or and
逻辑运算符