![Python从入门到精通(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/864/52842864/b_52842864.jpg)
上QQ阅读APP看书,第一时间看更新
2.3.4 数据类型转换
Python是动态类型的语言(也称为弱类型语言),不需要像Java或者C语言一样在使用变量前必须先声明变量的类型。虽然Python不需要先声明变量的类型,但有时仍然需要用到类型转换。例如,在例2.1中,要想通过一个print()函数输出提示文字“您的身高:”和浮点型变量height的值,就需要将浮点型变量height转换为字符串,否则将显示如图2.24所示的错误。
在Python中,提供了如表2.3所示的函数进行各数据类型间的转换。
![](https://epubservercos.yuewen.com/3C4D13/31398009207333706/epubprivate/OEBPS/Images/Figure-P51_6729.jpg?sign=1739408663-wyDSVuDW5Ugyd65ZJyOtstMrbioNxjdB-0-66d0e70467c3b57a1f4beda0cdcb923c)
图2.24 字符串和浮点型变量连接时出错
表2.3 常用的数据类型转换函数及其作用
![](https://epubservercos.yuewen.com/3C4D13/31398009207333706/epubprivate/OEBPS/Images/Figure-T51_80413.jpg?sign=1739408663-sZk9byHESyOBHo25PEtEC91VFJA4s208-0-2824640ff74343e161d1addf4805f155)
【例2.3】模拟超市的抹零结账。(实例位置:资源包\TM\sl\02\03)
假设某超市因为找零麻烦,特设抹零行为。现编写一段Python代码,实现模拟超市的这种带抹零的结账行为。
在IDLE中创建一个名称为erase_zero.py的文件,在该文件中,首先将各个商品金额累加起来,计算出商品总金额,并将其转换为字符串进行输出;然后应用int()函数将浮点型的变量转换为整型,以实现抹零处理,并将其转换为字符串输出。关键代码如下:
01 money_all = 56.7 + 72.9 + 88.5 + 26.6 + 68.8 # 累加总计金额 02 money_all_str = str(money_all) # 转换为字符串 03 print("商品总金额为:" + money_all_str) 04 money_real = int(money_all) # 进行抹零处理 05 money_real_str = str(money_real) # 转换为字符串 06 print("实收金额为:" + money_real_str)
运行结果如图2.25所示。
![](https://epubservercos.yuewen.com/3C4D13/31398009207333706/epubprivate/OEBPS/Images/Figure-P52_6780.jpg?sign=1739408663-Wz32JeCi497WCjRRfcu5DlnI5kTmAl6q-0-f4d7438fe32379e52d225bfc6bd66fd2)
图2.25 模拟超市抹零结账行为
误区警示
在进行数据类型转换时,如果把一个非数字字符串转换为整型,则将产生如图2.26所示的错误。
![](https://epubservercos.yuewen.com/3C4D13/31398009207333706/epubprivate/OEBPS/Images/Figure-P52_6823.jpg?sign=1739408663-fBuqe8wv8LxuCJh7ziTQia1vk0MFnUTo-0-820f0164337413c26bbb6e6cd36e0e30)
图2.26 将非数字字符串转换为整型时产生的错误