说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 的数字类型可以存储在数学上的各种数字,包括常见的自然数、复数中的虚数、巨大的数字、正负数、带小数点的数、不同进制的数等等,非常灵活丰富。
x = 1 # int, 整型
y = 1.2 # float, 浮点
z = 1j # complex, 复数
本节讲讲如何定义使用,如何进行相关的转换、计算。
常用的有以下几种类型:
类型 | 描述 | 示例 |
---|---|---|
int | 有符号整数,它们通常被称为整数或整型。它们是没有小数点的0、正或负整数。 Python3 中的整数是无限大小的 | 2, -1, 0, 0×69 |
float | 浮点实数值,也称为浮点数,它们表示实数,并用小数点写整数和小数部分。 浮点数也可以是科学符号,E或e表示10的幂 | 0.00, 1.4, -23.22, -32.54e100 |
complex | 复数是以a + bJ的形式,其中a和b是浮点,J(或j)表示-1的平方根(虚数)。数字的实部是a,虚部是b。复数在Python编程中用处较少 | 3.14j, 9.322e-36j |
整型就是常说的整数,或正或负的整数,没有小数点。它的长度是没有限制的,所以 Python3 没有其他语言的长整型(long)。
a = 17
a = 1_7 # 会忽略下划线,见下文
b = - 17
b = -17
c = 0x11 # 17 十六进制
d = 0o101 # 65 八进制
可以直接定义不同进制的数字,以下方法定义的都是同一个值:
a = 97 # 10 进制
a = 0b01100001 # 2 进制
a = 0x61 # 16 进制
a = 0o301 # 8 进制
可以使用前缀 0x,0o 和 0b 分别表示 16、8、2 进制的表示方式。
有小数点的数字,如果小数点后全是 0 也可以只写小数点。
x = 1.10
y = 1.0
y2 = 1. # 1.0
z = -11.01
z2 = .1
float('inf')
的结果 inf 正无穷,float("-inf")
负无穷。float("nan")
代表缺失值。
用科学计数法赋值:
e = 3.5e5 # 350000.0 e后面跟着的表示是10的幂次
f = 1E6 # 1000000.0
j 代表复数的虚部。
x = 1+2j
y = 2j
z = -3j
Python 3.6 开始支持新的数字下划线功能,对于很大的数字以提高可读性。
123_456_789 # 123456789 可以在较大的数字用下划线连接
123_456.888 # 123456.888
f'{10000000000:_}' # 10_000_000_000
'{:_}'.format(10000000000) # 10_000_000_000
如果中间有字母 e 在其中,那么 e 后边的数学就代表 10 多少次方乘以前面的数字:
# 用科学计数法赋值
n = 1e4
n # 10000.0
m = 2e-2
m # 0.02
快速示例:
a = 10
b = 21
# 数值计算
a + b # 31
a - b # -11
a * b # 210
b / a # 2.1
a ** b # 表示 10 的 21 次幂
b % a # 1 (取余)
# 地板除 - 操作数的除法,其结果是删除小数点后的商数
# 但如果其中一个操作数为负数,则结果将被保留,即从零(向负无穷大)舍去
9//2 # 4
9.0//2.0 # 4.0
-11//3 # -4
-11.0//3 # -4.0
注:
查看数据类型:
type(a) # 可以查看数据的类型
如果不同数字类型进行计算,则:
转换类型可以使用 int(a)
和 float(a)
将数字进行类型转换,float 转 int 时会丢失小数点。
int(4.3) # 4
float(4) # 4.0
# 在一个范围内随机取一个数
import random
random.randrange(1,10) # 1-9 里随机一个
abs(-1) # 1 求绝对值
整型可以按我们的理解进行 ==
比较,得到符合预期的布尔结果。由于比较要求数值绝对的相同,用二进制表示浮点多少会遭到精度的损失,因此,浮点数之间的比较,基本上是一场噩梦。IEEE754。todo
更新时间:2024-06-18 07:03:38 标签:python 数据类型 数字