在 Python 里,数字类型转换是常见的操作,主要有隐式类型转换和显式类型转换两种方式,下面详细介绍。
当不同类型的数字进行运算时,Python 会自动将较低精度的类型转换为较高精度的类型,以避免数据丢失。这种转换无需开发者手动干预,具体规则如下:
num_int = 5
num_float = 3.2
result = num_int + num_float
print(result)
- 整数 / 浮点数与复数运算:整数和浮点数会自动转换为复数。
num_int = 2
num_complex = 3 + 4j
result = num_int + num_complex
print(result)
显式类型转换需要开发者使用特定的函数来实现,常见的函数有以下几种:
用于将其他类型的数据转换为整数,转换规则如下:
num_float = 3.9
num_int = int(num_float)
print(num_int)
- 字符串转换:字符串必须是表示整数的有效字符串,否则会抛出
ValueError 异常。
str_num = "10"
num_int = int(str_num)
print(num_int)
用于将其他类型的数据转换为浮点数,转换规则如下:
num_int = 8
num_float = float(num_int)
print(num_float)
- 字符串转换:字符串必须是表示数字的有效字符串,否则会抛出
ValueError 异常。
str_num = "2.5"
num_float = float(str_num)
print(num_float)
用于将其他类型的数据转换为复数,有以下两种常见用法:
num_int = 5
num_complex = complex(num_int)
print(num_complex)
- 双参数形式:第一个参数作为实部,第二个参数作为虚部。
real_part = 3
imag_part = 4
num_complex = complex(real_part, imag_part)
print(num_complex)
用于将数字转换为布尔类型,规则如下:
- 数字 0 转换为
False。
- 非零数字转换为
True。
num_zero = 0
num_non_zero = 7
bool_zero = bool(num_zero)
bool_non_zero = bool(num_non_zero)
print(bool_zero)