一、数值类型
python 有四种数字类型:
int(整数)、bool(布尔类型)、float(浮点数)以及complex(复数)
1.浮点数
浮点数需要注意以下两点:
(1)尾数不确定:当你输入0.3==0.1+0.2时会 结果是False,因为由于二进制的关系
>>>0.1+0.2
>>>0.30000000000000004
(2)针对浮点数的尾数不确定问题,可以用以下方法:
import decimal
a=decimal.Decimal("0.1")
b=decimal.Decimal('0.2')
print(a+b==decimal.Decimal('0.3'))
>>>True
注意 decimal.Decimal(‘0.3’)这种形式的只能与同种形式的进行运算和比较。(对于这个问题有待深入研究,目前测试的结果是:
>>> import decimal as de
>>> de.Decimal('1')+5
Decimal('6')
>>> de.Decimal('1.1')+5
Decimal('6.1')
>>> de.decimal('1')+1.1
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
de.decimal('1')+1.1
AttributeError: module 'decimal' has no attribute 'decimal'
>>>
2.复数
复数分实部和虚部,表示为a+bj,注意,虚部用j表示,实部与虚部均为浮点数,通过.real 和.imag 来取得。
>>> x.imag
2.0
>>> x=1+2j
>>> x.real
1.0
>>> x.imag
2.0
3.整数
整数需要注意一点,python即便是两个整数能够整除,结果也是浮点数:
>>> 6/3
2.0
4 科学计数法:
>>> 0.000005
5e-06
二、数字运算
1.地板除 // 是取目标结果小的最大整数
>>>3//2
>>>1
>>>-3//2
>>>-2
2.求绝对值abs()
如果是复数,则abs()是求该数的模
>>> abs(-9)
9
>>> abs(1+2j)
2.23606797749979
>>>
3.int() 函数用于将一个字符串或数字转换为整型
注意:将浮点数转换为整数时,是直接截取其整数部分。
>>> type(int('123'))
<class 'int'>
>>> int(9.99)
9
>>> int(0.34)
0
>>>
4.float() 函数用于将整数和字符串转换成浮点数。
注意:结果是用小数点后面的零表示这是个浮点数而不是整数
>>> float('123')
123.0
>>> float(123)
123.0
>>>
5.科学计数法:
>>> 2e-4
0.0002
>>> 2e4
20000.0
>>>
- complex(): 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。
>>> complex(1,3)
(1+3j)
>>> complex('1+3j')
(1+3j)
>>> complex(1)
(1+0j)
7.幂函数:pow(n,m)和nm
注意pow(n,m,k)相当于nm%k
>>> pow(2,3)
8
>>> 2**3
8
>>> pow(2,3,3) #==8%3==2
2
>>>
8.bool() 判断真假(注意:这里True、False 必须得这样书写,不能写成true或者false)
所有为假的类型:
(1)定义为False的对象:None、False
(2)值为零的数字类型:0、0.0、0j、Decimal(0),Fraction(0,1)
(3)空的序列或集合:{}、’’、""、[]、set()、range(0)
>>> bool(False)
False
>>> bool('False')
True
>>>
布尔类型为特殊的整数类型:
>>> 1==True
True
>>> 0==False
True
>>> True+False #等价于1+0
1
>>> True*False #==1*0
0
>>> True-False #==1-0
1
>>> True/False #==1/0
Traceback (most recent call last):
File "<pyshell#65>", line 1, in <module>
True/False
ZeroDivisionError: division by zero
>>>