微信公众号:竹沥夏至
一个用心的公众号,欢迎留言
文:Jonathan
图:竹沥夏至
前言
在我们曾经学习过的C语言中,“很大一部分工作集中在用对象去表现应用领域的组件……这些工作听起来非常乏味且容易出错,并且往往背离程序的真正目标。”Mark Lutz如是说,“在典型的Python中……提供了强大的对象类型作为语言的组成部分。”这解决了编程者的很多麻烦,并且在内置类型能解决你的需要时,最好都使用内置对象。
今天,介绍一下python中的一些数据类型()。
首先,是最平凡的类型:数字。
数字
Python数字类型涵盖的有:整数、浮点数、和其他少见的类型(复数、固定精度的十进制数、有理分数以及集合等)。
Python中的数字支持一般的数学运算,加减乘除的符号表示与C语言相同,特色是‘**’代表乘方,作用对象可以是浮点数或整数,类似于C中pow函数。
关于python的除法,一个值得关注的地方是:在Python 3.0及之后的版本中,‘/‘表示真除法(无论任何类型都会保持小数部分);‘//’表示floor除法,所得结果为真正结果下最近的整数;顺便一提,我们通常叫的“整除法”,计算机中称为“截断除法”。
Python的除法规定在不同版本(2.X)中有显著差异,如有用到,建议先查阅相关资料。
Python一向支持无穷的大小。3.0及之后的版本无条件支持,然而2.6中会在整数后加上‘L’,以示是2.6版本中支持无穷大小的长整数类型。
复数表示为两个浮点数并在其后增加j或J的后缀。如:
Python还可以在多种进制中自由转换,通常情况,显示形式是十进制。
同时,oct函数会将十进制转为八进制,hex会将十进制转为十六进制,bin将十进制转为二进制。另一种转换方式是,内置int函数将一个数字字符串变为整数,并通过第二个参数表示变换前数字进制:
Python可以精确表示分数:
Python拥有一种独特数据类型——集合(set)运用内置set函数创建一个集合对象(这是Python2.6中的唯一方法),包括set传递的所有元素(不包含位置顺序),并且进行数学中的集合运算
也可以不用set函数创建集合,同时迭代自身创造新集合:
注意,集合解析构造编写在花括号中。
可以利用集合的性质,把重复的元素过滤掉:
运用一些集合方法,可以对集合进行操作:
布尔型
Mark Lutz如是说,“Python如今正式地有了一种明确的布尔型数据类型,叫做bool,其值为True和False”“True和False的行为和整数0和1是一样的,除了他们有特定的显示逻辑:他们是作为关键字显示的,而不是整数0和1”。
列表
列表是一种有序的集合,可以随时添加或删除元素。
List和C语言中的数列有一些像,它们首元素对应的序号都是0。在索引时应注意。
当list 中的元素为list,就形成了一个二维数组
一,元组(tuple)
tuple 可以理解为不可改变的 list,即创建时是什么样,它就一直是什么样。tuple在某些时候应用于不能用list的固定关系的处理。
Tuple创立时必须赋值
元组不是永远都不可变的。如果它的元素是list,那么tuple中的实际内容可以用list的方法改变。