数值数据类型 - 详细说明

在Python中,数值数据类型用于存储数值信息。Python提供了三种主要的数值类型:整数(int)、浮点数(float)和复数(complex)。掌握这些数值类型对于编写Python程序至关重要。

数值类型概览

Python中的数值类型可以分为以下几类:

  • 整数(int):用于表示整数值,没有小数部分
  • 浮点数(float):用于表示带有小数部分的数值
  • 复数(complex):用于表示复数,包含实部和虚部

整数类型 (int)

整数类型用于表示整数值,可以是正数、负数或零。在Python 3中,整数没有大小限制,可以表示任意大的整数。

示例 说明 类型
10 正整数 int
-5 负整数 int
0 int
0b1010 二进制表示 (10) int
0o12 八进制表示 (10) int
0xA 十六进制表示 (10) int
# 整数类型示例
a = 10
b = -5
c = 0
d = 123456789012345678901234567890 # 大整数

print("a =", a, ", 类型:", type(a)) # 输出: a = 10 , 类型: <class 'int'>
print("b =", b, ", 类型:", type(b)) # 输出: b = -5 , 类型: <class 'int'>
print("c =", c, ", 类型:", type(c)) # 输出: c = 0 , 类型: <class 'int'>

# 不同进制的整数
binary_num = 0b1010 # 二进制
octal_num = 0o12 # 八进制
hex_num = 0xA # 十六进制

print("二进制 0b1010 =", binary_num) # 输出: 10
print("八进制 0o12 =", octal_num) # 输出: 10
print("十六进制 0xA =", hex_num) # 输出: 10

浮点数类型 (float)

浮点数用于表示带有小数部分的数值。在Python中,浮点数遵循IEEE 754双精度标准,精度约为15-16位小数。

示例 说明 类型
3.14 正浮点数 float
-2.5 负浮点数 float
0.0 零浮点数 float
2.0e3 科学计数法 (2000.0) float
1.23e-4 科学计数法 (0.000123) float
float('inf') 正无穷大 float
# 浮点数类型示例
a = 3.14
b = -2.5
c = 0.0

print("a =", a, ", 类型:", type(a)) # 输出: a = 3.14 , 类型: <class 'float'>
print("b =", b, ", 类型:", type(b)) # 输出: b = -2.5 , 类型: <class 'float'>
print("c =", c, ", 类型:", type(c)) # 输出: c = 0.0 , 类型: <class 'float'>

# 科学计数法
sci_num1 = 2.0e3 # 2.0 * 10^3 = 2000.0
sci_num2 = 1.23e-4 # 1.23 * 10^-4 = 0.000123

print("2.0e3 =", sci_num1) # 输出: 2000.0
print("1.23e-4 =", sci_num2) # 输出: 0.000123

# 特殊浮点数值
infinity = float('inf')
negative_infinity = float('-inf')
not_a_number = float('nan')

print("正无穷:", infinity) # 输出: inf
print("负无穷:", negative_infinity) # 输出: -inf
print("非数字:", not_a_number) # 输出: nan

复数类型 (complex)

复数由实部和虚部组成,在Python中用a + bj的形式表示,其中a是实部,b是虚部。

示例 说明 类型
3 + 4j 复数,实部3,虚部4 complex
-2 - 5j 复数,实部-2,虚部-5 complex
complex(2, 3) 使用complex函数创建复数 complex
# 复数类型示例
a = 3 + 4j
b = -2 - 5j
c = complex(2, 3) # 等价于 2 + 3j

print("a =", a, ", 类型:", type(a)) # 输出: a = (3+4j) , 类型: <class 'complex'>
print("b =", b, ", 类型:", type(b)) # 输出: b = (-2-5j) , 类型: <class 'complex'>
print("c =", c, ", 类型:", type(c)) # 输出: c = (2+3j) , 类型: <class 'complex'>

# 获取复数的实部和虚部
print("a的实部:", a.real) # 输出: 3.0
print("a的虚部:", a.imag) # 输出: 4.0

# 复数运算
z1 = 2 + 3j
z2 = 1 - 2j

print("z1 + z2 =", z1 + z2) # 输出: (3+1j)
print("z1 * z2 =", z1 * z2) # 输出: (8-1j)

数值运算

Python支持基本的数值运算,包括算术运算、比较运算等。

# 基本算术运算
a = 10
b = 3

print("a + b =", a + b) # 加法: 13
print("a - b =", a - b) # 减法: 7
print("a * b =", a * b) # 乘法: 30
print("a / b =", a / b) # 除法: 3.333...
print("a // b =", a // b) # 整除: 3
print("a % b =", a % b) # 取模: 1
print("a ** b =", a ** b) # 幂运算: 1000

# 混合类型运算
int_num = 5
float_num = 2.5

result = int_num + float_num # 整数与浮点数相加
print("5 + 2.5 =", result, ", 类型:", type(result)) # 输出: 7.5 , 类型: <class 'float'>

类型转换

Python提供了内置函数用于在不同数值类型之间进行转换。

函数 描述 示例 结果
int() 将值转换为整数 int(3.14) 3
float() 将值转换为浮点数 float(5) 5.0
complex() 创建复数 complex(2, 3) (2+3j)
# 类型转换示例
# 转换为整数
print("int(3.14) =", int(3.14)) # 输出: 3
print("int(-2.9) =", int(-2.9)) # 输出: -2 (向零取整)
print("int(True) =", int(True)) # 输出: 1
print("int('10') =", int('10')) # 输出: 10

# 转换为浮点数
print("float(5) =", float(5)) # 输出: 5.0
print("float('3.14') =", float('3.14')) # 输出: 3.14

# 转换为复数
print("complex(2, 3) =", complex(2, 3)) # 输出: (2+3j)
print("complex('1+2j') =", complex('1+2j')) # 输出: (1+2j)

数值类型特点

Python数值类型具有以下特点:

  • 动态类型:Python是动态类型语言,变量类型在运行时确定
  • 强类型:Python是强类型语言,不同类型之间的运算需要显式转换
  • 不可变对象:数值类型是不可变对象,修改数值变量实际上是创建新对象
  • 自动内存管理:Python自动管理内存,无需手动分配和释放
# 不可变性示例
a = 5
print("初始a的id:", id(a)) # 输出内存地址

a = a + 1 # 创建新对象,而不是修改原对象
print("修改后a的id:", id(a)) # 输出新的内存地址
注意: 浮点数运算可能存在精度问题,这是由于计算机内部表示浮点数的方式决定的。例如,0.1 + 0.2的结果可能不是精确的0.3
提示: 对于需要高精度计算的场景,可以使用Python的decimal模块;对于科学计算,可以使用numpy库。
← 返回知识点列表