Python基础篇【第二篇】:运算符

运算符:

运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如1+2,其中数字1和2就是操作数而+号就是运算符。

Python中运算符包括:算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级。

假设变量a=10,b=20然后用Python中所有的运算符进行操作:

Python算术运算符

运算符描述实例
+ 加 - 两个对象相加 a + b 输出结果 30
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 - x除以y b / a 输出结果 2
% 取模 - 返回除法的余数 b % a 输出结果 0
** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000
// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
 1 #!/usr/bin/env python3
 2 
 3 a = 10
 4 b = 20
 5 
 6 c = a + b   #两数相加
 7 print(c)
 8 
 9 c = a - b   #两数相减
10 print(c)
11 
12 c = a * b   #两数相乘
13 print(c)
14 
15 c = a / b   #两数相除
16 print(c)
17 
18 c = a % b   #取模,返回除法的余数
19 print(c)
20 
21 c = a ** b  #幂(次方)
22 print(c)
23 
24 c = a // b  #取整数,返回商的整数部分
25 print(c)

运行结果如下:

 1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/Arithmetic_operators.py
 2 30
 3 -10
 4 200
 5 0.5
 6 10
 7 100000000000000000000
 8 0
 9 
10 Process finished with exit code 0

Python比较运算符

运算符描述实例
== 等于 - 比较对象是否相等 (a == b) 返回 False。 
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true. 
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 true。 
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。 

 1 #!/usr/bin/env python3
 2 
 3 a = 10
 4 b = 20
 5 c = 0
 6 
 7 if (a == b):        #等于
 8     print('a等于b')
 9 else:
10     print('错误')
11 
12 if (a != b):        #不等于
13     print('a不等于b')
14 else:
15     print('错误')
16 
17 # if (a <> b):        #不等于(python2.x)
18 #     print('a不等于b')
19 # else:
20 #     print('错误')
21 
22 if (a > b):         #大于
23     print('a大于b')
24 else:
25     print('错误')
26 
27 if (a < b):         #小于
28     print('a小于b')
29 else:
30     print('错误')
31 
32 if (a >= b):        #大于等于
33     print('a大于等于b')
34 else:
35     print('错误')
36 
37 if (a <= b):        #小于等于
38     print('a小于等于b')
39 else:
40     print('错误')

运行结果:

1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/bijiaoyunsuanfu.py
2 错误
3 a不等于b
4 错误
5 a小于b
6 错误
7 a小于等于b
8 
9 Process finished with exit code 0

