一、数字类型
Python语言提供3种数字类型:整数类型、浮点数类型和复数类型,分别对应数学中的整数、实数和复数。
(1010是一个整数类型,10.10是一个浮点数类型, 10+10j是一个复数类型)
1.1 整数类型
Python整数类型与数学中的整数概念一致,一般认为没有取值范围限制。
整数类型有4种进制表示:十进制、二进制 (0b 0B)、八进制 (0o 0O)和十六进制 (0x 0X)。
默认情况,整数采用十进制,其他进制需要增加引导符号。
不同进制的整数类型数值之间可以直接运算。
1.2 浮点数类型
带有小数点及小数的数字。
Python语言中的浮点数类型必须带有小数部分,小数部分可以是0。例如:1010是整数, 1010.0是浮点数。
浮点数有2种表示方法:十进制形式的一般表示 和 科学计数法 表示。除十进制外,浮点数没有其他进制表示形式。
(科学计数法使用字母e或者E作为幂的符号, 以10为基数)
Python浮点数类型的数值范围和小数精度受不同计算机系统的限制。除高精度科学计算外的绝大部分运算来说,浮点数类型的数值范围和小数精度足够“可靠” 。
“不确定尾数”问题:
Python语言中的两个浮点数运算,有一定概念在运算结果后增加一些“不确定的”尾数。
上例中原本0.1+0.3应该等于0.3的,可是因为小数在计算机里面的存储其实只能存储一个接近值,实际得到的是0.30000000000000004。这是因为受限于计算机表示浮点数使用的存储宽度,0.1不完全等于0.1,计算机在存储0.1时存储的是最接近0.1的二进制数,那关于0.1的小数运算自然也会让结果变得及接近但又不是了。
解决“不确定尾数”问题:
使用 round(x,d) 函数,这是一个四舍五入函数,d为保留的小数位数,x是待进行四舍五入的数。
1.3 复数类型
复数类型表示数学中的复数。复数有一个基本单位元素j,叫作“虚数单位” 。含有虚数单位的数被称为复数。(j^2=-1)
Python语言中,复数可以看作是二元有序实数对(a, b),表示为:a + bj,其中,a是实数部分, 简称实部,b是虚数部分,简称虚部。虚数部分通过后缀“ J ”或者“ j ”来表示。需要注意,当b为1时, 1不能省略,即需要用1j表示复数,而j则表示Python程序中的一个变量。
复数类型中实部和虚部都是浮点类型,对于复数z,可以用 z.real和z.imag分别获得它的实数部分和虚数部分。
二、数字类型的运算
2.1 数值运算操作符
Python提供了9个基本的数值运算操作符:
加减乘除运算与数学含义相同,Python额外提供了整数除(//)运算,即产生不大于x与y之商的最大整数。
模运算求余(%)在编程中十分常用,主要应用于具有周期规律的场景。例如:一个星期7个,用day代表日期,则day%7