Python从入门到精通(第3版)
上QQ阅读APP看书,第一时间看更新

2.3.4 数据类型转换

Python是动态类型的语言(也称为弱类型语言),不需要像Java或者C语言一样在使用变量前必须先声明变量的类型。虽然Python不需要先声明变量的类型,但有时仍然需要用到类型转换。例如,在例2.1中,要想通过一个print()函数输出提示文字“您的身高:”和浮点型变量height的值,就需要将浮点型变量height转换为字符串,否则将显示如图2.24所示的错误。

在Python中,提供了如表2.3所示的函数进行各数据类型间的转换。

图2.24 字符串和浮点型变量连接时出错

表2.3 常用的数据类型转换函数及其作用

【例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所示。

图2.25 模拟超市抹零结账行为

误区警示

在进行数据类型转换时,如果把一个非数字字符串转换为整型,则将产生如图2.26所示的错误。

图2.26 将非数字字符串转换为整型时产生的错误