《Python 编程基础》课程期末复习资料
一、客观部分:(单项选择、多项选择、不定项选择、判断)
(一)、单项选择
1 、 Python 程序在执行一次之后会自动生成扩展名为( B )的字节码文件,
以提高运行效率。
A 、 .py
B 、 .pyc
C 、 .pyb
D 、 .pyf
★ 考核知识点 : 程序基础和 Python 编程环境
参见讲稿章节: 1-02
附 1.1.1 (考核知识点解释):
Python 是一种解释型语言,但为了提高运行效率, Python 程序在执行一
次之后会自动生成扩展名为 .pyc 的字节码文件;字节码不同于机器语言,但很
容易转换为机器语言。
2、Python3.x 环境创建 Python 脚本文件时,需要将文件编码格式设置为( C
)。
A、ANSI
B、GBK
C、UTF-8
D、UNICODE
★ 考核知识点 : HelloWorld 程序
参见讲稿章节: 1-03
附 1.1.2 (考核知识点解释)
使用 Python 3.x 环境创建 Python 脚本文件时,需要将文件编码格式设置
为 UTF-8 ,否则运行脚本时可能会报错。
3、下列选项中,用于接收标准输入数据(即从键盘输入)、返回为 string 类型
(字符串)的函数是( B )。
A、eval
B、input
C、print
D、get
★ 考核知识点 : 输入、输出及 IDLE 环境介绍
参见讲稿章节: 1-04
附 1.1.3 (考核知识点解释)
input 函数接收标准输入数据(即从键盘输入),返回为 string 类型(字
符串)。
示例:
name=input(" 请输入你的姓名: ") # 输入“张三”
print(name) # 输出“张三”
4、执行“print(0x20)”,则在屏幕上会输出( D )。
A、20
B、0x20
C、16
D、32
★ 考核知识点 : Number 数据类型
参见讲稿章节: 2-02
附 1.1.4 (考核知识点解释)
整型数字包括正整数、 0 和负整数,不带小数点,无大小限制。整数可以使
用不同的进制来表示:不加任何前缀为十进制整数;加前缀 0o 为八进制整数
加前缀 0x 则为十六进制整数。
例:
a,b,c=10,0o10,0x10 #a 、 b 、 c 的值分别为 10 、 8 、 16
5、下列选项中,执行时不会报错的语句是( C )。
A、int('23.5') B、float('23.5+1') C、float('23.5') D、int('2a',8)
★ 考核知识点 : String 数据类型
参见讲稿章节: 2-03
附 1.1.5 (考核知识点解释)
int 函数:第一个参数是要转换为整数的字符串(要求必须是一个整数字符
串,否则会报错);第二个参数是字符串中整数的数制(不指定则默认为
10 )。例如: int('35') 返回整数 35 , int('35',8) 返回整数 29 , int('35+1') 则
会因无法转换而报错。提示: int 函数仅是将字符串中的数字直接转为整数,不
会做任何运算。当要转换的字符串是一个包含运算的表达式时, int 函数会报错。
float 函数:只有一个参数,即要转换为浮点数的字符串(要求必须是一个
整数或浮点数字符串)。例如: float('35') 返回浮点数 35.0 , float('35.5') 返
回浮点数 35.5 , float('35.5+3') 则会因无法转换而报错。提示:与 int 函数类
似, float 函数仅是将字符串中的数字直接转为浮点数,不会做任何运算。当要
转换的字符串是一个包含运算的表达式时, float 函数会报错。
6、下列选项中,描述错误的选项是( A )。
A、列表中的元素类型必须相同
B、列表中的元素之间用逗号分隔
C、列表中的元素可以是列表类型
D、列表中可以包含数字类型的元素
★ 考核知识点 : List 数据类型
参见讲稿章节: 2-04
附 1.1.6 (考核知识点解释)
List (列表)是 Python 中一种非常重要的数据类型。列表中可以包含多个
元素,且元素类型可以不相同。每一元素可以是任一数据类型,包括列表(即列
表嵌套)及后面要介绍的元组、集合、字典。所有元素都写在一对方括号“ []” 中
每两个元素之间用逗号分隔。对于不包含任何元素的列表,即 [] ,称为空列表。
7 、 已 知 t=(12,34.5,True,'test',3+5j) , 则 下 列 选 项 中 , 输 出 结 果 为
“('test',)”的选项是( C )。
A、t[3]
B、t[4]
C、t[3:4]
D、t[4:5]
★ 考核知识点 : Tuple 数据类型
参见讲稿章节: 2-05
附 1.1.7 (考核知识点解释)
元组中元素的索引方式与列表中元素的索引方式完全相同。与列表相同,利
用下标“ []” 可以从已有元组中取出其中部分元素形成一个新元组,其语法格式
为: t[beg:end] 。其中, t 为元组, beg 是要取出的部分元素在 t 中的起始下标
end 是要取出的部分元素在 t 中的结束下标。例如:
t=(1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3)
print(t[1:4]) # 输出“ (2.5, 'test', (3+4j))”
print(t[-3:-1]) # 输出“ (True, [3, 1.63])”
如果只访问元组 t 中的某一个元素,则可以使用下面的写法: t[idx] 。其中,
idx 是要访问的元素的下标。例如:
t=(1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3)
print(t[2]) # 输出“ test”
print(t[-3]) # 输出“ True”
8、下列选项中,执行时不会报错的语句是( D )。
A、{['Python',True]}
B、{3.5,[1.2,True]}
C、{3.5,{1.2,True}}
D、{3.5,1.2,True}
★ 考核知识点 : Set 数据类型
参见讲稿章节: 2-06
附 1.1.8 (考核知识点解释)
与元组和列表类似, Set (集合)中同样可以包含多个不同类型的元素,
但集合中的各元素无序、不允许有相同元素且元素必须是可哈希( hashable )
的对象。可哈希对象是指拥有 __hash__(self) 内置函数的对象。列表、集合和字
典类型的数据不是可哈希对象,所以它们不能作为集合中的元素。
9、下列选项中,错误的描述是( C )。
A、字典中的每一个元素是一个键:值对
B、字典中不同元素的键不能相同
C、字典中不同元素的值不能相同
D、通过“{}”可以创建一个空字典
★ 考核知识点 : Dictionary 数据类型
参见讲稿章节: 2-07
附 1.1.9 (考核知识点解释)
Dictionary (字典)是另一种无序的对象集合。但与集合不同,字典是一
种映射类型,每一个元素是一个键( key ) : 值( value )对。
在一个字典对象中,键必须是唯一的,即不同元素的键不能相同;另外,
键必须是可哈希数据,即键不能是列表、集合、字典等类型;值可以是任意类型
对于不包含任何元素的字典,即 {} ,称为空字典。
10、3*5**2 的运算结果为( C )。
A、30
B、225
C、75
D、报错
★ 考核知识点 : 序列运算符和运算符优先级
参见讲稿章节: 2-12
附 1.1.10 (考核知识点解释)
对于具有不同优先级的运算符,会先完成高优先级的运算,再完成低优先
级的运算。例如,表达式 3+5*6 中,“ *” 优先级高于“ +” ,因此会先计算
5*6 ,再计算 3+30 。运算符优先级如下表所示。

