导读:本文主要介绍Python运算符。举个简单的例子:4+5=9,其中,4和5被称为操作数,+称为运算符。Python语言支持以下类型的运算符:算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级。下面分别介绍这些运算符的相关内容。
作者:刘鹏 高中强 王一凡 等
来源:大数据DT(ID:hzdashuju)
01 算术运算符
假设变量a=10,b=20,Python中算术运算符及其实例如下所示。
+
-
*
/
%
**
//
以下实例演示了Python所有算术运算符的操作:
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 - c 的值为:31
2 - c 的值为:11
3 - c 的值为:210
4 - c 的值为:2.1
5 - c 的值为:1
6 - c 的值为:8
7 - c 的值为:2
有一点要注意,在Python 2.x中,整数除整数,只能得出整数。如果要得到小数部分,则需要其中一个数改成浮点数。例如:
1/2
0
1.0/2
0.5
1/float(2)
0.5
02 比较运算符
假设变量a=10,b=20,Python中比较运算符及其实例如表下所示。
==
!=
< >
>
<
>=
<=
以下实例演示了Python所有比较运算符的操作:
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 和 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 - a 不等于 b
2 - a 不等于 b
3 - a 大于等于 b
4 - a 大于 b
5 - a 小于等于 b
6 - b 大于等于 a
03 赋值运算符
假设变量a=10,b=20,Python中赋值运算符及其实例如下所示。
=
+=
-=
*=
/=
%=
**=
//=
以下实例演示了Python所有赋值运算符的操作:
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 = 2
c %= a
print ("5 - c 的值为:", c)
c **= a
print ("6 - c 的值为:", c)
c //= a
print ("7 - c 的值为:", c)
输出结果为:
1 - c 的值为:31
2 - c 的值为:52
3 - c 的值为:1092
4 - c 的值为:52
5 - c 的值为:2
6 - c 的值为:2097152
7 - c 的值为:99864
04 按位运算符
按位运算符是把数字看作二进制来进行计算。假设变量a=60,b=13,Python中按位运算符及其实例如下所示。
&
|
^
~
<<
>>
以下实例演示了Python所有位运算符的操作:
a = 60# 60 = 0011 1100
b = 13# 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 ("4 - c 的值为:", c)
c = a << 2;# 240 = 1111 0000
print ("5 - c 的值为:", c)
c = a >> 2;# 15 = 0000 1111
print ("6 - c 的值为:", c)
输出结果为:
1 - c 的值为:12
2 - c 的值为:61
3 - c 的值为:49
4 - c 的值为:-61
5 - c 的值为:240
6 - c 的值为:15
05 逻辑运算符
假设变量a=10,b=20,Python中逻辑运算符及其实例如下所示。
and
or
not
以下实例演示了Python所有逻辑运算符的操作:
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 的值
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 都为 true,或其中一个变量为 true")
else:
print ("4 - 变量 a 和 b 都不为 true")
if not( a and b ):
print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
print ("5 - 变量 a 和 b 都为 true")
输出结果为:
1 - 变量 a 和 b 都为 true
2 - 变量 a 和 b 都为 true,或其中一个变量为 true
3 - 变量 a 和 b 有一个不为 true
4 - 变量 a 和 b 都为 true,或其中一个变量为 true
5 - 变量 a 和 b 都为 false,或其中一个变量为 false
06 成员运算符
除了以上运算符外,Python还支持成员运算符。以下测试实例中包含一系列成员,例如字符串、列表或元组,如下所示。
in
not in
以下实例演示了Python所有成员运算符的操作:
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 - 变量 a 不在给定的列表list 中
2 - 变量 b 不在给定的列表list 中
3 - 变量 a 在给定的列表list 中
07 身份运算符
身份运算符用于比较两个对象的存储单元,如下所示。
is
is not
以下实例演示了Python所有身份运算符的操作:
a = 20
b = 20
if ( a is b ):
print ("1 - a 和 b 有相同的标识")
else:
print ("1 - a 和 b 没有相同的标识")
if ( a is not 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 - a 和 b 有相同的标识
2 - a 和 b 有相同的标识
3 - a 和 b 没有相同的标识
4 - a 和 b 没有相同的标识
is与==的区别在于:is用于判断两个变量引用的对象是否为同一个(同一块内存空间),==用于判断引用变量的值是否相等。例如:
a = [1, 2, 3]
b = a
b is a
True
b == a
True
b = a[ : ]
b is a
False
b == a
True
08 运算符优先级
按优先级从高到低的顺序对所有运算符排序,结果如表下所示。
**
~ + -
* / % //
+ -
>> <<
&
^ |
<=?< >?>=
<>?==?!=
= %= /= //= -= += *= **=
is is not
in not in
not and or
以下实例演示了Python中不同运算符按照不同优先级的操作:
a = 20
b = 10
c = 15
d = 5
e = 0
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);# (30) * (15/5)
print ("(a + b) * (c / d) 运算结果为:", e)
e = a + (b * c) / d;# 20 + (150/5)
print ("a + (b * c) / d 运算结果为:", e)
输出结果为:
(a + b) * c / d 运算结果为:90
((a + b) * c) / d 运算结果为:90
(a + b) * (c / d) 运算结果为:90
a + (b * c) / d 运算结果为:50
关于作者:刘鹏,教授,清华大学博士,云计算、大数据和人工智能领域的知名专家,南京云创大数据科技股份有限公司总裁、中国大数据应用联盟人工智能专家委员会主任。中国电子学会云计算专家委员会云存储组组长、工业和信息化部云计算研究中心专家。
高中强,人工智能与大数据领域技术专家,有非常深厚的积累,擅长机器学习和自然语言处理,尤其是深度学习,熟悉Tensorflow、PyTorch等深度学习开发框架。曾获“2019年全国大学生数学建模优秀命题人奖”。参与钟南山院士指导新型冠状病毒人工智能预测系统研发项目,与钟南山院士团队共同发表学术论文。
本文摘编自《Python金融数据挖掘与分析实战》,经出版方授权发布。(ISBN:9787111696506)