Focusshell
他日若遂凌云志,敢笑黄巢不丈夫;
FRIENDS
BabyLego

Day-7-Python运算符

2018/08/20 Python

Python3运算符

什么事运算符?

 本章节主要说明Python的运算符,举个简单的例子4+5=9。例子中,4和5被称为操作数,”+”称为运算符;
 Python语言支持以下类型的运算符:

  1. 算术运算符
  2. 比较(关系)运算符
  3. 赋值运算符
  4. 逻辑运算符
  5. 位运算符
  6. 成员运算符
  7. 身份运算符
  8. 运算符优先级

 接下来让我们一个个来学习Python的运算符

Python算术运算符

 以下假设变量a为10,变量b为21:

运算符 描述 实例
+ 加 - 两个对象相加 a+b 输出结果31
- 减 - 得到复数或是一个数减去另一个数 a-b 输出结果-11
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a*b 输出结果210
/ 除 - x除以y b/a 输出结果2.1
% 取模 - 返回出去的余数 b%a 输出结果1
** 幂 - 返回x的y次幂 a**b 为10的21次方
// 取整除 - 返回商的证书部分 9//2 输出结果4,9.0//2.0输出结果4.0

 以下实例演示了Python所有算术运算符的操作
实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/python3

a = 21
b = 10
c = 0

c = a + b
print("1 - c 的值为:", c)

c = a - b
print("2 - c 的值为:",c)

c = a / b
print("3 - c 的值为:",c)

c = a * b
print("4 - c 的值为:",c)
c = a % b
print("5 - c 的值为:",c)


# 修改变量a、b、c
a = 2
b = 3
c = a**b

print("6 - c 的值为:",c)

a = 10
b = 5
c = a // b
print("7 - c 的值为:",c)

 运行上述代码结果为:

1
2
3
4
5
6
7
8
C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/算术运算符.py"
1 - c 的值为: 31
2 - c 的值为: 11
3 - c 的值为: 2.1
4 - c 的值为: 210
5 - c 的值为: 1
6 - c 的值为: 8
7 - c 的值为: 2

Python 比较运算符

 以下假设变量a为10,变量b为20;