*注意"<>"这个运算符(不等于)在Python3.x中已经移除了!比较结果如下:

 1 bogon:~ zk$ python
 2 Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
 3 [GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
 4 Type "help", "copyright", "credits" or "license" for more information.
 5 >>> a = 10
 6 >>> b = 20
 7 >>> if (a <> b):
 8 ...     print('yes')
 9 ... else:
10 ...     print('no')
11 ... 
12 yes
13 >>> exit()
14 bogon:~ zk$ python3
15 Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
16 [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
17 Type "help", "copyright", "credits" or "license" for more information.
18 >>> a = 10
19 >>> b = 20
20 >>> if (a <> b):
21   File "<stdin>", line 1
22     if (a <> b):
23            ^
24 SyntaxError: invalid syntax    #语法错误在Python3.x中没有这个运算符!

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 / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a

1
#!/usr/bin/env python3 2 3 a = 10 4 b = 20 5 c = 0 6 7 c = a + b #把a+b的变量和赋值给c变量 8 print(c) 9 10 c += a #意思是c = c + a 11 print(c) 12 13 c -= a #意思是c = c - a 14 print(c) 15 16 c *= a #意思是c = c * a 17 print(c) 18 19 c /= a #意思是c = c / a 20 print(c) 21 22 c %= a #意思是c = c % a 23 print(c) 24 25 c **= a #意思是c = c ** a 26 print(c) 27 28 c //= a #意思是c = c // a 29 print(c)

运算结果:

 1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/赋值运算符.py
 2 30
 3 40
 4 30
 5 300
 6 30.0
 7 0.0
 8 0.0
 9 0.0
10 
11 Process finished with exit code 0

Python位运算符

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

运算符描述实例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1  (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1  (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数  a >> 2 输出结果 15 ,二进制解释: 0000 1111
 1 #!/usr/bin/env python3
 2 
 3 a = 10
 4 b = 60
 5 c = 0
 6 
 7 #一下是数字转成二进制的方法
 8 #例如取10,60数字的二进制
 9 #128    64    32    16    8    4    2    1
10 #0      0     0     0     1    0    1    0      =   10
11 #0      0     1     1     1    1    0    0      =   60
12 #0      0     0     0     1    0    0    0      =   8
13 #
14 # 所以数字10,60,的二进制分别为
15 #     10 = 1010
16 #     60 = 111100
17 
18 c = a & b   #按位与运算符:二进制位置中相对应的为1的则为1,否则为0
19 print(c)
20 #128    64    32    16    8    4    2    1
21 #0      0     0     0     1    0    1    0      =   a = 10
22 #0      0     1     1     1    1    0    0      =   b = 60
23 #0      0     0     0     1    0    0    0      =   c = a & b = 8
24 
25 c = a | b   #按位或运算符:只要对应的位置是1的时候就是1
26 print(c)
27 #128    64    32    16    8    4    2    1
28 #0      0     0     0     1    0    1    0      =   a = 10
29 #0      0     1     1     1    1    0    0      =   b = 60
30 #0      0     1     1     1    1    1    0      =   c = a | b = 62
31 
32 c = a ^ b   #按位异或运算符:就是相对应的位置不一样的时候等于1
33 print(c)
34 #128    64    32    16    8    4    2    1
35 #0      0     0     0     1    0    1    0      =   a = 10
36 #0      0     1     1     1    1    0    0      =   b = 60
37 #0      0     1     1     0    1    1    0      =   c = a ^ b = 54
38 
39 c = ~ a   #按位取反运算符:就是把相对应的位置反过来(太极图黑白!)
40 print(c)
41 #原理
42 #+128    +64    +32    +16    +8    +4    +2    +1
43 #0       0      0      0      1     0     1     0       =   10(相加)
44 #
45 #~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~ (阴阳界)
46 #1       1      1      1      0     1     0     1       =
47 #-128    -64    -32    -16    -8    -4    -2    -1      =   c = ~ a = -11(相减)
48 
49 c = a << 2  #做移动运算符:往左边移动两位
50 print(c)
51 #128    64    32    16    8    4    2    1
52 #0      0     0     0     1    0    1    0      =   a = 10
53 #0      0     1     0     1    0    0    0      =   c = a << 2 = 40
54 
55 c = a >> 2  #右移动运算符:往右边移动两位
56 print(c)
57 #128    64    32    16    8    4    2    1
58 #0      0     0     0     1    0    1    0      =   a = 10
59 #0      0     0     0     0    0    1    0      =   c = a >>2 = 2

运算结果:

1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/位运算符.py
2 8
3 62
4 54
5 -11
6 40
7 2
8 
9 Process finished with exit code 0

Python逻辑运算符

运算符逻辑表达式描述实例
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。
or x or y 布尔"或" - 如果 x 是 True,它返回 True,否则它返回 y 的计算值。 (a or b) 返回 10。
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
 1 #!/usr/bin/env python3
 2 
 3 a = 20
 4 b = 20
 5 
 6 print(a and b)      #如果a是false返回值就是false,如果a是true返回值就是b变量的值
 7 
 8 print(a or b)       #如果a是false返回值就是b变量的值,如果a是true返回值就是a的值
 9 
10 print(not a)        #如果a是true返回值就是false,如果a是false返回值就是true

运算结果:

/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/逻辑运算符.py
20
20
False

Process finished with exit code 0

Python成员运算符

运算符描述实例
in 如果在指定的序列中找到值返回 True,否则返回 False。 x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。 x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
 1 #!/usr/bin/env python3
 2 
 3 a = 10
 4 b = 3
 5 li = [1,2,3,4,5,6,7,8,9,0]
 6 
 7 print(a in li)      #如果a在li列表中返回true,否则返回false
 8 print(b in li)
 9 
10 print(a not in li)  #如果ab不在li列表中返回tru,否则返回fals
11 print(b not in li)

运算结果:

1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/成员运算符.py
2 False
3 True
4 True
5 False
6 
7 Process finished with exit code 0

Python身份运算符

运算符描述实例
is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
 1 #!/usr/bin/env python3
 2 
 3 a = 10
 4 b = 20
 5 c = 20
 6 
 7 print(a is b)               #a,b有相同的标示返回true否则返回false
 8 
 9 print(b is c)               #b,c有相同的标示返回true否则返回false
10 
11 print(id(a) == id(b))       #a,b有相同的标示返回true否则返回false
12 
13 print(id(b) == id(c))       #b,c有相同的标示返回true否则返回false
14 
15 print(a is not b)           #a,b有相同的标示返回false否则返回true
16 
17 print(b is not c)           #b,c有相同的标示返回false否则返回true
18 
19 print(id(a) != id(b))       #a,b有相同的标示返回false否则返回true
20 
21 print(id(b) != id(c))       #b,c有相同的标示返回false否则返回true

运算结果:

 1 /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/zk/PycharmProjects/old_boy/day02/运算符/身份运算符.py
 2 False
 3 True
 4 False
 5 True
 6 True
 7 False
 8 True
 9 False
10 
11 Process finished with exit code 0
原文地址:https://www.cnblogs.com/allan-king/p/5448661.html