所有语言都有一个数据类型,如:字符串类型、数字类型、布尔类型、集合类型(数组)、对象等等,最经典的一种就是 JSON ,因为 JSON 就是存储各种各样类型的一个集合文件,现在就开始学习关于 python 的数据类型,先从数字类型开始说。

在学习 python 的数据类型之前,先介绍一个 python 的方法:

type()

这个方法是判断数据类型的。

数字类型

什么是数字类型,数字类型就是可以通过数学里面的 ‘加减乘除’ 计算的叫做数字类型如:

python判断数字是否一致 python 判断数字类型_python3


如上方的实例,当然也可以进行如:一元一次方、二元一次方这种更加复杂的操作,我用 type() 方法来判断以下,如:

python判断数字是否一致 python 判断数字类型_python3_02


可以看到我把上方所有数字类型的变量全部判断了一遍,打印出来的均为 <class 'int'>,但是在 python 里面 int 是数字类型可是数字类型却不是 int ,因为在 python 里面数字类型有三种:

整型 :int 浮点型:float 长整型:long

上方介绍的为整数类型,浮点型和上方一样也可以进行 加减乘除 ,但是通过类型判断方法 type() 打印出来的却是 float,如我定一个变量为 abc = 1.1

python判断数字是否一致 python 判断数字类型_python判断数字是否一致_03


可以看到浮点型打印出来的类型为 <class 'float'>

关于 长整型 就有点特殊了,因为 长整型 也是 整型 的一种,在 python 里面 长整型 没有指定的位宽,也就是说不限制数字的位数长度,但是实际上由机器的内存决定,所以不可能不限之数的位数,如:

32位的机器:整数的位数是 32 位,也就是 231 次方~ 230 次方之间
64位的机器:整数的位数是 64 位,也就是 262 次方~263 次方之间
但是在 python3 版本里面如果数据发生益处会自动转化为长整数,但是 python2 里面不会这么做,由于我本机是 mac 系统,在我系统里面其实内置了 python2,然后我也安装了 python3 所以我用两个版本来做个实验。
我本机是 64 位的操作系统,我先用 python2 来做测试,运行一个 262 次方和 263 次方如。

263 次方:

python判断数字是否一致 python 判断数字类型_长整数_04


可以看到在 python2 版本的 263 次方 里面他会在数字的末尾加上一个 L ,我在来运行以下 262 次方:

python判断数字是否一致 python 判断数字类型_长整数_05


可以看到当数字位数没有超出一定的范围内他就不会加上 L 也就是说他不算长整数,但是在 python3 里面他会自动的转化成长整数也就是没有最后的 L那么我现在来用 python3 来试一试:

python判断数字是否一致 python 判断数字类型_python判断数字是否一致_06


可以看到我先是用 263 次方尝试了,然后由用 2100 次方尝试了,最后我变成了 2999 次方他依然没有给我在尾数加上 L 来区分他是不是长整数。

也就是说如果在 2 版本上声明一个长整数如:2100 次方 也就是 1267650600228229401496703205376 ,我们需要在后面加上一个 L 如:

a = 1267650600228229401496703205376L

否则就会报错,那么 3 版本的 python 压根就不需要加上 L ,可以直接写成:

a = 1267650600228229401496703205376