11、调用函数时函数名后面的一对小括号中给出的参数称为( A )。
A、实参
B、形参
C、类型参数
D、名字参数
★ 考核知识点 : 形参和实参
参见讲稿章节: 3-02
附 1.1.11 (考核知识点解释)
实参的全称是实际参数,即在调用函数时函数名后面的一对小括号中给出
的参数列表。当调用函数时,会将实参的值传递给对应的形参,函数中再利用形
参做运算、 得到 结果。
12、不定长的位置参数在传递给函数时会被封装成( A )。
A、元组
B、列表
C、集合
D、字典
★ 考核知识点 : 不定长参数
参见讲稿章节: 3-04
附 1.1.12 (考核知识点解释)
不定 长 参数,即在调用函数时可以接收任意数 量 的实参, 这些 实参在传递
给函数时会 被封装 成元组( 位 置参数)或字典( 关 键字参数)形式。
一 般情况 下,不定 长 参数是 放 在形参列表的 最 后,前面传入的实参与 普通
形参一一对应,而后面 剩余 的实参会 被封装 成元组或字典后传给不定 长 参数。
对于使用 位 置参数形式的不定 长 参数, Python 也 允许 普通 形参 放 在不定
长 参数后面,但此时要求在调用函数时必须使用 关 键字参数方式给不定 长 参数
后面的形参传递实参。对于有默认参数的形参,在调用函数时 也 可以不传入相应
实参。
13、一个脚本文件 M.py 单独执行时,其__name__变量的值为( B )。
A、M
B、__main__
C、M.py
D、不存在
★ 考核知识点 : 全局变量 __name__ 和系统模块
参见讲稿章节: 3-08
附 1.1.13 (考核知识点解释)
每个 模块 中都有的一个全部 变量 __name__ 。
__name__ 的作用是 获 取当前 模块 的名称,如果当前 模块 是 单独 执行的,
则其 __name__ 的值 就 是 __main__ ;否则,如果是作为 模块导 入,则其
__name__ 的值 就 是 模块 的名字。
例如:
module.py 脚本文件中的 代 码:
print(__name__) # 输出全 局变量 __name__ 的值
testmodule.py 脚本文件中的 代 码:
import module # 导 入 module 模块
提示:当 我 们执行 module.py 时,会在 屏幕上 输出: __main__ ;而当 我
们执行 testmodule.py 时,则会在 屏幕上 输出: module 。即 module.py 单
独 运行和作为 模块导 入时其 __name__ 的值是不同的。
14、局部变量的作用域是( B )。
A、从定义变量的位置到文件结束位置
B、从定义变量的位置到函数结束位置
C、所有函数
D、所有文件
★ 考核知识点 : 变量的作用域和局部变量
参见讲稿章节: 3-12
附 1.1.14 (考核知识点解释)
在一个函数中定 义 的 变量就 是 局 部 变量 (包括形参),其作用 域 是从定 义
局 部 变量 的 位 置 至 函数结束 位 置。
15、内层函数使用外层函数中定义的变量,应使用( B )关键字。
A、local
B、nonlocal
C、global
D、nonglobal
★ 考核知识点 : nonlocal 关键字
参见讲稿章节: 3-14
附 1.1.15 (考核知识点解释)
在 Python 中,函数的定 义 可以嵌套,即在一个函数的函数 体 中可以包含
另一个函数的定 义 。 通过 nonlocal 关 键字,可以使内 层 的函数直接使用外 层 函
数中定 义 的 变量 。
例:使用 nonlocal 关 键字示例。
def outer(): # 定 义 函数 outer
x=10 # 定 义局 部 变量 x 并赋 为 10
def inner(): # 在 outer 函数中定 义 嵌套函数 inner
nonlocal x #nonlocal 声明
x=20 # 将 x 赋 为 20
print('inner 函数中的 x 值为: ',x)
inner() # 在 outer 函数中调用 inner 函数
print('outer 函数中的 x 值为: ',x)
outer() # 调用 outer 函数
运行结果为:
inner 函数中的 x 值为: 20
outer 函数中的 x 值为: 20
提示: 通过 “ nonlocal x” 声明 在 inner 函数中使用 outer 函数中定 义 的
变量 x 、而不是重新定 义 一个 局 部 变量 x 。
16、lambda 函数是指( B )。
A、在一个函数内部通过调用自己完成问题的求解
B、不使用 def 定义函数的形式
C、一个函数不断被其他函数调用完成问题的求解
D、把函数作为参数的一种函数
★ 考核知识点 : 高阶函数和 lambda 函数
参见讲稿章节: 3-16
附 1.1.16 (考核知识点解释)
lambda 函数 也 称为 匿 名函数,是一种不使用 def 定 义 函数的形式,其作
用是能 快速 定 义 一个 简短 的函数。 lambda 函数的函数 体 只是一个表达式,所以
lambda 函数 通 常只能实 现比较简单 的 功 能。
语法格式为:
lambda [ 参数 1[, 参数 2, ..., 参数 n]]: 表达式
其中, 冒 号后面的表达式的计算结果即为 该 lambda 函数的返回值。
17、在闭包中,外层函数的返回值是( B )。
A、内层函数的调用
B、内层函数的 引 用
C、 任意 值
D、 无 返回值
★ 考核知识点 : 闭包
参见讲稿章节: 3-17
附 1.1.17 (考核知识点解释)
如果内 层 函数使用了外 层 函数中定 义 的 局 部 变量 , 并 且外 层 函数的返回值
是内 层 函数的引用, 就构 成了 闭 包。定 义 在外 层 函数中但 由 内 层 函数使用的 变量
被 称为自 由变量 。
18、类中的( A )对应一个类可以用 来保 存 哪些 数据。
A、 属性
B、 方法
C、数据
D、对 象
★ 考核知识点 : 类的定义和创建实例
参见讲稿章节: 4-02
附 1.1.18 (考核知识点解释)
在一个类中, 除 了可以包含前面所 说 的 属性 , 还 可以包含各种方法。 属性 对
应一个类可以用来 保存哪些 数据,而方法对应一个类可以 支持哪些操 作(即数
据 处理 )。
19、类中在 特 定 情况 下 由系统 自动执行的 方法 是( C )。
A、类 方法
B、 静态方法
C、内置 方法
D、 普 通 方法
★ 考核知识点 : 类中普通方法定义及调用
参见讲稿章节: 4-04
附 1.1.19 (考核知识点解释)
类中的方法分为两类: 普通 方法和内置方法。
( 1 ) 普通 方法需要 通过 类的实例对象 根 据方法名调用;
( 2 )内置方法是在 特 定 情况 下 由系统 自动执行。
20、 析构方法 的形参个数为( B )。
A、0
B、1
C、 至少 1 个
D、不 限
★ 考核知识点 : 析构方法
参见讲稿章节: 4-07
附 1.1.20 (考核知识点解释)
析构 方法是类的另一个内置方法,它的方法名为 __del__ ,在 销毁 一个类对
象时会自动执行,负 责 完成 待销毁 对象的 资源清理工 作,如 关闭 文件等。
例: 析构 方法示例。
class Student: # 定 义 Student 类
def __init__(self,name): # 定 义构造 方法
self.name=name
print(' 姓名为 %s 的对象 被 创建 ! '%self.name)
def __del__(self): # 定 义析构 方法
print(' 姓名为 %s 的对象 被销毁! '%self.name)
21、用于 获取父 类 代理 对 象 的 方法 是( D )。
A、parent
B、proxy
C、delegate
D、super
★ 考核知识点 : super 方法
参见讲稿章节: 4-12
附 1.1.21 (考核知识点解释)
super 方法用于 获 取 父 类的 代理 对象,以执行已在 子 类中 被 重写的 父 类方
法,其语法格式为:
super([ 类名 [, 对象名或类名 ]])
22、类 方法 的 第 一个形参对应( A )。
A、类
B、对 象
C、 第 一个实参
D、 第二 个实参
★ 考核知识点 : 类方法和静态方法
参见讲稿章节: 4-14
附 1.1.22 (考核知识点解释)
类方法是指使用 @classmethod 修饰 的方法,其第一个参数是类本 身 (而
不是类的实例对象)。类方法的 特 点是 既 可以 通过 类名直接调用, 也 可以 通过 类
的实例对象调用。
23、为 A 类中的 t 属性 定义一个 获取属性 值的 方法 (即 getter),则应使用(
A )装 饰器 。
A、 @ property
B、 @ t.getter
C、 @ property.getter
D、t.property.getter
★ 考核知识点 : @property 装饰器
参见讲稿章节: 4-16
附 1.1.23 (考核知识点解释)
Python 提 供 了 @property 装饰 器,可以将类中 属性 的访问和 赋 值 操 作自
动转为方法调用, 这 样可以在方法中对 属性 值的取值 范围 做一 些条 件限定。
直 接 使 用 @property 就 可 以 定 义 一 个 用 于 获 取 属 性 值 的 方 法 ( 即
getter )。如果要定 义 一个设置 属性 值的方法( setter ),则需要使用名字“ @
属性 名 .setter” 的 装饰 器。
如果一个 属性 只有用于 获 取 属性 值的 getter 方法,而 没 有用于设置 属性 值
的 setter 方法,则 该属性 是一个只 读属性 ,只允许 读 取 该属性 的值、而不能设
置 该属性 的值。
24、已知“a=[1,[2,3]]” 且 “b=a[:]”,则执行“a[1]=10”后,b 的值为(
B )。
A、[1,10]
B、[1,[2,3]]
C、[1,[10,3]]
D、报错
★ 考核知识点 : 复制列表元素
参见讲稿章节: 5-03
附 1.1.24 (考核知识点解释)
例:利用元素 截 取方法,实 现修改 一个对象中的元素值不会 影响 另一个对
象。
ls1=[1,2,3] # 创建列表对象 并赋 给 变量 ls1
ls2=ls1[:] # 通过 ls1[:] 将 ls1 的所有元素 截 取生成新对象 并赋 给 ls2
print('ls1 和 ls2 的值分别为: ',ls1,ls2)
print('ls1 和 ls2 的内 存地址 分别为: ',id(ls1),id(ls2))
ls1[1]=5 # 将 ls1 中下标为 1 的元素值 修改 为 5
print('ls1 和 ls2 的值分别为: ',ls1,ls2)
ls1=[1,[2,3]] # 创建列表对象 并赋 给 变量 ls1
ls2=ls1[:] # 通过 ls1[:] 将 ls1 的所有元素 截 取生成新对象 并赋 给 ls2
print('ls1 和 ls2 的值分别为: ',ls1,ls2)
print('ls1 和 ls2 的内 存地址 分别为: ',id(ls1),id(ls2))
print('ls1[1] 和 ls2[1] 的内 存地址 分别为: ',id(ls1[1]),id(ls2[1]))