上一章Python教程请查看:python变量类型学习笔记总结
操作符是可以操作操作数值的结构,这一章我们讨论python所有的操作符及其用法。
考虑表达式4 + 5 =
9,在这里4和5被称为操作数,而+被称为操作符。
1、操作符的类型Python语言支持以下类型的操作符。
- 算术运算符
- 比较(关系)操作符
- 赋值操作符
- 逻辑运算符
- 按位运算符
- 成员操作符
- 标识符
2、Python算术运算符下表是python的所有可用算术运算操作符:
操作符 | 描述 | 例子 |
+ 加法 | 添加值两侧的操作符。 | a + b = 30 |
– 减法 | 从左操作数减去右操作数。 | a – b = -10 |
* 乘法 | 将操作符两边的数进行相乘 | a * b = 200 |
/ 除法 | 用右操作数除左操作数 | b / a = 2 |
% 取模 | 将左操作数除以右操作数,返回余数 | b % a = 0 |
**指数 | 执行指数(幂)计算操作符 | a**b =10的20次方 |
// | 底数除法——操作数的除法,其结果是小数点后的数字被除去的商。但是如果其中一个操作数是负的,则结果为负,也就是从零到负无穷四舍五入 | 9//2 = 4 and 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0 |
#!/usr/bin/pythona = 21
b = 10
c = 0c = a + b
print "c = a + b: ", cc = a - b
print "c = a – b: ", c c = a * b
print "c = a * b: ", c c = a / b
print "c = a / b: ", c c = a % b
print "c = a % b: ", ca = 2
b = 3
c = a**b
print "c = a**b: ", ca = 10
b = 5
c = a//b
print "c = a//b: ", c
3、Python比较运算符这些操作符比较它们两边的值,并确定它们之间的关系,它们也被称为关系运算符。
下表是python的所有比较运算符及其使用示例。
操作符 | 描述 | 例子 |
== | 如果两个操作数的值相等,则条件为真。 | (a == b) is not true. |
!= | 如果两个操作数的值不相等,则条件为真。 | (a != b) is true. |
< > | 如果两个操作数的值不相等,则条件为真。 | (a < > b) is true.和 != 操作符类似. |
> | 如果左操作数的值大于右操作数的值,则条件为真。 | (a > b) is not true. |
< | 如果左操作数的值小于右操作数的值,则条件为真。 | (a < b) is true. |
> = | 如果左操作数的值大于或等于右操作数的值,则条件为真。 | (a > = b) is not true. |
< = | 如果左操作数的值小于或等于右操作数的值,则条件为真。 | (a < = b) is true. |
#!/usr/bin/pythona = 21
b = 10
c = 0if ( a == b ):
print "a == b"
else:
print "a != b"if ( a != b ):
print "a != b"
else:
print "a == b"if ( a <
> b ):
print "a != b"
else:
print "a == b"if ( a <
b ):
print "a <
b"
else:
print "a >= b"if ( a > b ):
print "a > b"
else:
print "a <
= b"a = 5;
b = 20;
if ( a <
= b ):
print "a <
= b"
else:
print "a > b"if ( b >= a ):
print "b >= a"
else:
print "b <
a"
4、Python赋值操作符下表是python的所有赋值操作符以及响应的示例。
操作符 | 描述 | 例子 |
= | 将右侧操作数的值赋给左侧操作数 | 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 / ac /= a等价于c = c / a |
%= | 它使用两个操作数取模并将结果赋给左操作数 | c %= a等价于c = c % a |
**= | 执行指数(幂)计算操作符和赋值左操作数 | c **= a等价于c = c ** a |
//= | 它对操作符进行层划分,并为左操作数赋值 | c //= a等价于c = c // a |
#!/usr/bin/pythona = 21
b = 10
c = 0c = a + b
print "a + b: ", cc += a
print "c += a: ", c c *= a
print "c *= a: ", c c /= a
print "c /= a: ", c c= 2
c %= a
print "c %= a: ", cc **= a
print "c **= a: ", cc //= a
print "c //= a: ", c
5、Python按位运算符按位运算符处理位,假设a = 60; b = 13; 在二进制格式中,它们是这样的:
a = 0011 1100
b = 0000 1101
— — — — — –
a& b = 0000 1100
a|b = 0011 1101
a^b = 00110001
~a = 1100 0011
Python语言支持以下位操作符:
操作符 | 描述 | 例子 |
& 二进制与 | 如果结果在两个操作数中都存在,则运算符将向结果复制一位 | (a & b) (即 0000 1100) |
| 二进制或 | 如果它存在于任何一个操作数中,它就会复制一位。 | (a | b) = 61 (即 0011 1101) |
^二进制XOR | 如果在一个操作数中设置了位,而不是两个操作数都设置了位,那么它将复制该位。 | (a ^ b) = 49 (表示 0011 0001) |
~二进制补码 | 它是一元的,具有“翻转”位的效果。 | (~a) = -61(表示2的补码形式1100 0011,由于是带符号的二进制数。 |
< < 二进制左移 | 左操作数值由右操作数指定的位数向左移动。 | a < < 2 = 240 (即 1111 0000) |
> > 二进制右移 | 左操作数值按右操作数指定的位数右移。 | a > > 2 = 15 (即 0000 1111) |
#!/usr/bin/pythona = 60# 60 = 0011 1100
b = 13# 13 = 0000 1101
c = 0c = a &
b;
# 12 = 0000 1100
print "行 1 – c的值: ", cc = a | b;
# 61 = 0011 1101
print "行 2 - C的值: ", cc = a ^ b;
# 49 = 0011 0001
print "行 3 - C的值: ", cc = ~a;
# -61 = 1100 0011
print "行 4 - C的值: ", cc = a <
<
2;
# 240 = 1111 0000
print "行 5 - C的值: ", cc = a >> 2;
# 15 = 0000 1111
print "行 6 - C的值: ", c
6、Python逻辑运算符Python语言支持以下逻辑操作符。假设变量a=10; b=20。
操作符 | 描述 | 例子 |
与逻辑and | 如果两个操作数都为真,则条件为真。 | (a and b) is true. |
或逻辑or | 如果两个操作数中有一个非零,则条件为真。 | (a or b) is true. |
非逻辑not | 用于反转其操作数的逻辑状态。 | Not(a and b) is false. |
操作符 | 描述 | 例子 |
in | 如果在指定的序列中找到一个变量,则计算为true,否则为false。 | x在y中,如果x是序列y中的一个元素,结果就是1。 |
not in | 如果没有找到指定序列中的变量,则计算为true,否则为false。 | x不在y中,如果x不在序列y中,那么结果就是1。 |
#!/usr/bin/pythona = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
print "行 1 - a在给定的列表中可用"
else:
print "行 1 -a在给定的列表中不可用"if ( b not in list ):
print "行 2 -b在给定的列表中不可用"
else:
print "行 2 - b在给定的列表中可用"a = 2
if ( a in list ):
print "行 3 - a在给定的列表中可用"
else:
print "行 3 - a在给定的列表中不可用"
8、Python标识符标识符比较两个对象的内存位置,这里有两个恒等算子。
操作符 | 描述 | 例子 |
is | 如果操作符两边的变量指向相同的对象,则计算结果为true,否则为false。 | x是y,这是结果1,如果id(x)等于id(y) |
is not | 如果操作符两边的变量指向相同的对象,则为false,否则为true。 | 如果id(x)不等于id(y)那么x不等于1。 |
#!/usr/bin/pythona = 20
b = 20if ( a is b ):
print "行 1 - a和b具有相同的恒等式"
else:
print "行 1 - a和b没有相同的恒等式"if ( id(a) == id(b) ):
print "行 2 - a和b具有相同的恒等式"
else:
print "行 2 - a和b没有相同的恒等式"b = 30
if ( a is b ):
print "行 3 - a和b具有相同的恒等式"
else:
print "行 3 - a和b没有相同的恒等式"if ( a is not b ):
print "行 4 - a和b没有相同的恒等式"
else:
print "行 4 - a和b具有相同的恒等式"
9、Python运算符优先级【python编程基本操作符用法总结 – Python入门开发教程】下表列出了从最高优先级到最低优先级的所有操作符。
编号 | 操作符 & 描述 |
1 | ** 取幂 |
2 | ~ + – 补码、一元加减码(后两个方法名是+@和-@) |
3 | * / % // 乘法、除法、乘除和向下除法 |
4 | + – 加法和减法 |
5 | > > < < 左右逐位移位 |
6 | & 按位”and“ |
7 | ^ | 按位或 |
8 | < = < > > = 比较操作符 |
9 | < > == != 相等操作 |
10 | = %= /= //= -= += *= **= 赋值操作符 |
11 | is is not 标识符 |
12 | in not in 成员操作符 |
13 | not or and 逻辑操作符 |
推荐阅读
- python条件语句用法学习总结- Python入门开发教程
- python变量类型学习笔记总结 – Python入门开发教程
- 看过最好的python基本语法知识总结 – Python入门开发教程
- python编程环境安装步骤详解 – Python入门开发教程
- python编程入门介绍 – Python入门开发教程
- pycharm相关|Pycharm远程连接时部署灰色解决
- pycharm相关|远程连接断开后程序继续运行——Screen使用记录
- pytorch学习|深度学习pytorch代码: transforms结构及用法 常见的transforms
- nlp|Onehot_encode与Word2vec词向量训练