我们知道,python的变量是有类型的,对于python变量的几种数据类型,我们在写python时是必须要有一定的概念的。知道数据类型就要知道变量数据类型怎么存储,可是为什么python的变量不需要声明数据类型就可以直接赋值?变量如果有数据类型,那变量不是可以为任意数据类型?那真正的数据类型如int在内存存储的字节大小应该为多少?等等诸如一系列的问题让我提起了的兴趣,经过网上不断查找学习后,在此将我所了解到的内容在此做个总结归纳
一、变量的数据类型
1、什么是变量的数据类型
我们先捋一捋什么是变量,变量从字面上理解就是可以变化的量,我们可以随时改变这个变量的值,使得我们可以调用同一个变量而获得不同的值,与之对应的是常量。那么对于一个可变的变量,它有可能表示是一个字符串,一个数字或者是一个小数,因为这些在计算机内存里存放的方式是不一样的,所以简单理解就是变量的数据类型不同就是对应的数据在计算机内存中存放方式的不同。这种方式表现在按多少字节存储,是否连续存储等。
我们都知道,c是静态类型语言,一种在编译期间就确定数据类型的语言,也就是我们需要对变量先声明其数据类型后才能使用,并且在使用过程中一般不能赋值一些超过该数据类型数值,比如:int a = 1.2,当然大类型是可以转向小类型的,如:double a = 1 (double类型接收整形数值)。可以肯定的,大多数静态类型语言都这么干。
当然,python语言也有数据类型。但python语言不同,它是一种动态类型语言,又是强类型语言。它们确定一个变量的数据类型是在你第一次给它赋值的时候,也就是说你赋值给变量什么数据类型的数值,变量就是什么数据类型的。所以,对比之下,c语言变量的数据类型是事先定义的,而python是后天接受的。
2、python五大标准数据类型
在讲变量存储之前,这里先简单总结下python的五大标准数据类型,为了方便展示,我们采用type方法显示变量的数据类型。
(1)Numbers(数字)
数字数据类型用于存储数值。他们是不可改变的数据类型,可简单分为以下四种:(注意这里十六进制,八进制都属于int整形。)
int(整型):
var = 520 print(type(var)) # <class 'int'>
float(浮点型):
var = 5.20 print(type(var)) # 输出:<class 'float'>
bool(布尔型):
var = true print(type(var)) # 输出:<class 'bool'>
complex(复数):
var = complex(13,14) print(type(var)) # 输出:<class 'complex'>
(2)String(字符串)
字符串或串是由数字、字母、下划线组成的一串字符,用‘’,“”,“‘ ‘”都可表示。三者的使用可参考这篇文章: python字符串的各种表达方式.
如下方代码所示,获得的类型为str类型。另外也顺便提一个小知识点,要访问字符串可以本文来源gao($daima.com搞@代@#码$网正向访问也可以反向访问,即正向时,var[0] = ‘p’,var[1] = ‘i’,var[2] = ‘g’;而反向时,var[-1] = ‘g’,var[-2] = ‘i’,var[-3] = ‘p’。
var = “pig” print(type(var)) # 输出:<class 'str'> print(var[0:3]) # 正向访问,输出:'pig' print(var[-1]) # 反向访问,输出:'g'