测试知识小测验——第4章——答案
1. 列出四个 Python 的核心数据类型。#
数字、字符串、列表、字典、元组、文件和 sets 通常都被认为是核心对象(数据)类型。Type(给出对象类型的类型)、None 和布尔型有时也被归为此类。有多种数字类型(整数、浮点数、复数、分数和小数)和多种字符串类型(Python 2 系列中的简单字符串和 Unicode 字符串,Python 3 系列中的文本字符串和字节字符串)。
2. 为什么它们被称为 “核心” 数据类型?#
因为它们是 Python 语言本身的一部分,而且永远可用;要创建其他对象,通常必须调用导入模块中的函数。大部分核心类型都有特定语法来产生对象:比如,'spam' 是一个表达式,用来创建字符串并确定可用于它的操作集。因此,核心类型被硬编码在 Python 的语法中。相反,必须调用内置的 open
函数来创建文件对象(即使这通常也被认为是一个核心类型)。
3. “不可变的” 意味着什么,有哪三个 Python 的核心类型被认为是不可变的?#
“不可变的” 对象是在其被创建后不能修改的对象。Python 中的数字、字符串和元组都归于此类。虽然不能就地修改一个不可变对象,但总能通过运行一个表达式来创建一个新的对象。在最近版本的 Python 中的字节数组提供了文本的可变性,但它们不是普通字符串,且只直接应用于 8 比特的那样的简单文本(比如:ASCII)
4. “序列” 意味着什么,有哪三个类型属于序列?#
序列是一个有序排列的对象集合。Python 中的字符串、列表、元组都是序列。它们共享通用的序列操作,如索引,连接和切片,但也拥有特定类型的方法调用。一个相关的术语 ——“可迭代”,意外着要么是一个物理上的序列,要么是按需生成项的虚拟序列。
5. “映射” 意味着什么,哪个核心类型是映射?#
术语 “映射” 代表一个将键映射到相关值的对象。Python 的字典是核心类型集中唯一的映射类型。映射不包含任何从左到右的位置顺序;它们支持按键去访问存储的数据,再加上特定类型的方法调用。
6. “多态性” 是什么,为什么应该关注它?#
“多态性” 意外着一个操作(如 a +)的含义取决于正在被操作的对象。这证明了用好 Python 背后的一个关键概念(或者是最关键的概念)—— 不将代码限定为特定类型使得代码自动适用于许多类型。