admin 管理员组

文章数量: 1086019


2024年12月30日发(作者:bitmapviewer看图软件)

Python程序设计期末复习题

说明:蓝色表示正确的选项或者判断为正确的答案。

第1章 概述

一、单选题

1. Python是一种( )计算机程序设计语言。

A. 编译型 B. 解释型 C. 翻译型 D. 可视化

2.下列的编程语言是解释性语言的是( )。

A.C++ B.C C.Objective D.Python

3. 获取“Python之禅”的语句是( )。

A. Python B. Print C. import this D. import that

4. 下列IDE中,无法从事Python程序开发的是( )。

A.PyCharm B.VS Code C.Jupyter Notebook D.Code Blocks

二、判断题

1. Python是一种面向数据的计算机程序设计语言。( )

2. Python是一种编译型计算程序设计语言。( )

3. Python是一种解释型计算程序设计语言。( )

4. Python不是纯粹的函数式编程语言。( )

5. 由于GIL的存在,Python在多线程环境下很容易扩展。( )

6. 惰性计算是Python的一大特性。( )

7. Python使用缩进来体现代码之间的逻辑关系,对缩进的要求非常严格。( )

8.

只有Python扩展库才需要导入以后才能使用其中的对象,Python标准库不需要导入即

可使用其中的所有对象。( )

三、简答题

1.简述Python语言的优缺点。

参考答案:

优点:集成性、优雅美观、易于调试、拥有强大的解释器、兼容性

缺点:速度慢、无法加密、多线程灾难

2.如何在Python中导入第三方工具库,请举出几种常用的导入方式。

1

参考答案:一般使用import语句导入第三方库或非内置基本库。导入方式常有:import

XXX、import XXX from XXXX、from XXXX import XXX、import XXX as xxx、from

XXXX import * 等。

第2章 Python编程基础一:数值的表示

一、单选题

1. Python不支持的数据类型有( )。

A.int B.char. C.dict D.list

2. 下列哪种数据类型不是Python3中的数据类型( )。

A. int B. float C. complex D. long

3. print(type(16/4))的结果为( )。

4. Python中代码如需跨行时可以在行尾加上( )符号。

A. B./ C.| D.-

5. Python中哪个转义字符代表换行。( )

A.n B.b C.t D.r

6. 下列哪个语句在Python中是非法的?( )

A.x = (y = z + 1) B.x = y = z = 1

C.x, y = y, x D.x += y

7. 关于字符串下列说法错误的是( )。

A. 字符串应该视为长度为1的字符串

B. 字符串可以转化成数字

C. 既可以用单引号,也可以用双引号创建字符串

D. 在三引号字符串中可以包含换行回车等特殊字符

8. 3+5*6**2/2-8

以上语句的执行结果是( )。

A. 445.0 B. 25.0 C. 40.0 D. 85.0

9. “ab”+”c”*2 结果是( )。

A.abc2 B.abcabc C.abcc D.ababcc

10. 已知x=43,ch='A',y = 1,则表达式(x>=y and ch <'b' and y)的值是(

A. 1 B. 0 C. True D.报错

二、判断题

1. 在Python 3.x中可以使用中文作为变量名。( )

2. Python变量名是区分字母大小写的。( )

2

)。

3. Python中的字符串是可变数据类型。( )

4.

3+4j不是合法的Python表达式。( )

三、简答题

1.简述Python中的变量作用域。

参考答案:Python中变量作用域分为三个等级,即全局(global,定义在函数体外面的变

量)、局部(local,在函数体内定义的变量)和外部(nonlocal,嵌套函数中定义的变

量)。变量作用域的查找优先级依次为局部、外部、全局和内建(自带变量)。

2.请简述什么是局部变量?

参考答案:局部变量是指函数内部定义并使用的变量,它只在函数内部有效。每个函数在

执行时,系统都会为该函数分配一块“临时内存空间”,所有的局部变量都被保存在其中。

当函数执行完成之后,该空间被释放,局部变量也就失效了,因此离开函数之后就不能再

