- Python 3程序设计基础
- 周元哲编著
- 729字
- 2021-04-03 18:37:01
2.4 表达式
本节介绍Python的表达式计算和数据类型转换。
2.4.1 表达式计算
表达式通常由运算符号(操作符)和参与运算的数(操作数)两部分组成。例如,2+3就是一个表达式;+是运算符;2和3是操作数。
数学表示式转换为Python表达式,如表2-11所示。
表2-11 数学表示式转换为Python的表达式
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/32_03.jpg?sign=1739038454-y5YtdnUW9n3UDdFTPoywzRK7mKbJsvc9-0-64839bafb54f0a0c0fcbde4b033b24b8)
数学表达式转化为Python表达式应注意如下区别:
1)乘号不能省略。例如,x乘以y写成Python表达式为:x*y。
2)括号必须成对出现,均使用圆括号,出现多个圆括号时,从内向外逐层配对。
3)运算符不能相邻。例如,a+-b是错误的。
4)添加必要的函数,例如,数学表达式转换为sqrt(25)等。
表达式计算根据运算符的优先次序逐一进行计算,Python运算符的优先级如表2-12所示。
表2-12 Python运算符的优先级
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/33_01.jpg?sign=1739038454-4VkRufVYeeY7kPj46BzAQI8wT1qgMWYB-0-4362f9e0dee8ae5833c508ace7ceddea)
2.4.2 数据类型转换
表达式计算时,若操作数的数据类型不一致,则需要转换为同一个数据类型。Python提供了隐式类型转换和显式类型转换两种方式。
(1)隐式类型转换
隐式类型转换又称为自动类型转换,是指有两个操作数的运算符类型不同时,就会出现其中一个数据类型向另一个数据类型转换,然后再进行运算。
【例2-11】 隐式类型转换举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/33_02.jpg?sign=1739038454-oxBrNCoRrTrJi9BdTPC8s3NzyeWIomDm-0-e6ad7ae4149c8602e7315e819518cad5)
【解析】在Python中,将进行除法运算的操作数自动转换为浮点型10.0/4.0,再进行运算,得到2.5,再用2.5乘以4,得到结果10.0。
(2)显式类型转换
当隐式类型转换无法达到需求时,可以使用显式类型转换,也称为数据类型的强制类型转换,通过Python的内建函数来实现类型转换。如表2-10所示。
表2-10 常用的转换函数
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/33_03.jpg?sign=1739038454-x1lKA4PHtltwZoAlbjwHm7BLwNeiXwPW-0-fa654f0b82b0850ae69a43f3718e9b8f)
(续)
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/34_01.jpg?sign=1739038454-KyOareAj5SdthyfNPVkNZ0NzhXKO7ca4-0-187d7d603cb0a1f41d17c5e6aaf2bff4)
【例2-12】 转换函数举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/34_02.jpg?sign=1739038454-BOOjOIBve9dUaF4KGlM7Y31kHOEmAD14-0-31f989d41d53297cf94a3b827fe6a47d)
【例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。