所有语言都有一个数据类型,如:字符串类型、数字类型、布尔类型、集合类型(数组)、对象等等,最经典的一种就是 JSON
,因为 JSON
就是存储各种各样类型的一个集合文件,现在就开始学习关于 python
的数据类型,先从数字类型开始说。
在学习 python 的数据类型之前,先介绍一个 python
的方法:
type()
这个方法是判断数据类型的。
数字类型
什么是数字类型,数字类型就是可以通过数学里面的 ‘加减乘除’
计算的叫做数字类型如:
如上方的实例,当然也可以进行如:一元一次方、二元一次方这种更加复杂的操作,我用 type()
方法来判断以下,如:
可以看到我把上方所有数字类型的变量全部判断了一遍,打印出来的均为 <class 'int'>
,但是在 python
里面 int
是数字类型可是数字类型却不是 int
,因为在 python
里面数字类型有三种:
整型 :int
浮点型:float
长整型:long
上方介绍的为整数类型,浮点型和上方一样也可以进行 加减乘除
,但是通过类型判断方法 type()
打印出来的却是 float
,如我定一个变量为 abc = 1.1
可以看到浮点型打印出来的类型为 <class 'float'>
关于 长整型 就有点特殊了,因为 长整型 也是 整型 的一种,在 python
里面 长整型 没有指定的位宽,也就是说不限制数字的位数长度,但是实际上由机器的内存决定,所以不可能不限之数的位数,如:
32
位的机器:整数的位数是 32
位,也就是 2
的 31
次方~ 2
的 30
次方之间
64
位的机器:整数的位数是 64
位,也就是 2
的 62
次方~2
的 63
次方之间
但是在 python3
版本里面如果数据发生益处会自动转化为长整数,但是 python2
里面不会这么做,由于我本机是 mac
系统,在我系统里面其实内置了 python2
,然后我也安装了 python3
所以我用两个版本来做个实验。
我本机是 64
位的操作系统,我先用 python2
来做测试,运行一个 2
的 62
次方和 2
的 63
次方如。
2
的 63
次方:
可以看到在 python2
版本的 2
的 63
次方 里面他会在数字的末尾加上一个 L
,我在来运行以下 2
的 62
次方:
可以看到当数字位数没有超出一定的范围内他就不会加上 L
也就是说他不算长整数,但是在 python3
里面他会自动的转化成长整数也就是没有最后的 L
那么我现在来用 python3
来试一试:
可以看到我先是用 2
的 63
次方尝试了,然后由用 2
的 100
次方尝试了,最后我变成了 2
的 999
次方他依然没有给我在尾数加上 L 来区分他是不是长整数。
也就是说如果在 2
版本上声明一个长整数如:2
的 100
次方 也就是 1267650600228229401496703205376
,我们需要在后面加上一个 L
如:
a = 1267650600228229401496703205376L
否则就会报错,那么 3
版本的 python
压根就不需要加上 L
,可以直接写成:
a = 1267650600228229401496703205376