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)是正负实数,小数部分由十进制符号.
或科学符号E
或e
、 表示,例如 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 | 返回四舍五入的数字。 |