在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))
print("b =", b, ", 类型:", type(b))
print("c =", c, ", 类型:", type(c))
binary_num = 0b1010
octal_num = 0o12
hex_num = 0xA
print("二进制 0b1010 =", binary_num)
print("八进制 0o12 =", octal_num)
print("十六进制 0xA =", hex_num)
浮点数类型 (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))
print("b =", b, ", 类型:", type(b))
print("c =", c, ", 类型:", type(c))
sci_num1 = 2.0e3
sci_num2 = 1.23e-4
print("2.0e3 =", sci_num1)
print("1.23e-4 =", sci_num2)
infinity = float('inf')
negative_infinity = float('-inf')
not_a_number = float('nan')
print("正无穷:", infinity)
print("负无穷:", negative_infinity)
print("非数字:", not_a_number)
复数类型 (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)
print("a =", a, ", 类型:", type(a))
print("b =", b, ", 类型:", type(b))
print("c =", c, ", 类型:", type(c))
print("a的实部:", a.real)
print("a的虚部:", a.imag)
z1 = 2 + 3j
z2 = 1 - 2j
print("z1 + z2 =", z1 + z2)
print("z1 * z2 =", z1 * z2)
数值运算
Python支持基本的数值运算,包括算术运算、比较运算等。
a = 10
b = 3
print("a + b =", a + b)
print("a - b =", a - b)
print("a * b =", a * b)
print("a / b =", a / b)
print("a // b =", a // b)
print("a % b =", a % b)
print("a ** b =", a ** b)
int_num = 5
float_num = 2.5
result = int_num + float_num
print("5 + 2.5 =", result, ", 类型:", type(result))
类型转换
Python提供了内置函数用于在不同数值类型之间进行转换。
| 函数 |
描述 |
示例 |
结果 |
| int() |
将值转换为整数 |
int(3.14) |
3 |
| float() |
将值转换为浮点数 |
float(5) |
5.0 |
| complex() |
创建复数 |
complex(2, 3) |
(2+3j) |
print("int(3.14) =", int(3.14))
print("int(-2.9) =", int(-2.9))
print("int(True) =", int(True))
print("int('10') =", int('10'))
print("float(5) =", float(5))
print("float('3.14') =", float('3.14'))
print("complex(2, 3) =", complex(2, 3))
print("complex('1+2j') =", complex('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库。