软件测试 / 测试开发 / 人工智能丨 Python 类型转换
类型转换
Python 是动态类型的语言(也称为弱类型语言),不需要像 Java 或者 C 语言一样必须在使 用变量前声明变量的类型。虽然 Python 不需要先声明变量的类型,但有时仍然需要用到类型转换。
自动转换
自动转换也称为隐式类型转换,程序在执行过程中自动完成,将数据精度低转换为数据精度高的类型。
有些时候,在对不同类型的数据进行运算时,Python 会自动将它们转成同样的类型,然后再计算结果。
强制转换
强制转换也称为显式类型转换,需要在代码中使用类型函数来转换。
比如通过 input()函数获取的数字,实际为一个数字字符串,如果需要进行计算,需要将其转换成真正的数字才能进行数据计算。
如果我们不进行类型转换,那么可能会导致程序出现错误或者无法正常运行。
Python 提供了多种类型转换的函数:
int(x):将 x 转换为整数。如果 x 是一个字符串,那么它必须是一个表示整数的字符串,否则将会抛出异常。
float(x):将 x 转换为浮点数。如果 x 是一个字符串,那么它必须是一个表示浮点数的字符串,否则将会抛出异常。
complex(x):将 x 转换为复数。如果 x 是一个字符串,那么它必须是一个表示复数的字符串,否则将会抛出异常。
bool(x):将 x 转换为布尔值。如果 x 是一个空对象、0、空字符串、空列表、空元组、空字典或者 False,那么将返回 False,否则将返回 True。
str(x):将 x 转换为字符串。如果 x 是一个对象,那么将会调用该对象的 str()方法,将其转换为字符串。
chr(x): 将一个整数转换为一个字符,虽然结果是一个字符,但其本质依然是一个字符串类型。
需要注意的是,如果在强制类型转换时,传递的转换数据不合法导致无法转换,那么将会抛出异常。
执行后会提示:ValueError: invalid literal for int() with base 10: '霍格沃兹'。
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/9628ffe35df29b1696147e1c6】。文章转载请联系作者。
评论