运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返回 False
!= 不等于 - 比较对象是否不相等 (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

 以下实例演示了Python所有比较运算符的操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/python3

a = 21
b = 10
c = 0

if (a == b):
print("1 - a 等于 b")
else:
print("1 - a 不等于b")

if ( a != b ):
print("2 - a 等于b")
else:
print("2 - a 不等于b")

if ( a < b ):
print("3 - a 小于b")
else:
print("3 - a 大于等于b")

if ( a > b ):
print("4 - a 大于b")
else:
print("4 - a 小于等于b")

# 修改变量
a = 5
b = 20

if ( a <= b ):
print("5 - a 小于等于b")
else:
print("5 - a 大于b")

if ( b >= a ):
print("6 - b 大于等于a")
else:
print("6 - b 小于a")

 以上代码执行结果:

1
2
3
4
5
6
7
C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/Python比较运算符.py"
1 - a 不等于b
2 - a 等于b
3 - a 大于等于b
4 - a 大于b
5 - a 小于等于b
6 - b 大于等于a

Python赋值运算符

 以下假设变量a为10,变量b为20;

运算符 描述 实例
= 简单的赋值运算符 c = a+b将a+b的运算结果赋值为c
+= 加法法赋值运算符 c+=a等效于c=c+a
-= 减法赋值运算符 c-=a等效于c=c-a
*= 乘法运算符 c=a等效于c=ca
/= 除法赋值运算符 c/=a等效于c=c/a
%= 取模赋值运算符 c%=a等效于c=c%a
**= 幂赋值运算符 c=a等效于c=ca
//= 取整除赋值运算符 c//=a等效于c=c//a

 以下实例演示了Python所有赋值运算符的操作:
实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/python3

a = 21
b = 10
c = 0

c = a + b
print("1 - c 的值为:",c)

c += a
print("2 - c 的值为:",c)

c *= a
print("3 - c 的值为:",c)
c /= a
print("4 - c 的值为:",c)

c = 6
c %= a
print("5 - c 的值为:",c)

c **= a
print("6 - c 的值为:",c)

c //= a
print("7 - c 的值为:",c)

 以上代码执行结果为:

1
2
3
4
5
6
7
8
C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/赋值运算符号.py"
1 - c 的值为: 31
2 - c 的值为: 52
3 - c 的值为: 1092
4 - c 的值为: 52.0
5 - c 的值为: 6
6 - c 的值为: 21936950640377856
7 - c 的值为: 1044616697160850

Python位运算符

 按位运算符是把数字看作二进制来进行计算的,Python中的按位运算法则如下:
 下表中变量a为60,b为13二进制格式如下:

1
2
3
4
5
6
7
8
9
a = 0011 1100
b = 0000 1101

---------------

a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011

图标

 以下是演示了Python所有位运算符的操作:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/python3

a = 60 # 60 = 0011 1100
b = 12 # 13 = 0000 1101
c = 0

c = a & b # 12 = 0000 1100
print("1 - c 的值为:",c)

c = a | b # 61 = 0011 1101
print("2 - c 的值为:",c)

c = a ^ b # 49 = 0011 0001
print("3 - c 的值为:",c)

c = ~a; # -61 = 1100 0011
print("5 - c 的值为:",c)

c = a << 2; # 240 = 1111 0000
print("6 - c 的值为:",c)

c = a >> 2; # 15 = 0000 1111
print("7 - c 的值为:",c)

 以上代码输出结果

1
2
3
4
5
6
7
C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/位运算符.py"
1 - c 的值为: 12
2 - c 的值为: 60
3 - c 的值为: 48
5 - c 的值为: -61
6 - c 的值为: 240
7 - c 的值为: 15

Python逻辑运算符

 Python语言支持逻辑运算符,以下假设a为10,b为20 :

运算符 逻辑表达式 描述 实例
and x and y 布尔”与”-如果x为False,x and y返回False,否则它返回y的计算值 (a and b)返回20
or x or y 布尔”或”-如果x是True,他返回x的值,否则他返回y的计算值。 (a or b)返回10
not not x 布尔”非”=如果x为True,返回False。如果x为False,他返回True not(a and b)返回False

 Ps:什么是 布尔值:
 布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要吗是True,要吗是False,在Python,可以直接用True、False表示布尔值(注意大小写),也可以通过布尔运算计算出来:
布尔运算实例:

1
2
3
4
5
6
7
8
9
10
11
>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 2 < 3
True
>>> 3 > 5
False
>>>

逻辑运算实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/python3

a = 10
b = 20

if (a and b):
print("1 - 变量a和b都为True")
else:
print("1 - 变量a和b有一个True")

if (a or b):
print("2 - 变量a和b都为True,或其中一个变量为true")
else:
print("2 - 变量a和b都不为True")

# 修改变量
a = 0

if ( a and b ):
print("3 - 变量a和b都为true")
else:
print("3 - 变量a和b都不为True")

if ( a or b ):
print("4 - 变量a和b的都为False,或其中一个变量为false")
else:
print("4 - 变量a和b都不为true")

if not(a and b):
print("5 - 变量a和b都为false,或其中一个变量为false")
else:
print("5 - 变量a和b都为true")

 以上代码输出结果为

1
2
3
4
5
6
C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/逻辑运算符.py"
1 - 变量a和b都为True
2 - 变量a和b都为True,或其中一个变量为true
3 - 变量a和b都不为True
4 - 变量a和b的都为False,或其中一个变量为false
5 - 变量a和b都为false,或其中一个变量为false

Python成员运算符

 除了以上的一些运算符之外,Python还指出成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组;

运算符 描述 实例
in 如果在指定的序列中找到值返回True,否则返回False x在y序列中,如果x在y序列中返回True;
not in 如果在指定的序列中没有找到值返回True,否则返回False x不再y序列中,如果x不再y序列中返回True;

 演示成员运算符的操作:
实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/python3

a = 10
b = 20
list = [1,2,3,4,5]
if (a in list):
print("1 - 变量a 再给定的列表中list中")
else:
print("1 - 变量a 不在给定的列表list中")

if (b not in list):
print("2 - 变量 b 不在给的列表list中")
else:
print("2 - 变量b 在给定的列表list中")

# 修改变量a的值

a = 2

if (a in list):
print("3 - 变量a在给定的列表list中")
else:
print("3 - 变量a不在给定的列表list中")

 以上代码执行结果:

1
2
3
4
C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/成员运算符.py"
1 - 变量a 不在给定的列表list中
2 - 变量 b 不在给的列表list中
3 - 变量a在给定的列表list中

python身份运算符

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

运算符 描述 实例
is is是判断两个表示服是不是引用自一个对象 x is y,类似id(x) == id(y),如果引用的同一个对象则返回True,否则返回False
is not is not是判断两个标识符是不是引用自不同对象 x is not y,类似id(a)! = id(b),如果引用的不是同一个对象则返回结果True,否贼返回False

 注:id()函数用于获取对象内存地址;
 以下是俩演示Python所有身份运算符的操作:
实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/python3

a = 20
b = 20

if ( 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的值

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有相同的标识")

 以上代码执行结果

1
2
3
4
5
C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/身份运算符.py"
1 - a和b有相同的标识
2 - a和b有相同的标识
3 - a和b没有相同的标识
4 - a和b没有相同的标识

is与==的区别

 is 用于判断两个变量引用对象是否为同一个,==用于判断引用变量的值是否相等;

1
2
3
4
5
6
7
8
9
10
>>> a = [1,2,3]
>>> b = a
>>> b is a
True
>>> b = a[:]
>>> b is a
False
>>> b == a
True
>>>

Python运算符优先级

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

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

 演示运算符优先级:
实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/python3

a = 20
b = 10
c = 15
d = 5
e = 0

e = ( a + b) * a / d # ( 30 * 15 ) / 5
print("(a + b) * c / d 运算结果为:", e)

e = ( (a+b) * c ) / d # ( 30 * 15 ) / 5
print("((a+b)* c) / d 运算结果为:",e)

e = (a + b) * ( c / d); # (30) * (15/5)
print("(a + b) * ( c / d ) 运算结果为:",e)

e = a + (b * c) / d ; # 20 + (150 / 5)
print("a + (b * c) /d 运算结果为:",e)

 以上代码执行结果为:

1
2
3
4
5
C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/运算符优先级.py"
(a + b) * c / d 运算结果为: 120.0
((a+b)* c) / d 运算结果为: 90.0
(a + b) * ( c / d ) 运算结果为: 90.0
a + (b * c) /d 运算结果为: 50.0

Author: focusshell

Link: http://focusshell.github.io/2018/08/20/Day-7-Python运算符/

Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.

< PreviousPost
Day-8-Python数字
NextPost >
Day-6-Python解释器
CATALOG
  1. 1. Python3运算符
    1. 1.1. 什么事运算符?
  2. 2. Python算术运算符
  3. 3. Python 比较运算符
  4. 4. Python赋值运算符
  5. 5. Python位运算符
  6. 6. Python逻辑运算符
  7. 7. Python成员运算符
  8. 8. python身份运算符
    1. 8.1. is与==的区别
  9. 9. Python运算符优先级