Python具有丰富的数据类型,如元组、字符串、列表等。
Python支持很多数字数据类型,如布尔型、整型、长整型、双精度浮点型和复数。Python中所有的数字都是对象,是不可更改类型,也就是说数字的值改变了就会产生新的对象。
Python中变量是不需要提前声明的,只需要在使用的时候直接复制即可,赋值之后,变量中存放的是对象的引用。
例如:var=100
这里首先会创建一个整型对象,其内容为100,在此同时创建一个名为 var的变量即对象引用,并将它和整型对象绑定,也就是说 var引用的就是这个整型对象。
在 Python中所有事物数据都是对象,赋值号“=”是将变量和内存中的某个对象进行绑定。如果对象已经存在了,就重新绑定,以便引用“=”右边的对象,如果对象引用不存在,就先创建对象,再将变量和对象进行绑定,这一点和 C语言中的指针类似。
一、布尔型bool
布尔型的取值只有True和False两种,布尔型的数据支持普通整形的所有计算,它一般用于真假的逻辑判断。布尔型其实是整型的子类。Python中的 False是指任何值为0的数字或者空集(空列表、空字典等)。
例如:>>> print('%s'%mx)
True
>>> bool('0')
True
>>> bool(0)
False
>>> bool([])
False
>>> x=12
>>> z=x<23
>>> z
True
>>> y=z+100
>>> y
101
>>> bool(-2)
True
>>> print('%s'%z)
True
二、整型int
Python中的基本整型相当于C语言中的长整型,在Python 3中,使用
>>> import sys
>>> print(sys.maxsize)
可以查看Python基本整形数据的取值范围。
在Python 2中应使用查看范围:
>>> import sys
>>> print sys.maxint
从Python2.2版本起,若发生溢出,Python会自动将基本整型数据转换为长整型。
在Python中一般采用十进制表示基本整型数据,如15,98,1245,-43。同时它也支持八进制和十六进制的表示,八进制的基本整型数字以“0o”开始(Python 2使用“0”),如0o23,0o125,-0o154。十六进制的基本整型数字以“0x”或“0X”开始,如0x52,-0X43,0XA4,0xBK。可用赋值的方法创建整型变量。
三、长整型
Python 2并没有限定长整型数字表示范围,故它算表达的数值仅与计算机所支持的虚拟内存的大小有关。在整型数字后面加上一个“L”或“l”,则表示这个数字是长整型数字。这个也支持十进制、八进制和十六进制的表示形式。如 567L,124l,-0212L,087L,0X55AC,-0x23dL……
Python 3中基本整型和长整型统一成了一种类型,即 int型,表示为长整型数据。
四、双精度浮点型float
Python使用float放置双精度浮点数。Python 中的科学记数法表示为:E 其中E大小写都可以。
如:1.2E3表示1.2x10^3
Python的浮点型遵循IEEE754双精度标准,每个浮点数占8个字节。
五、十进制浮点数Decimal
浮点类型数据的精度是有限的,如果它的精度不能满足要求时,可以使用Decimal类型,这是个高精度浮点数。
因为 Decimal类型不是内建的,因此使用的时候要导入decimal模块,使用decimal.Decimal()来存储精确的数字。
使用 Decimal要创建对象:Decimal(value='0',Context=None),其中 value可以是整数、字符串、元组,Context确定如何处理不合法的字符串,一般可以省略。例如:
>>> from decimal import Decimal
>>> a=1/3
>>> b=5/6
>>> print(a+b)
1.1666666666666667
>>> a=Decimal(1)/Decimal(3)
>>> b=Decimal(5)/Decimal(6)
>>> print(a+b)
1.166666666666666666666666667
六、复数Complex
复数形如:real+imagj
在Python中使用复数类型的数字要注意:虚部不能单独存在,要和一个0.0的实部一起构成复数;实部和虚部都是浮点数。如:3.2+5j,23.6-5.6j,6.56+5.1j
可以使用直接赋值的方法创建复数型变量:
>>> x=12.12+2.1e3j
>>> x
(12.12+2100j)
复数对象有real和imag两个数据属性,分别表示复数的实部和虚部:
>>> x.real
12.12
>>> x.imag
2100.0
复数对应一个共轭复数,调用conjugate方法可以返回复数的共轭复数:
>>> y=x.conjugate()
>>> y
(12.12-2100j)