写点什么

软件测试 / 测试开发 / 人工智能丨 Python 类型转换

作者:测试人
  • 2023-11-20
    北京
  • 本文字数:1006 字

    阅读完需:约 3 分钟

类型转换

Python 是动态类型的语言(也称为弱类型语言),不需要像 Java 或者 C 语言一样必须在使 用变量前声明变量的类型。虽然 Python 不需要先声明变量的类型,但有时仍然需要用到类型转换。

自动转换

自动转换也称为隐式类型转换,程序在执行过程中自动完成,将数据精度低转换为数据精度高的类型。

有些时候,在对不同类型的数据进行运算时,Python 会自动将它们转成同样的类型,然后再计算结果。

python复制代码n = 10 + 3.14print(n, type(n))n = False + 1print(n)print(type(n))
复制代码

强制转换

强制转换也称为显式类型转换,需要在代码中使用类型函数来转换。

比如通过 input()函数获取的数字,实际为一个数字字符串,如果需要进行计算,需要将其转换成真正的数字才能进行数据计算。

如果我们不进行类型转换,那么可能会导致程序出现错误或者无法正常运行。

python复制代码# 此代码在执行时会报类型错误title = "霍格沃兹" + 666print(title, type(title))title = "霍格沃兹" + str(666)print(title, type(title))
复制代码

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): 将一个整数转换为一个字符,虽然结果是一个字符,但其本质依然是一个字符串类型。

python复制代码# 将字符串转换为整数x = int("123")print(x)print(type(x))
# 将字符串转换为浮点数y = float("3.14")print(y)print(type(y))
# 将数字转换为字符串z = str(123)print(z)print(type(z))
# 将数字转换为字符串b = bool(123)print(b)print(type(b))
# 将数字转换为字符c = chr(65)print(c)print(type(c))
复制代码

需要注意的是,如果在强制类型转换时,传递的转换数据不合法导致无法转换,那么将会抛出异常。

python复制代码x = int("霍格沃兹")
复制代码

执行后会提示:ValueError: invalid literal for int() with base 10: '霍格沃兹'。


发布于: 刚刚阅读数: 5
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发/人工智能丨Python类型转换_人工智能_测试人_InfoQ写作社区