通常意义下的类型分类

通常意义下的类型分类

同样分类的类型共享其操作集合

Python中三个主要类型(以及操作)的分类:

  • 数字(整数、浮点数、二进制、分数等)  支持加法和乘法等。
  • 序列(字符串、列表、元组) 支持索引、分片和合并等。
  • 映射(字典)  支持通过键的索引等。

集合是自成一体的一个分类(它们不会把键映射到值,并且没有逐位的排序顺序)。

同样的操作,如索引、切片等序列操作工作起来对于任意一种序列对象都是一样,包括字符串、列表、元组以及用户定义的对象类型。对象的类型将会告诉Python去执行什么样的任务。唯一区别:你得到的新的对象根据操作对象决定。

可变类型能够在原处修改

Python中的主要核心类型划分为如下两类:

  • 不可变类型(数字、字符串、元组、不可变集合)

                   不可变得分类中没有哪个对象类型支持原处修改,尽管我们总是可以运行表达式来创建新的对象并将其结果分配给变量。

  • 可变类型(列表、字典、可变集合)

                   相反,可变类型总是可以通过操作原处修改,而不是创建新的对象。尽管这样的对象可以赋值,但原处修改支持直接修改。

 

习题

  1. 字符串find方法能用于搜索列表吗?            不行,方法是类型特定的,只能用于单一数据类型上。
  2. 字符串切片表达式能用于列表吗?             可以,和方法不同的是,表达式是通用的,可以用于多种类型。
  3. 你如何将字符转成其ASCII码?你如何反向转换,从整数转换成字符?               内置的ord(s)函数可将耽搁字符串转换成整数字符编码。chr(I)则是从整数代码转换成字符串。
  4. 在Python中,怎么修改字符串?                          字符串无法被修改。可以通过合、切片运算、执行格式化表达式、方法调用创建新的字符串,再将结果赋值给最初的变量名,从而达到相似的效果。
  5. 已知字符串s的值为“s,pa,m",提出两种从中间抽取两个字符的方式。                可以使用s[[2:4]对字符串进行切片,或者使用s.split(',')[1]以逗号分隔字符串,再进行索引运算。
    >>> s = 's,pa,m'
    >>> s[2:4]
    'pa'
    >>> s.split(',')[1]
    'pa'
  6. 字符串”a\nb\x1f\000d"中有多少字符?                6个,a   \n   b   \x1f   \000   d
  7. 你为什么要使用string模块,而不使用字符串方法调用?                       如今不应该使用string模块,而应该使用字符串对象方法调用。string模块已经弃用。

 

posted on 2018-03-28 11:52  11wayne  阅读(296)  评论(0)    收藏  举报

导航