2.4 表达式
本节介绍Python的表达式计算和数据类型转换。
2.4.1 表达式计算
表达式通常由运算符号(操作符)和参与运算的数(操作数)两部分组成。例如,2+3就是一个表达式;+是运算符;2和3是操作数。
数学表示式转换为Python表达式,如表2-11所示。
表2-11 数学表示式转换为Python的表达式
数学表达式转化为Python表达式应注意如下区别:
1)乘号不能省略。例如,x乘以y写成Python表达式为:x*y。
2)括号必须成对出现,均使用圆括号,出现多个圆括号时,从内向外逐层配对。
3)运算符不能相邻。例如,a+-b是错误的。
4)添加必要的函数,例如,数学表达式转换为sqrt(25)等。
表达式计算根据运算符的优先次序逐一进行计算,Python运算符的优先级如表2-12所示。
表2-12 Python运算符的优先级
2.4.2 数据类型转换
表达式计算时,若操作数的数据类型不一致,则需要转换为同一个数据类型。Python提供了隐式类型转换和显式类型转换两种方式。
(1)隐式类型转换
隐式类型转换又称为自动类型转换,是指有两个操作数的运算符类型不同时,就会出现其中一个数据类型向另一个数据类型转换,然后再进行运算。
【例2-11】 隐式类型转换举例。
【解析】在Python中,将进行除法运算的操作数自动转换为浮点型10.0/4.0,再进行运算,得到2.5,再用2.5乘以4,得到结果10.0。
(2)显式类型转换
当隐式类型转换无法达到需求时,可以使用显式类型转换,也称为数据类型的强制类型转换,通过Python的内建函数来实现类型转换。如表2-10所示。
表2-10 常用的转换函数
(续)
【例2-12】 转换函数举例。
【例2-13】 5/4*6//5%2运算结果是__________。
【解析】:表达式5/4*6//5%2,其中的乘法和除法运算的优先级最高且属同一级运算,因此,先计算5/4结果为1.25,此时表达式简化为1.25*6//5%2;接着计算1.25*6,结果是7.5,此时表达式简化为7.5//5%2;系统自动先将7.5进行四舍五入取整,然后再运算,7.5//5=8//5=1.0,最后整个表达式简化为1.0%2,其运算结果为1.0。
【答案】1.0。