访问局部变量了,否则会抛出NameError异常。

3.简述is和==的区别。

参考答案:==表示等号,用来比较两个对象是否相等。而is是身份运算符,用来对比两个

对象是否为同一个对象。

第3章 Python编程基础二:I/O系统交互与批量数据处理

一、单选题

1.

a='a'

print ('c' or a>='b')

以上程序运行的结果是( )。

A.a

2.

print ('C:norton_antivirs')

以上语句的执行结果是( )。

A. C:norton_antivirs

C. C:

orton_antivirs

3.

a = 'python'

a[0] = 'c'

print(a)

以上程序的运行结果为( )。

3

B.b C.c

B. 'C:norton_antivirs'

D. C:orton_antivirs

C.c D.报错

4.

result = lambda x: x*x

print(result(5))

以上语句的运行结果为( )。

x: x*x B.10 C.25 D.55

5.

print({1,2,3}-{3,4,6})

以上程序的运行结果为( )。

A.{-2,-2,-3} B.{2,2,3} C.{1,2} D.报错

6. 下列数据是列表类型的是( )。

A. [1,2] B. [1 2] C. {1: 2} D. (1,2)

7.

[x1+x2 for x1,x2 in zip([1,2],[3,4])]

以上语句的运行结果为( )。

A.[4,6] B.[3,7] C.[1,2,3,4] D.报错

8. 已知x= [3, 5, 7],那么执行语句x[len(x):] = [1, 2]之后,x的值为(

A. [1, 2, 3, 5, 7] B. [1, 2]

C.[3, 5, 7, 1, 2] D.[3, 5, 7]

9.

a = [2,3,1]

()

以上程序的运行结果为( )。

A.[1,2,3] B.[3,2,1] C.无输出结果

10.

n1 = [1,2,3]

n2 = list('python')

n1+n2

以上语句的运行结果为( )。

A.[1,2,3,'p','y','t','h','o','n'] B.[1,2,3,'python'] C.['1p','2y','3t','h','o','n']

11.

a = [1, 2, 3]

b = [1, 2, 4]

id(a[1])==id(b[1])

以上程序的运行结果为( )。

C.报错 D.无任何输出

4

)。

D.报错

12. 以下关于字典的描述,错误的是( )。

A. 字典长度是可变的 B. 字典是键值对的集合

D. 字典中元素以键信息为索引访问 C. 字典中的键可以对应多个值信息

13. 以下不能创建一个字典的语句是( )。

A.dict1 = {}. B.dict2 = { 3 : 5 }

C.dict3 = {[1,2,3]: “uestc”} D.dict4 = {(1,2,3): “uestc”}

14.

d = {'Name':'Li','Age':23}

23 in d

以上程序的运行结果为( )。

D.'Age'

15. 假设将单词保存在变量 word 中,使用一个字典类型 counts={},统计单词出现的次

数可采用以下代码:( )。

A. counts[word] = count[word] + 1

B. counts[word] = 1

C. counts[word] = (word,1) + 1

D. counts[word] = (word,0) + 1

16.

d = {'Name':'Li','Age':23}

'Name' in d

以上语句的运行结果为( )。

17.

nums=set([1,1,2,3,3,3,4])

print (len(nums))

以上语句的输出结果为( )。

A.1

18.

(1,2,3).append(4)

以上程序的运行结果为( )。

A.(1,2,3,4)

19.

a=(1,2,['1,2'])

a[2].append(3)

print(a)

以上程序的运行结果是( )。

5

D.'Li'

B.2 C.4 D.5

B.(1,2,3) C.(4,1,2,3) D.报错

A. (1, 2, ['1,2', '3'])

20.

set('121323')

B. (1, 2, ['1,2', 3]) C. [1, 2, ['1,2', 3]] D. 报错

以上程序的运行结果为( )。

A.('1','2','1','3','2','3')

21.

nums=set([1,1,2,3,3,3,4])

print (len(nums))

