多段实例代码详解7大类Python运算符,建议收藏

2022-12-29 0 808

编者按:责任编辑主要就如是说Python操作方式符。举个单纯的范例:4+5=9,当中,4和5被称作数组,+称作操作方式符。Python词汇全力支持下列类别的操作方式符:微积分操作方式符、较为(亲密关系)操作方式符、表达式操作方式符、方法论操作方式符、位操作方式符、核心成员操作方式符、身分操作方式符、操作方式符错误率。上面依次如是说那些操作方式符的有关文本。

译者:王晨 初中强 王居鼠 等

多段实例代码详解7大类Python运算符,建议收藏

01 微积分操作方式符

假定表达式a=10,b=20,Python中微积分操作方式符或其实例如下表所示右图。

+

加:三个第一类相乘a+b:30

减:获得正数或者三个数乘以另三个数a–b:-10

*

乘:三个数相乘或者回到三个被多次重复许多次的数组a*b:200

/

除:x乘以yb/a:2

%

圣克雷潘:回到乘法的平方根b%a:0

**

幂:回到x的y次幂a**b:100000000000000000000

//

位段除:回到商的整数部分(向上位段)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 = 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中较为操作方式符或其示例如表下右图。

==

等于:较为第一类是否相等(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”) ifa < 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=c**a

//=

位段除表达式操作方式符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 的值为:2097152 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在三个有符号二进制数的补码形式

<<

左移动操作方式符:运算数的各二进位全部左移若干位,由<<右边的数字指定移动的位数,高位丢弃,低位补0a<<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,回到truenot(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,否则回到falsex在y序列中:如果x在y序列中,则回到True

not in

如果在指定的序列中没有找到值,回到true,否则回到falsex不在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 不在给定的列表list2 – 表达式 b 不在给定的列表list3 – 表达式 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) 运算结果为:90a + (b *c) / d 运算结果为:50

关于译者:王晨,教授,清华大学博士,云计算、大数据和人工智能领域的知名专家,南京云创大数据科技股份有限公司总裁、中国大数据应用联盟人工智能专家委员会主任。中国电子学会云计算专家委员会云存储组组长、工业和信息化部云计算研究中心专家。

初中强,人工智能与大数据领域技术专家,有非常深厚的积累,擅长机器学习和自然词汇处理,尤其是深度学习,熟悉Tensorflow、PyTorch等深度学习开发框架。曾获“2019年全国大学生数学建模优秀命题人奖”。参与钟南山院士指导新型冠状病毒人工智能预测系统研发项目,与钟南山院士团队共同发表学术论文。

责任编辑摘编自《Python金融数据挖掘与分析实战》,经出版方授权发布。(ISBN:9787111696506)

多段实例代码详解7大类Python运算符,建议收藏

《Python金融数据挖掘与分析实战》

推荐语:云创大数据(上市公司)总裁撰写,零基础学会金融数据挖掘,配有案例、视频、标识符、数据、习题及答案。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务