大家好,欢迎来到IT知识分享网。
导读:本文主要介绍Python运算符。举个简单的例子:4+5=9,其中,4和5被称为操作数,+称为运算符。Python语言支持以下类型的运算符:算术运算符、比较(关系)运算符、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符、运算符优先级。下面分别介绍这些运算符的相关内容。
作者:刘鹏 高中强 王一凡 等
来源:华章科技
01 算术运算符
假设变量a=10,b=20,Python中算术运算符及其实例如下所示。
+
- 加:两个对象相加
- a+b:30
–
- 减:得到负数或是一个数减去另一个数
- a–b:-10
*
- 乘:两个数相乘或是返回一个被重复若干次的字符串
- a*b:200
/
- 除:x除以y
- b/a:2
%
- 取模:返回除法的余数
- b%a:0
- 幂:返回x的y次幂
- ab:0000000000
//
- 取整除:返回商的整数部分(向下取整)
- 9//2:4
- -9//2:-5
以下实例演示了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 = ab 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中比较运算符及其实例如表下所示。
==
- 等于:比较对象是否相等
- (a==b):返回false
!=
- 不等于:比较两个对象是否不相等
- (a != b):返回true
< >
- 不等于:比较两个对象是否不相等(Python 3已废弃)
- (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所有比较运算符的操作:
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中赋值运算符及其实例如下所示。
=
- 简单的赋值运算符
- 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=ca
//=
- 取整除赋值运算符
- c//=a:等效于c=c//a
以下实例演示了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 的值为: 7 - c 的值为:99864
04 按位运算符
按位运算符是把数字看作二进制来进行计算。假设变量a=60,b=13,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。~x类似于-x-1
- (~a)输出结果:-61
- 二进制解释:1100 0011
- 在一个有符号二进制数的补码形式
<<
- 左移动运算符:运算数的各二进位全部左移若干位,由<<右边的数字指定移动的位数,高位丢弃,低位补0
- a<<2输出结果:240
- 二进制解释:1111 0000
>>
- 右移动运算符:把>>左边的运算数的各二进位全部右移若干位,由>>右边的数字指定移动的位数
- a>>2输出结果:15
- 二进制解释:0000 1111
以下实例演示了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
- x and y
- 布尔与:如果x为false,x and y返回false,否则它返回y的计算值
- (a and b)返回20
or
- x or y
- 布尔或:如果x是非0,返回x的计算值,否则返回y的计算值
- (a or b)返回10
not
- not x
- 布尔非:如果x为true,返回false。如果x为false,返回true
- not(a and b)返回False
以下实例演示了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
- 如果在指定的序列中找到值,返回true,否则返回false
- x在y序列中:如果x在y序列中,则返回True
not in
- 如果在指定的序列中没有找到值,返回true,否则返回false
- x不在y序列中:如果x不在y序列中,则返回True
以下实例演示了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用于判断两个标识符是否引自一个对象
- X is y,类似id(x)==id(y),如果引用的是同一个对象,则返回true,否则返回false
is not
- is not用于判断两个标识符是否引自不同对象
- x is not y,类似id(a)!=id(b)。如果引用的不是同一个对象,则返回结果true,否则返回false
以下实例演示了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 运算符优先级
按优先级从高到低的顺序对所有运算符排序,结果如表下所示。
- 指数(最高优先级)
~ + –
- 按位翻转,一元加号和减号(最后两个的方法名为+@和-@)
* / % //
- 乘、除、取模和取整除
+ –
- 加法减法
>> <<
- 右移、左移运算符
&
- 位AND
^ |
- 位运算符
<=?< >?>=
- 比较运算符
<>?==?!=
- 等于运算符
= %= /= //= -= += *= =
- 赋值运算符
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:06)
推荐语:云创大数据(上市公司)总裁撰写,零基础学会金融数据挖掘,配有案例、视频、代码、数据、习题及答案。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/160028.html