Python数字类型
来自CloudWiki
数字类型
Python语言提供3种数字类型:整数类型、浮点数类型和复数类型,分别对应数学中的整数、实数和复数。
n 1010是一个整数类型,10.10是一个浮点数类型,
10 + 10j是一个复数类型。
整数类型
- python的整数类型与数学中整数的概念一致。
1010,99,-217,0x9a,-0x89
整数的进制
整数类型一共有四种进制表示十进制二进制,八进制和16进制。
- 二进制:以“0B”或“0b”开头(比如0b101)
- 八进制:以 “0o”或“0O”开头(比如0o510)
- 十进制:比如10、29、40
- 十六进制 :以“0x”或“0X”开头(比如0xA7A)
- bin():十进制转换为二进制,输出形式是字符串
- oct():十进制转换为八进制,输出形式是字符串
- hex():十进制转换为十六进制,输入形式是字符串
- int() :接收一个符合整型规范的字符串,并将字符串转换为整型
>>> bin(23) '0b10111' >>> oct(23) '0o27' >>> hex(23) '0x17' >>> int('23') 23
- pow(x,y)函数
>>pow(2,100)
>>> s=123 >>> print(s) 123 >>> b= -25 >>> print(b) -25 >>> d= s+b >>> print(d) 98 >>> d=pow(2,3) >>> print(d) 8
浮点数类型
什么是浮点数
带有小数点及小数的数字。
Python语言中的浮点数类型必须带有小数部分,小数部分可以是0。
例如:1010是整数,1010.0是浮点数。
浮点数类型
n 浮点数有2种表示方法:十进制形式的一般表示和科学计数法表示。
- 浮点数有两种表示方法。十进制表示和科学计数法表示。
0.0 -77. -2.17 3.1416 96e4 4.3e-3 9.6E5
除十进制外,浮点数没有其他进制表示形式。
十进制表示的例子:
1010.0, -1010.
科学计数法使用字母e或者E作为幂的符号,以10为基数,含义如下:
<a>e<b> = a*10b
上例中,1.01e3值为1010.0;-1.01E-3值为0.00101。
Python浮点数类型的数值范围和小数精度受不同计算机系统的限制。除高精度科学计算外的绝大部分运算来说,浮点数类型的数值范围和小数精度足够“可靠”。
>>>1234567890.987654321 * 1234567890.987654321 1.5241578774577044e+18 >>>9876543210.123456789 / 1234567890.987654321 7.000000066600002
- 通过下面这条语句可以对浮点数进行赋值。
>>> b = 3.1416 >>> b 3.1416 >>> b = 10e5 >>> b 1000000.0 >>> a=3.1415 >>> print(a) 3.1415 >>> b= 6.3+a >>> print(b) 9.4415
不确定尾数问题
python浮点数计算 存在一个“不确定尾数”问题:
>>> 0.1+0.2 0.30000000000000004 >>> 0.1+0.2 == 0.3 False
解决办法:保留确定的小数位数
>>> round(1.2346,2) 1.23 >>> round(0.1+0.2,3) ==0.3 True
复数类型
复数类型表示数学中的复数。复数有一个基本单位元素j,叫作“虚数单位”。
含有虚数单位的数被称为复数。例如:
11.3+4j -5.6+7j 1.23e-4+5.67e+89j
Python语言中,复数可以看作是二元有序实数对(a, b),表示为:a + bj,
其中,a是实数部分,简称实部,b是虚数部分,简称虚部。
- Python语言中,复数的虚数部分通过后缀“J”或“j"来表示
>>> z =4 +5j >>> z.real 4.0 >>> z.imag 5.0
需要注意,当b为1时,1不能省略,即 1j表示复数,
而j则表示Python程序中的一个变量。
布尔类型
Python中的布尔类型只有True和False两个取值;
True对应整数1,False对应整数0。
等同于False的值:
None; False; 任何为0的数字类型,如0、0.0、0j; 任何空序列,如''''、()、[]; 空字典,如{}; 用户定义的类实例,如类中定义了__bool__()或者__len__()方法,并且该方法返回0或者布尔值False。