上QQ阅读APP看书,第一时间看更新
4.9 混合运算和数值类型转换
4.9.1 隐式转换
int、float和complex对象可以进行混合运算。如果表达式中包含complex对象,则其他对象自动转换(隐式转换)为complex对象,结果为complex对象;如果表达式中包含float对象,则其他对象自动转换(隐式转换)为float对象,结果为float对象。
【例4.21】 隐式类型转换示例。
注意,在混合运算中True自动转换为1,False自动转换为0。
4.9.2 显式转换
“显式转换”又称为“强制转换”,使用target-type(value)将表达式强制转换为所需的数据类型。如果未定义相应的转换运算符,则强制转换会失败。显式转换实际上使用目标类型的构造函数创建其对象。
int(x)、float(x)、bool(x)、str(x)分别把对象转换为整数、浮点数、布尔值和字符串。
【例4.22】 显式类型转换示例。
显式数值转换可能导致精度损失,也可能引发异常(例如OverflowError)。例如:
【例4.23】 数值数据类型示例(profit.py):计算复利。
程序运行结果如下。