以上语句的输出结果为( )。

A.1 B.2 C.4 D.5

B.{'121323'} C. {'1', '2', '3'} D. ('1', '2', '3')

二、判断题

1. 凡是用花括号(即{})括起来中间用逗号隔开元素的数据结构都叫字典。( )

2. 任何不可变对象均可作为字典的键。( )

三、简答题

1. 简述Python内置序列的主要数据结构?

参考答案:(1)列表,一种有序集合,每个元素都是确定的,可以通过索引访问每个元

素,是可变的,用方括号[ ]表示,其元素用逗号隔开;(2)元组是用圆括号 ( ) 表示,其

元素用逗号隔开的不可变序列;(3)字典,用花括号 { } 表示,使用key-value键值对方

式存储的序列,每一个键都与一个值相关联,可以使用键访问其对应的值,其键是不可变

的,值可以是任意对象;(4)集合,其元素都是唯一、无序的,有可变集合和不可变集

合,并且可以进行交、并、补等运算。

2.请描述列表和元组之间的区别和共同点。

参考答案:不同点:定义的方式不同 list[] tuple()

是否可变 list可变 tuple() 不可变

list中有 append(),insert() 函数,tuple中没有

相同点:都是有序的集合(容器)。

四、编程题

1. 给定列表 [0,1,2,3,4,5,6,7,8,9],要求把列表里面的每个值加1并返回

值。

参考答案:

l=[0,1,2,3,4,5,6,7,8,9]

l1=[]

for i in l:

6

(i+1)

print (l1)

或者:

l=[0,1,2,3,4,5,6,7,8,9]

l1=list(map(lambda x:x+1,l))

print (l1)

或者:

l=[0,1,2,3,4,5,6,7,8,9]

l1=(i+1 for i in l)

list(l1)

2. 有列表maths=[98,75,23,45,87,67,92,100,29,54,88],存储了若干名同学的某次考试的数

学成绩。请按照如下要求编写程序:

①将maths进行降序排列,并返回结果;

②找出不及格的分数;

③将每个同学的分数扣减5分。

参考答案:

(reverse=True)

print (maths)

[x for x in maths if x<60]

[x-5 for x in maths]

3. 给定一个字符串列表,如L=

['China','USA','Japan','France','Germany','UK','Korea','Australia'],请将L中的字符串按照

字符串长度进行降序排列。

参考答案:

string=['China','USA','Japan','France','Germany','UK','Korea','Australia']

(key=lambda x:len(set(list(x))) ,reverse=True)

print (string)

4. 给定一个列表,如string=['china','japan','USA','uk','France','Germany'],请编制程序为列

表中的字符串元素创建一个指向其列表位置的映射(如'china' : 0; 'japan' : 1)。

参考答案:

7

string=['china','japan','USA','uk','France','Germany']

mapping={val:index for index,val in enumerate(string)}

print (mapping)

或者:

mapping=dict((val,index) for index,val in enumerate(string))

print (mapping)

5. 有如下列表:

boysandgirls=

