您的位置:

6. Python 数字类型:整数、浮点数、复数

Python 数字类型:整数、浮点数、复数

更新:

Python 包括三种表示数字的数字类型:整数、浮点数和复数。

整数类型

在 Python 中,整数是没有小数部分的零、正或负整数,并且具有无限的精度,例如 0、100、-10。以下是 Python 中有效的整数文字。

>>> 0
0
>>> 100
100
>>> -10
-10
>>> 1234567890
1234567890
>>> y=5000000000000000000000000000000000000000000000000000000
5000000000000000000000000000000000000000000000000000000

整数可以是二进制、八进制和十六进制值。

>>> 0b11011000 # 二进制
216
>>> 0o12 # 八进制
10
>>> 0x12 # 十六进制
15

所有整数文字或变量都是int类的对象。使用type()方法获取类名,如下图。

>>>type(100)
<class 'int'> # 返回整数类型

>>> x=1234567890
>>> type(x)
<class 'int'> # 返回整数类型

>>> y=5000000000000000000000000000000000000000000000000000000
>>> type(y) # 返回整数类型
<class 'int'>

非零整数中不允许在最前面出现0,例如 000123 是无效数字,0000 是 0。

>>> x=01234567890
SyntaxError: invalid token

Python 不允许逗号作为数字分隔符。请使用下划线_作为分隔符。

>>> x=1_234_567_890
>>> x
1234567890

请注意,整数必须不带小数部分(小数点)。如果包含了小数点,那它就是一个浮点数。

>>> x=5
>>> type(x)
<class 'int'>
>>> x=5.0
>>> type(x)
<class 'float'> #这里返回是浮点型

int()函数将字符串或浮点数转换为整数。

>>> int('100')
100
>>> int('-10')
-10
>>> int('5.5')
5
>>> int('100', 2)
4

二进制的

在 Python 中,0 和 1 的组合中有八位数字的数字 0b 代表二进制数。 例如,0b11011000 是相当于整数 216 的二进制数。

>>> x=0b11011000
>>> x
216
>>> x=0b_1101_1000
>>> x
216
>>> type(x)
<class 'int'>

八进制的

以 0o 或 0O 为前缀的数字代表一个八进制数字。 例如 0O12 相当于整数 10。

>>> x=0o12
>>> x
10
>>> type(x)
<class 'int'>

十六进制的

以 0x 或 0X 为前缀的数字表示十六进制号。 例如 0x12 相当于整数 18。

>>> x=0x12
>>> x
18
>>> type(x)
<class 'int'>

浮点数

在 Python 中,浮点数(float)是正负实数,小数部分由十进制符号.或科学符号Ee、 表示,例如 1234.56、3.142、-1.55、0.23。

>>> f=1.2
>>> f
1.2
>>> type(f)
<class 'float'>

浮点数可以用下划线_分隔,例如123_42.222_013是有效的浮点数。

>>> f=123_42.222_013
>>> f
12342.222013

浮动的最大大小取决于您的系统。超出其最大大小的浮动称为“inf”、“Inf”、“infinity”或“INFINITY”。对于大多数系统来说,Float 2e400将被认为是无穷大。

>>> f=2e400
>>> f
inf

科学记数法被用作表示有许多数字的浮点数的简短表示法。例如:345.56789 表示为 3.4556789e2 或 3.4556789E2

>>> f=1e3
>>> f
1000.0
>>> f=1e5
>>> f
100000.0
>>> f=3.4556789e2
>>> f
345.56789

使用float()函数将字符串、int 转换为 float。

>>> float('5.5')
5.5
>>> float('5')
5.0
>>> float('     -5')
-5.0
>>> float('1e3')
1000.0
>>> float('-Infinity')
-inf
>>> float('inf')
inf

复数

复数是有实部和虚部的数。例如,5 + 6j 是复数,其中 5 是实部,6 乘以 j 是虚部。

>>> a=5+2j
>>> a
(5+2j)
>>> type(a)
<class 'complex'>

你必须用 J 或 J 作为虚部。使用其他字符会引发语法错误。

>>> a=5+2k
SyntaxError: invalid syntax
>>> a=5+j
SyntaxError: invalid syntax
>>> a=5i+2j
SyntaxError: invalid syntax

算术运算符

下表列出了整数值的算术运算符:

操作员 描述 例子
+(加法) 在运算符的两侧添加操作数。 > > > a = 10b = 20

T2>T4>a+b T6】30 | | -(减法) | 从左侧操作数中减去右侧操作数。 | > > > a = 10b = 20

复数的算术运算

复数的加法和减法很简单。实部和虚部相加/相减得到结果。

>>> a=6+4j
>>> a+2
(8+4j)
>>> a*2
(12+8j)
>>> a/2
(3+2j)
>>> a**2
(20+48j)
>>> b=3+2j
>>> a+b    
(9+6j)    
>>> a-b    
(3+2j)

算术运算符也可以用于两个复数,如下所示。

>>> a=6+4j
>>> b=3+2j
>>> a+b    
(9+6j)    
>>> a-b    
(3+2j)
>>> a*b    
(10+24j)

这两个复数相乘的过程非常类似于两个二项式相乘。将第一个数字中的每个项乘以第二个数字中的每个项。

a=6+4j             
b=3+2j             
c=a*b              
c=(6+4j)*(3+2j)    
c=(18+12j+12j+8*-1)
c=10+24j

内置函数

可以使用以下函数将一种类型的数值对象转换为另一种类型:

内置函数 描述
int 从浮点数或包含数字的字符串中返回整数对象。
float 从包含带小数点或科学表示法的数字的数字或字符串中返回浮点数对象。
complex 返回一个有实部和虚部的复数。
hex 将十进制整数转换为前缀为 0x 的十六进制数。
oct 将十进制整数转换为前缀为 0o 的八进制表示形式。
pow 返回指定数字的幂。
abs 返回一个数字的绝对值,不考虑它的符号。
round 返回四舍五入的数字。