数据类型
数据类型顾名思义即用来定义不同数据的表示方法。以下是维基百科对数据类型解释:
在程序设计的类型系统中,数据类型(英语:Data type),又称数据型态、数据型别,是用来约束数据的解释。在编程语言中,常见的数据类型包括原始类型(如:整数、浮点数或字符)、多元组、记录单元、代数数据类型、抽象数据类型、参考类型、类以及函数类型。数据类型描述了数值的表示法、解释和结构,并以算法操作,或是对象在存储器中的存储区,或者其它存储设备。
Python 中有六个标准数据类型分别为数字(Number)、字符串(String)、列表(List)、元组(Tuple)、集合(Set)、字典(Dictionary)。
按数据是否可变来分:数字、字符串、元组为不可变数据;列表、集合、字典为可变数据。
数字(Number)
python 支持 int、float、bool、complex(复数)四种数字类型。
-
int
在 python3 中 int 为变长对象,只要内存足够,足以存储无法想象的天文数字。
>>> a = 1 >>> type(a) <class 'int'> >>> sys.getsizeof(a) 28 >>> a = 1 << 300000 >>> type(a) <class 'int'> >>> sys.getsizeof(a) 40028
-
float
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。
>>> a = 3.14 >>> type(a) <class 'float'>
-
bool
布尔值(bool)只有 True 和 False 两种值,None、0、空字符串、以及没有元素的容器对象都可视为 False,反之即为 True。
-
None
在 python 中 None 表示空值,是一个比较特殊的值 None 不能理解为0,因为0是有意义的,而 None 是一个特殊的空值。在 python 中
print(0==None)
将返回 False。Python 中的 None 与 C 语言中的 Null 是不同的,因为在 C 中 Null 的值是0。
常量与变量
几乎所有的编程语言中都存在变量和常量的概念,他们和数学上的的概念是类似的。
变量
正如变量字面的意义,变量是可变的,你可以用它来存储任何东西;和数学函数中的变量是一样的。在 python 中变量不仅仅可以是数字,还可以是字符串、列表、元组、字典等等。变量只是你的计算机内存中用以存储信息的一部分。
与文字常量不同,你需要通过一些方式来访问这些变量,因此,你需要为它们命名,在 python 中变量名必须是大小写英文、数字和_的组合,且不能用数字开头。
变量的定义
# 定义一个整数变量
a = 1
# 定义一个浮点数变量
f = 3.14
在 python 中使用等号=
来对一个变量进行赋值,赋值的过程就是变量和数值建立对应关系的过程,以下示例可以说明变量和数值的关系
>>> a = 5
>>> a
5
>>> a = 10
>>> a
10
可以看到首先将 5 赋值给变量 a,此时 a 的值为 5,再讲 6 赋值给 a, 此时 a 的值变为 6,者是对应关系的改变。
在看下面一个示例
>>> a = 5
>>> type(a)
<class 'int'>
>>> a = 3.14
>>> type(a)
<class 'float'>
可以看到在以上示例中首先将整数 5 赋值给变量 a,此时变量 a 的类型为 int,然后将浮点数 3.14 赋值给变量 a,此时变量 a 的类型改变为 float。这就引出 python 中的一句话对象有类型,变量无类型。
在大多数编程语言中变量定义是必需声明变量的数据类型,且改变量仅能赋值同一种数据类型的数据,在 python 中无需明确变量的类型,在程序运行过程中亦可改变变量对应的数据类型。但在使用使用过程中尽量不要在程序运行过程中改变变量的数据类型。
常量
常量即不可改变的变量,例如数学常熟 π 就是一个常量,在 python 中通常使用全部大写的变量名来作为常量。
在 python 中实际不存在常量的定义,python 无法保证任何全部大写的变量名不会被改变,用全部大写的变量名表示常量只是一个习惯上的用法,如果你非要改变他没有任何人可以阻拦你。这和大多数编程语言中修改常量的值编译器即提示错误存在很大的不同。
四则运算
四则运算即加、减、乘、除,来看以下运行示例:
>>> 2 + 3
5
>>> 5 - 1
4
>>> 5 * 2
10
>>> 5 / 2
2.5
>>>
从以上示例,我们可以看出在 python 中的四则运算和我们在小学所学的四则运算的结果完全相同。也许有人会说上面的都是整数的四则运算,那么小数(浮点数)的四则运算是否与我们现有的认知相同呢,来看以下示例:
>>> 2.0 + 2
4.0
>>> 4.0 - 0.9
3.1
>>> 4.0 * 3
12.0
>>> 4.1 / 2
2.05
>>>
从以上示例,我们可以看出在 python 中小数的四则运算和我们现有知识也是相同的「这绝对是废话」。
最后我们在来看一个整除的概念,整除即两个整数相除结果只保留整数部分。
>>> 10 / 3
3.3333333333333335
>>> 10 // 3
3
整数的地板除//
永远是整数,即使除不尽。要做精确的除法,使用/
就可以。
因为//除法只取结果的整数部分,所以Python还提供一个余数运算,可以得到两个整数相除的余数:
>>> 10 % 3
1
在大多数编程语言中两个整数相除得到的永远是整数,要做精确的触发必须将数据转换为小数,比如 C 语言。
网友评论