[['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe'],['Susie','Casey','Jill','Ana','Eva','Jennifer','

Stephanie']]

请编制程序,从boysandgirls中找出带有名字长度大于5个字母的名字。

参考答案:

lenththan5=[n1 for n2 in boysandgirls for n1 in n2 if len(n1)>5]

print (lenththan5)

或者:

lenththan5=[]

for n2 in boysandgirls:

for n1 in n2:

if len(n1)>5:

(n1)

print (lenththan5)

6. 请将列表L=[12,11,34,43,67,34,5,76,456,45,6,35,23,4523,45]中能够被2整除的元素提取

出来。

参考答案:

L=[12,11,34,43,67,34,5,76,456,45,6,35,23,4523,45]

list(filter(lambda x:x%2==0,L))

或者:

L=[12,11,34,43,67,34,5,76,456,45,6,35,23,4523,45]

l=[]

for _ in L:

if _/2==int(_/2):

(_)

print (l)

8

第4章 逻辑与控制

一、单选题

1.

if None:

print('Hello')

以上程序的运行结果为( )。

B.'Hello' C.无任何输出 D.报错

2. 以下关于 Python 的控制结构,错误的是( )。

A.每个 if 条件后要使用冒号

B.在 Python 中,没有 switch-case 语句

C.Python 中的 pass 是空语句,一般用作占位语句

D.elif 可以单独使用

3. 以下关于循环结构的描述,错误的是( )。

A.局部变量是指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数

调用时可以继续使用

B.使用global保留字声明简单数据类型变量后,该变量作为全局变量使用

C.简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退

出后变量被释放

D.全局变量是指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效

4. 以下哪个描述是正确的? ( )

A. break 语句用于终止当前循环

B. continue 语句用于跳过当前剩余要执行的代码,执行下一次循环

C. break 和 continue 语句通常与 if, if...else 和 if...lse 语句一起使用

D.以上说法都是正确的

5.

i = sum = 0

while i <= 4:

sum += i

i = i+1

print(sum)

以上程序的运行结果为( )。

A.0

6.

for i in range(2):

print(i)

9

B.10 C.4 D.以上结果均不正确

for i in range(4,6):

print(i)

以上程序的运行结果为:( )。

A.2, 4, 6

C.0, 1, 4, 5

7.

i=s=0

while (i<100):

s+=i

i+=1

print (s)

以上程序的运行结果是( )。

A. 5050 B. 4950 C. 5000 D. 100

B.1, 2, 4, 5, 6

D.0, 1, 2, 4, 5, 6

8. 以下关于 pass 哪个描述是正确的?( )

会忽略 pass 语句,就像忽略注释一样 语句会终止当前循环

不做任何事情,一般用做占位语句

二、判断题

1. continue语句的作用是终止正在执行的循环。( )

三、简答题

1.简述while语句和for语句的区别和联系。

参考答案:while和for都是Python中的循环语句。while循环和if语句类似,在条件或表

达式为真时,会重复执行相应的代码块(即循环语句体)。for语句常用语遍历字符串、列

表、元组、字典、集合等序列,逐个获取序列中的元素。在功能上,for语句可以完全替代

while语句。

2.什么是推导式(comprehensions)?

参考答案:推导式是一种将for循环、if表达式以及赋值语句放到单一语句中的编程方法,

只需一条表达式就能非常简洁的构造一个新对象,具体有列表推导式、集合推导式、字典

推导式等。其基本语法(如列表推导式)为:[表达式 for 对象 in 集合 if 条件]

四、编程题

1.请将输入的任意3个数值进行升序排列。

参考答案:

a,b,c = input(),input(),input()

if a > b: a,b = b,a

if a > c: a,c = c,a

10

D.以上说法都是正确的

if b > c: b,c = c,b

print ("from small to big: %s,%s,%s" %(a,b,c))

2.田忌与某人赛马,每人各出3匹马。田忌的马编号为a、b、c,某人的马编号为x、y、

z。使用抽签方式来进行一对一的三次比赛,已知a不和x比,c不和x、z比。请找出三次

赛马的对阵名单。

参考答案:

for x in ["a","b","c"]:

if x != "a" and x != "c":

print ("x:%s"%x)

for z in ["a","b","c"]:

if z != x and z != "c":

print ("z:%s"%z)

for y in ["a","b","c"]:

if y != x and y != z:

print ("y:%s"%y)

3.请编程打印形状如下的九九乘法表。

0*0= 0

1*0= 0 1*1= 1

2*0= 0 2*1= 2 2*2= 4

3*0= 0 3*1= 3 3*2= 6 3*3= 9

4*0= 0 4*1= 4 4*2= 8 4*3=12 4*4=16

5*0= 0 5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25

6*0= 0 6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36

7*0= 0 7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49

8*0= 0 8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

9*0= 0 9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

参考答案:

for i in range(10):

for j in range(i+1):

print("{0}*{1}={2:2d}".format(i,j,i*j),end=" ")

print(" ")

第5章 函数

一、单选题

1. 以下内容关于函数描述正确的是? ( )

11

A.函数用于创建对象 B.函数可以让重新执行的更快

C.函数是一段代码用于执行特定的任务 D.以上说法都是正确的

2. 如果函数没有使用 return 语句,则函数返回的是?( )

A.0 C.任意整数 D.报错! 函数必须要有返回值。

3. 如果函数没有使用 return 语句,则函数返回的是( )。

A.0 C.任意整数 D.报错! 函数必须要有返回值。

4. 下列代码执行结果是什么? ( )

x = 1

def change(a):

x += 1

print (x)

change(x)

A.1 B.2 C.3

5.

def f(x, y = 0, z = 0): pass

f(1, , 3)

以上程序运行的结果是:( )

A. pass B. None C. not

6.

def Foo(x):

if (x==1):

return 1

else:

return x+Foo(x-1)

print(Foo(4))

以上程序的运行结果为:( )

A.10 B.24 C.7 D.1

7.

def adder(x):

def wrapper(y):

return x + y

return wrapper

adder5 = adder(5)

print(adder5(adder5(6)))

以上程序的运行结果为: ( )

A.10 B.12 C.14

D.报错

D. 报错

D.16

12

8.

def power(x):

def p(y):

return x**y

return p

power(2)(5)

以上程序运行的结果是: ( )

A.2

9.

counter = 1

def doLotsOfStuff():

global counter

for i in (1, 2, 3):

counter += 1

doLotsOfStuff()

print (counter)

以上程序的运行结果为: ( )

A.1 B.3 C.4 D.7

B.25 C.10 D.32

二、判断题

1. 定义函数的时候,可选参数和非可选参数的位置可以自定义。( )

2. 使用关键字参数可以进行Python函数的乱序传参。( )

3.

全局变量不能在函数体内直接被赋值。( )

二、简答题

1. Python函数的参数有几种形式?

参考答案:具体有必备参数、缺省(默认)参数、命名(关键字)参数、不定(可变)参

数等。

2. 简述函数与方法的差异?

参考答案:第一,所处的位置不同。函数是直接写在文件中而不是类中,方法只能写在类

中。第二,定义的方式不同。在Python中,函数用def定义,而方法虽然是定义在类中的

函数,但是在定义其过程中,要根据方法的类型来设置诸如self之类的默认参数。第三,

调用方式不同。函数调用直接使用函数名加参数的方式调用即可,而方法是通过对象方法

调用的。

3. 如何在函数中设置一个全局变量?请举例说明。

13

参考答案:如果要给全局变量在一个函数里赋值,必须使用global语句。global VarName的

表达式会告诉Python,VarName是一个全局变量,这样Python就不会在局部命名空间里寻找

这个变量了。

def my_global():

global x

x=8

4. 什么是递归函数?使用递归函数有什么注意事项?

参考答案:一个函数在其函数体内调用其自身,成为递归函数。函数递归包含了一种隐式

的循环,它会重复执行某段代码,而且这种重复执行无须循环控制。要注意当一个函数不

断调用自己时,必须设置不再调用它自己的条件,否则就会变成无穷递归,进入死循环。

因此,使用递归函数一定要注意要向已知方向进行。

5. 什么是迭代器?它有什么优点?

参考答案:迭代器是一组数据结构,可以利用索引从0开始一直迭代到序列的最后一个元

素。优点:提供了可扩展的迭代器接口、带来了数据处理性能上的提升、与所有已经存在

的用户定义的类以及扩展的模拟序列和映射的对象向后兼容、可以创建更加简洁可读的代

码。

6. 请简述迭代器的迭代机制。

参考答案:迭代器有一个next()方法对象,而不是通过索引来计数。当一个循环机制

(如for语句)需要下一个项时,调用迭代器的next()方法就可以获得它。条目全部取

出后,会引发一个StopIteration异常,这并不表示错误发生,只是告诉外部调用者迭代完

成。迭代器不能向后移动,不能回到开始,也不能复制一个迭代器。如果要再次(或同

时)迭代同一个对象,只能创建另一个迭代器。

三、编程题

1. 请编写一个函数,能够实现任意数相加的功能。

参考答案:

def sum_any(*n):

s=0

for _ in n:

s+=_

return s

2. 请使用递归函数求给定n以内的所有整数之和。

参考答案:

def addn(n):

14

if n==1:

return 1

return n+addn(n-1)

3. 请编制一个能够求出任意给定列表中全部数值型元素的乘积的函数。

参考答案:

def sumlist(l):

s=1

for _ in l:

if isinstance(_, (int, float)):

s*=_

return s

运行结果:

somelist=[12,11,34,43,'python','3.7.4']

sumlist(somelist)

[out] 192984

4. 请设计一个能够将两个数相加的函数,该函数能够对其参数进行合规性检查。

参考答案:

def checkParams(func):

def wrapper(a, b):

if isinstance(a, (int, float)) and isinstance(b, (int, float)):

return func(a, b)

print ("Invalid Data Type!")

return

return wrapper

@checkParams

def add(a, b):

return a + b

5. 请写出下面程序的运行结果。

global c

c= 0

def f(a,b):

a = 4

print (a, b)

def main():

15

a = 5

b = 6

print (a, b)

print(a,c)

f(a,b)

print (a, b)

main()

① ② ③ ④

参考答案:①5 6 ②5 0 ③4 6 ④5 6

6. 请定义一个函数,并试写一个函数,给定n,返回第n个斐波那契数。0,1,1,2,3,5,8…

参考答案:

def fb(n):

if n==1:

return 0

if n==2:

return 1

if n > 2:

return fb(n-1)+fb(n-2)

7. 请编写一个计算减法的函数,当第一个数小于第二个数时,抛出“被减数不能小于减数

"的异常。

参考答案:

def jianfa(a, b):

try:

if a < b:

raise BaseException('被减数{}不能小于减数{}'.format(b,a))

else:

print(a - b)

except BaseException as f :

print(f) # 触发,抛出异常

jianfa(4,5)

8. 下列程序是求给定n以内的所有质数的程序,请代码填写完整。

from math import sqrt

def isprimenumber(n):

16

k= ①

j= ②

while j<=sqrt(n):

if n/j==int(n/j):

k=1

break

if k==0:

yield n

def prime(n):

for i in ④ :

yield from isprimenumber(i)

参考答案:

① 0

9. 请使用递归函数求给定n的阶乘。

参考答案:

def addn(n):

if n==1:

return 1

return n*addn(n-1)

10. 请根据如下程序的运行结果,将程序补充完整。

total= ①

def sum_user(para1,para2):

print ("Inside the sum_user function local total : ", total)

def inner(p1=1,p2=2):

print ("Inside the inner function local total : ", total)

inner()

return total

sum_user(10,20)

print ("Outside the all function global total: ", total)

17

② 2 ③ j+=1 ④ range(2,n+1)

运行结果:

Inside the sum_user function local total : 30

Inside the inner function local total : 3

Outside the all function global total: 0

参考答案:

① 0

11. 请编制一段程序,能够实现统计出给定列表中每一个元素中的数字和非数字的其它字

符个数的功能。

参考答案:

for c in l:

digit = 0

others = 0

if isinstance(c, int):

digit = len(str(c))

elif isinstance(c, float):

digit = len(str(c))-1

others =1

else:

for c1 in c:

if t():

digit +=1

else:

others += 1

print ('%s in list %s' % (c,l))

print ('digit = %d, others = %d' % (digit,others),end='nn')

如有ll=[123,1233.3,'w34k3','aldsjfla23e43423'],上述程序执行结果为:

123 in list [123, 1233.3, 'w34k3', 'aldsjfla23e43423']

digit = 3, others = 0

1233.3 in list [123, 1233.3, 'w34k3', 'aldsjfla23e43423']

digit = 5, others = 1

w34k3 in list [123, 1233.3, 'w34k3', 'aldsjfla23e43423']

digit = 3, others = 2

18

② total=para1+para2 ③ nonlocal total ④ total=p1+p2

aldsjfla23e43423 in list [123, 1233.3, 'w34k3', 'aldsjfla23e43423']

digit = 7, others = 9

第6章 Python的文件处理

一、单选题

1. open函数中哪种文件读取模式只用于写入。( )

A.r B.r+ C.w D.a

2. 以下选项中,不是Python对文件的打开模式的是( )。

A.a B.r. C.c D.w

3.以下文件操作方法中,打开后能读取 CSV 格式文件的选项是( )。

A. foo = open("","w")

C. foo = open("","r")

B. foo = open("","x")

D. foo = open("","a")

4. 将Pandas的DataFrame对象导出为xlsx文件的正确方法是( )。

_csv

二、判断题

_excel _xlsx _xls

1.

每次用完文件后,都要关闭文件 ()。否则,文件就会一直被Python占用,不能

被其他进程使用。( )

三、简答题

1.简述Python中进行文件处理的一般流程。

参考答案:Python中文件处理的一般流程为:首先,打开文件,将得到的文件句柄复制给

一个变量;然后,通过文件句柄对文件进行操作(读/写);最后,关闭文件。

四、编程题

1. 给定如下数据,请填写代码以完成从文件中读取身高的数据,并求得平均

值。

数据样式如下:

import ____①

with open('') as f:

row = ② #读取文件,并以逗号作为分隔符。

19

next(row)

height=[]

for r in row:

③ #在身高的列表中加入身高

s= ④ #求得身高的和

average= ⑤ #计算身高的平均值,保留两位小数点

参考答案:①csv ②(f, delimiter = ',') ③(float(r[2])) ④sum(height)

⑤round(s/len(height),2)

第7章 Python面向对象的编程技术

一、单选题

1. 下面哪项特性不是面向对象程序设计的主要特征( )。

A. 封装 B. 函数 C. 多态 D. 继承

2. Python使用关键字( )来定义类。

A.def B.__init__ C.class D.self

3. Python中查看对象的属性或方法,返回对象的属性和方法列表的函数为( )。

() () () ()

4. 下列哪个方法用于查看类的属性( )。

A.__doc__ B.__dict__ C.__module__ D.__class__

5. Python在声明类的过程中定义属性时,带有什么的属性称为私有属性。( )

A.2个下划线的前缀

后缀

6. Python中哪种标识符代表类的私有成员。( )

A.__foo__ B._foo C.__foo __

B.1个下划线的前缀 C.2个下划线的后缀 D.1个下划线的

7. 类方法是指类对象所拥有的方法,一般用装饰器( )来标识。

A. @staticmethod

二、判断题

1. 一个类只能创建出一个实例。( )

2. 当父类方法的功能不能满足需求时,可以在子类中重写父类的方法,该过程称之为方

法重载。( )

3. 私有属性只能在类的内部进行调用,无法在类的外部访问。( )

B. staticmethod C. @classmethod D. classmethod

4.

使用@staticmethod装饰器修饰的方法称之为类方法。( )

三、简答题

20

1. 什么是多态和多态性?

参考答案:多态是指一类事物有多重形态(一个抽象类有多个子类,因而多态的概念依赖

于继承)。多态性是指向不同的对象发送同一条消息,不同的对象在接收时会产生不同的

行为(方法)。多态性又包括静态多态性和动态多态性。静态多态性即任何类型都可以用

运算符“+”进行运算;动态多态性的意思是我们在使用对象的时候不需要考虑类的类型。

四、编程题

1. 请说明如下程序的功能:

a=100; b=10

a,b=b,a

参考答案:上述程序利用Python语法糖实现了交换两个对象的值的功能。

2. 请编写一个具有计数器属性(用于统计该类的实例对象数量)的类。

参考答案:

class SomeClass:

count = 0

@classmethod

def __init__(cls):

+= 1

3. 有如下程序,请在“#注释____”出补充该代码块的作用或功能。

class Female(Human): #注释 ①

def __init__(self,gender='female'): #注释 ②

super(Female,self).__init__()

=gender

def get_age(self):

return

def set_age(self,age_value): #注释 ④

#注释 ③

if not isinstance(age_value,int):

raise ValueError('Age must be an integer!')

if age_value<0:

raise ValueError('You were never born, age must be equal or greater than 0!')

if age_value>150:

raise ValueError('You really live forever! Age must be less than 150!')

=age_value

参考答案:

21

① 声明一个名为Female的类,继承于Human类

② 使用构造器构造Female类的实例属性gender,其余属性继承于父类Human

③ 使用方法来构造Female的实例属性age

④ 使用方法来对所构造的age属性的合法范围进行审查

第8章 测试、异常与异常处理

一、单选题

1. 有关异常说法正确的是( )。

A. 程序中抛出异常终止程序 B.程序中抛出异常不一定终止程序

C. 拼写错误会导致程序终止 D. 缩进错误会导致程序终止

2. 关于程序的异常处理,以下选项中描述错误的是( )。

A.程序异常发生经过妥善处理可以继续执行

B.异常语句可以与 else 和 finally 保留字配合使用

C.Python 通过 try、except 等保留字提供异常处理功能

D.编程语言中的异常和错误是完全相同的概念

3.

try:

1 / 0

except Exception as e:

print ("0不能作为除数")

else:

print ("没有异常")

finally:

print ("最后总是要执行我")

以上程序运行的结果是:( )

A. 0不能作为除数

B. 最后总是要执行我

C. 没有异常

D. 0不能作为除数

最后总是要执行我

二、判断题

1.

try except的作用是可以提高代码健壮性,捕获异常,巧妙的避开报错的信息。(

第9章 Python包与模块

22

一、单选题

1. 下列不属于Numpy数据类型的是( )。

A.int16 B.int32 C.int64 D.int128

2. 下列哪种调用模块的方式可以之后使用array([1,2,3]) 。( )

numpy numpy as np

numpy import array D.以上三种均不能

3. 以下查看Pandas的DataFrame对象a的属性信息的正确方法是:( )

()

4.

import numpy as np

b = (3)

b[~(b>=1)]

以上程序的运行结果为:( )

([0])

二、判断题

([0,1]) ([1,2]) ([], dtype=int32)

() () ()

1.

Numpy、Pandas、Matplotlib是使用Python语言从事数据分析的重要第三方库。( )

三、简答题

1. matplotlib、pyplot和pylab之间有什么关系?

参考答案:matplotlib是整个包;是matplotlib中的一个模块,为底层面向

对象的绘图库提供状态机接口;pylab是一个便利模块,是与matplotlib一起安装的,它在

单个名字空间中批量导入和numpy。对于非交互式绘图,建议使用pyplot

创建图形,然后使用OO绘图。

2.简述KNN算法的基本思想。

参考答案:K近邻即KNN是一种分类算法,是最简单的机器学习算法之一。其基本思想

是:在特征空间中,如果一个样本附件的K个最近(特征空间中最邻近)样本的大多数属

于某一个类别,则该样本也属于这个类别。

第10章 基于Python的大数据项目

简答题

1 .简述大数据处理的步骤。

参考答案:(1)采集。采集过程主要要考虑高并发数,如何在数据库之间进行负载均衡和

分片;(2)导入/预处理。将来自前端的数据导入大型分布式数据库或分布式存储集群,

在此基础上做一些清洗和数据预处理工作,或导入时做流计算工作,以满足实时计算的需

23

求;(3)统计/分析。对海量数据进行结构化或半结构化数据分析、分类汇总等;(4)挖

掘。基于各种算法,进行分类或预测,得到结论。

24


本文标签: 函数 使用 对象 语句 方法