Python 3.8从零开始学
上QQ阅读APP看书,第一时间看更新

2.2.4 数据类型转换

在现实生活中,我们都经历过换零钱的操作,特别是在不支持移动支付的地区或国家,必须要随时准备好一些零钱。换零钱的操作就是将一张面额大些的钱,换算成等额或不等额的面额更小的钱的过程。如将50元换成2张20元,10张1元(有一些地方可能要收取一些手续费,如换50元需要收取2元,实际50元只能换取48元零钱)。

在编程的过程中,也有类似这样的转换过程,不过不是换零操作,而是类型转换的操作。比如将整型转换为浮点型,浮点型转换为整型。一般将浮点型转换为整型会丢失精度,在实际操作中需要注意。

对数据内置的类型进行转换,只需要将数据类型作为函数名即可。

在Python中,数据类型转换时有如下4个函数可以使用:

  • int(x)将x转换为一个整数。
  • float(x)将x转换为一个浮点数。
  • complex(x)将x转换为一个复数,实数部分为x,虚数部分为0。
  • complex(x,y)将x和y转换为一个复数,实数部分为x,虚数部分为y。x和y是数字表达式。

比如,小娜去“Number”店购物,购物总支出金额是560.1元,“Number”店的老板为免除找零的麻烦,让小娜支付560元即可,即支付一个整数,舍弃小数部分,可以理解为将浮点型转换为整型了,表示如下:

>>> int(560.1)
560

很容易就得到了转换后的结果。

在实际生活中,金钱的操作必须用浮点型进行记账,就需要使用float函数。在交互模式下输入:

>>> float(560.1)
560.1

这样转换后得到的就是浮点型数据。

不过这个计算结果的小数位还是大于0,仍然涉及找零的问题,要得到小数位为0的结果,该怎么办呢?把int函数放入float函数中是否可以呢?在交互模式下输入:

>>> float(int(560.1))
560.0

这里的执行过程是这样的:先把560.1通过int函数取整,得到整型560,再通过float函数将560转换成浮点型560.0,就得到了我们想要的结果。当然,这里虽然得到了最终想要的结果,但输入的字符看起来有点复杂。这其实是函数的嵌套,后面会进行具体介绍,此处做了解即可。