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

类型转换

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

自动转换

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

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

n = 10 + 3.14
print(n, type(n))
n = False + 1
print(n)
print(type(n))

强制转换

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

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

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

# 此代码在执行时会报类型错误
title = "霍格沃兹" + 666
print(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): 将一个整数转换为一个字符,虽然结果是一个字符,但其本质依然是一个字符串类型。
# 将字符串转换为整数
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))

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

x = int("霍格沃兹")

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

你可能感兴趣的:(python,开发语言,软件测试,人工智能)