Python语言支持以下类型的运算符:
1算术运算符
2比较(关系)运算符
3赋值运算符
4逻辑运算符
5位运算符
6成员运算符
7身份运算符
8运算符优先级
以下的:
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 |
设:
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 |
设:
三个数为a;b;c
运算 符 | 功能 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 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 |
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
~ 按位取反运算符
换位取反运算符:
A = 5 ~A = -6
A = -5 ~A = 4
所有正整数的按位取反是其本身+1的负数
所有负整数的按位取反是其本身+1的绝对值
零的按位取反是 -1
转换:
负数部分:
原码和反码的相互转换:符号位不变,数值位按位取反
原码和补码的相互转换:符号位不变,数值位按位取反,末位再加1
已知补码,求原码的负数的补码:符号位和数值位都取反,末位再加1
正整数的原码、反码和补码都一样;
#原码即数值的二进制代码三十二位 首位位符号位
-19的二进制 1…… 0010011
反码 0…… 1101100 反码转补码 +1
补码 0…… 1101101
按位取反 0…… 0010010(转原码为十进制位18)
~-19=18
9的二进制
0…… 0001001(原) 正数的原码反码补码一样
1…… 1110110 反补一样
1…… 0001001 转原码时候 这里要+1
1…… 0001010 换位取反
有符号的十进制即为 -10
首先,‘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 |
运算符 | 功能 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False | print(x in y) , 如果 x 在 y 序列中 #(输出)True |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False | print(x in y) , 如果 x 不在 y 序列中 #(输出) True |
运算符 | 描述 | 实例 |
---|---|---|
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 |
运算符 | 功能 |
---|---|
** | 指数 (最高优先级) |
* / % // | 乘,除,取模和取整除 |
~ + - | 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@ |
& | 加法减法 |
>> << | 右移,左移运算符 |
^ | 位运算符 |
<= < > >= | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |