python期末复习题

Python综合练习题  第1套

一、Python基础

1. 以下变量名中,不符合Python语言变量命名规则的是______。

A. keyword_33 B. keyword33_ C. 33_keyword D. _33keyword

解析:

Python采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但名字的首字符不能是数字,标识符中间不能出现空格,长度没有限制。

本题答案为C。

2. 以下关于语言类型的描述中,错误的是______。

A. 解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程

B. C语言是静态编译语言,Python语言是脚本语言

C. 编译是将源代码转换成目标代码的过程

D. 静态语言采用解释方式执行,脚本语言采用编译方式执行

解析:

高级语言根据计算机执行机制的不同可分成两类:静态语言和脚本语言,静态语言采用编译方式执行,脚本语言采用解释方式执行。

本题答案为D。

3. Python 中用于定义函数的关键字______。

A.do B. pass C. while D. def

解析:

本题答案为D。

4.如果Python程序执行时产生了"TypeError"的错误,其原因是______。

A. 代码中缺少":"符号 B. 代码使用了错误的关键字

C. 码中的数据类型不匹配 D. 代码里的语句嵌套层次太多

解析:

TypeError表示类型错误。

本题答案为C。

☆5. 以下哪个表达式的结果是 True?

A. 3>5 or 5>=5

B. 3>5 and 5>=5

C.5!=5

D. not 5

解析:

本题答案为A。

二、程序控制

6. 以下关于Python语言中try语句的描述中,错误是______。☆

A. 一个try代码块可以对应多个处理异常的except代码块

B. 当执行try代码块触发异常后,会执行except后面的语句

C. try用来捕捉执行代码发生的异常,处理异常后能够回到异常处继续执行

D. try代码块不触发异常时,不会执行except后面的语句

解析:

基本的语法格式如下:

try:

<语句块1>

except:

<语句块2>

语句块1是正常执行的程序内容,当执行这个语句块发生异常时,则执行except保留字后面的语句块2。

本题答案为C。

7.若要将字符串转换为整数,可使用以下哪个函数?

A. int()

B.float()

C.str()

D. list()

解析:

len(x):返回字符串x的长度,也可返回其他组合数据类型的元素个数。

本题答案为A。

8. 键盘输入数字5,以下代码的输出结果是______。

n = eval(input("请输入一个整数: "))

s = 0

if n>=5:

n -= 1

s = 4

if n<5:

n -= 1

s = 3

print(s)

A.3 B.4 C.0 D.2

解析:

键盘输入数字5,则n的值为5,s的值为0。此时n>=5条件成立,n减1为4,s被赋值为4。此时n<5条件成立,n减1为3,s被赋值为3。程序结束,输出s的值为3。

本题答案为A。

9. 以下代码绘制的图形是______。

import turtle as t

for i in range(1,5):

t.fd(50)

t.left(90)

A.五边形 B.正方形 C.三角形 D.五角星

解析:

t.fd(50)表示沿着当前方向前进指定距离,t.left(90)表示向左旋转90度。range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1,则i的取值为1、2、3、4,所以绘制的图形是正方形。

本题答案为B。

三、函数

10.以下代码的输出结果是______。

def young(age):

if  12 <= age <= 17:

print( "作为一个大学生,你很年轻")

elif age <12:

print( "作为一个大学生,你太年轻了")

elif age <= 28:

print( "作为一个大学生,你要努力学习")

else:

print( "作为一个大学生,你很有毅力")

young(18)

A. 作为一个大学生,你很有毅力 B. 作为一个大学生,你很年轻

C. 作为一个大学生,你太年轻了 D. 作为一个大学生,你要努力学习

解析:

age取值为18时,if 12 <= age <= 17条件不成立,不执行输出语句;elif age <12条件不成立,不执行输出语句;elif age <= 28条件成立,执行输出语句,最后输出:作为一个大学生,你要努力学习。

本题答案为D。

☆☆11. 以下代码的输出结果是______。

def fibRate(n):

if  n <= 0:

return -1

elif n == 1:

return -1

elif n == 2:

return 1

else:

L = [1, 1]

for i in range(2,n):

L.append(L[-1]+L[-2])

return L[-2]/L[-1]

print(fibRate(5))

A.-1 B.0.625 C.0.6 D.0.5

解析:

n=5时,执行else后的语句,i的取值范围为range(2,5),即2、3、4。

ls.append(x)的作用是在列表ls最后增加一个元素x。初始状态时,L=[1,1]。第一次循环,n=2,L[-1]+L[-2]=2,L=[1,1,2];第二次循环,n=3,L[-1]+L[-2]=3,L=[1,1,2,3];第三次循环,n=4,L[-1]+L[-2]=5,L=[1,1,2,3,5]。循环结束,返回值L[-2]/L[-1],即3/5=0.6。

本题答案为C。

☆12. 以下关于Python语言的描述中,错误的是______。

A. 函数中return语句只能放在函数定义的最后面

B. 定义函数需要使用保留字def

C. 使用函数最主要的作用之一是复用代码

D. Python函数可以定义在分支或循环语句的内部

解析:

return语句用来结束函数并将程序返回到函数被调用的位置继续执行。return语句可以出现在函数中的任何部分,同时将0个、1个或多个函数运算的结果返回给函数被调用处的变量。

本题答案为A。

 

13. 以下关于函数优点的描述中,错误的是______。

A. 函数便于阅读

B. 函数可以使程序更加模块化

C. 函数可以减少代码重复

D. 函数可以表现程序的复杂度

解析:

使用函数主要有两个目的:降低编程难度和增加代码复用。表现程序的复杂度不属于函数的优点。

本题答案为D。

14. 以下的函数定义中,错误的是______。

A. def vfunc(a,b=2): B. def vfunc(a,b):

C. def vfunc(a,*b): D. def vfunc(*a,b):

解析:

可选参数一般都放置在非可选参数的后面,即定义函数时,先给出所有非可选参数,然后再分别列出每个可选参数及对应的默认值。

"def vfunc(*a,b):"函数定义错误,参数位置出错。

本题答案为D。

四、组合数据类型

15. 以下用来处理Python列表的方法中,错误的是______。

A.interleave B.append C.insert D.replace

解析:

append(x):在列表最后增加一个元素x。

insert(i,x):在列表第i位置增加元素x。

str.replace(old, new[, max])替换

本题答案为A。

16. 以下关于Python列表的描述中,正确的是______。

A. 列表用[]来定义

B. 列表用{}来定义

C. 列表用()来定义

D. 列表用<>来定义

解析:

列表没有长度限制,元素类型可以不同,不需要预定义长度。

本题答案为A。

17. 以下描述中,错误的是______。

A. 如果s是一个序列,s =[1,"kate",True],s[3]返回True

B. 如果x不是s的元素,x not in s返回True

C. 如果x是s的元素,x in s返回True

D. 如果s是一个序列,s =[1,"kate",True],s[-1]返回True

解析:

如果序列长度为L,正向递增需要以最左侧序列符号为0,向右依次递增,最右侧序列符号为L-1;反向递减序号以最右侧序列符号为-1,向左依次递减,最左侧序列符号为-L。

选项"A"超过列表的元素范围,出现IndexError错误,返回的结果不是True。

本题答案为A。

18. 以下程序的输出结果是______。

l1=['aa',[2,3,3.0]]

print(l1.index(2))

A.2 B.3.0 C.3 D. ValueError

解析:

索引序号从0开始,不能超过列表的元素范围。l1列表中只有两个元素,l1.index(2)表示取列表中第三个元素,会出错。

本题答案为D。

五、文件操作

19. 给以下程序填空,使得输出到文件a.txt里的内容是'90','87','93'的选项是______。

y = ['90', '87', '93']

l = ''

with open("a.txt",'w') as fo:

    for z in y:

        _______________

    fo.write(l.strip(','))

A. l+="'{}'".format(z)

B. l+="'{}'".format(z)+','

C. l=','.join(y)

D. l+='{}'.format(z)+','

解析:

格式化方法.format()用于解决字符串和变量同时输出时的格式安排问题,使用方式如下:

<模板字符串>.format(<逗号分隔的参数>)

其中,模板字符串是一个由字符串和槽组成的字符串,用来控制子串和变量的显示结果。槽用大括号({})表示,对应format()方法中逗号分隔的参数。

程序中使用strip()方法去掉数据尾部的逗号,所以程序填空处应该重新加上逗号,所以选项A错误。选项C中使用了中文状态下的引号(若将引号修改为英文状态,输出到文件的内容也与题意不符),所以选项C错误。使用选项D中的代码输出到文件中的内容与题意不符,所以选项D错误。

本题答案为B。

20. 以下关于文件的描述,错误的是______。

A. open()打开文件之后,文件的内容就被加载到内存中了

B. open()函数的参数处理模式'b'表示以二进制数据处理文件

C. open函数的参数处理模式'+'表示可以对文件进行读和写操作

D. fo.readlines()函数是将文件的所有行读入一个列表

解析:

'b':二进制文件模式。

'+':与r/w/x/a一同使用,在原功能基础上增加同时读写功能。

f.readlines(hint=-1):从文件中读入所有行以每行为元素形成一个列表。参数可选,如果给出,读入hint行。

本题答案为A。

21. 在Python语言中,将二维数据写入CSV文件,最可能使用的函数是______。

A.exists() B.split() C.strip() D.join()

解析:

join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

二维数据存储为CSV格式,需要将二维列表对象写入CSV格式文件以及将CSV格式读入成二维列表对象。

二维列表对象输出为CSV格式文件方法采用遍历循环和字符串的join()方法相结合。实例如下:

#ls代表二维列表,此处省略

f = open("cpi.csv","w")

for row in ls:

f.write(",".join(row)+"\n")

f.close()

 

本题答案为D。

☆22. 以下关于Python文件打开模式的描述中,错误的是______。

A. 只读模式r B. 覆盖写模式w C. 追加写模式a D. 创建写模式n

解析:

创建写模式x,文件不存在则创建,存在则返回异常FileExistsError。

本题答案为D。

六、Python生态

23. 以下不属于数据分析领域的Python第三方库是______。

A.Numpy B.Pandas C.PyQt5 D.Seaborn

解析:

PyQt5库是Python语言当前最好的GUI(用户图形界面)第三方库,它可以在Windows、Linux和MacOS X等操作系统上跨平台使用。

本题答案为C。

24. 以下用于计算机视觉领域的Python第三方库是______。

A. OpenCV-Python B. Matplotlib C. Flask D. PyMongo

解析:

OpenCV是一个强大的图像和视频工作库。它提供了多种程序接口,支持跨平台(包括移动端)应用。除了对图像进行基本处理外,还支持图像数据建模,并预制了多种图像识别引擎,如人脸识别。

本题答案为A。

25.以下哪个模块用于进行数学计算(  )

A. datetime

B. random

C. math

D. os

解析:

本题答案为C。

26. 以下关于turtle库的描述,错误的是______。

A. seth(x)是setheading(x)函数的别名,让画笔旋转x角度

B. home()函数设置当前画笔位置到原点,方向朝上

C. 可以用importturtle来导入turtle库函数

D. 在importturtle之后,可以用turtle.circle()语句画一个圆圈

解析:

home()设置当前画笔位置为原点,朝向东。

本题答案为B。

第二部分 判断题 (共10题,每题2分)

说明:请在题后填写 [T](正确)或 [F](错误)。

1. (    )eval()函数可以执行任意Python代码,存在安全风险。

       【答案:[T] 解析:正确。eval()动态执行字符串代码,可能导致安全风险。】

2. (    )在Python中,缩进是语法的一部分,用于表示代码块。

       【答案:[T] 解析:正确。Python使用缩进表示代码块结构。】

3. (    )Python中的%s运算符用于格式化字符串。

       【答案:[T] 解析:正确。%是Python字符串格式化的旧式方法。】

4. (    )文件读取时,read()会一次性读取全部内容,readline()逐行读取。

       【答案:[T] 解析:正确。read()一次性读取全部,readline()逐行读取。】

5. (    )try...except语句用于处理程序运行时的异常。

       【答案:[T] 解析:正确。try...except是Python异常处理的基本语法。】

6. (    )字典的键可以是任意不可变类型,如字符串、数字或元组。

       【答案:[T] 解析:正确。字典的键必须是可哈希的不可变对象,字符串、数字、元组均可。】

7. (    )Python中的字符串是不可变对象,修改后会生成新字符串。

       【答案:[T] 解析:正确。字符串是不可变对象,任何修改操作都会返回新字符串。】

8. (    )Python语言是一种解释型高级程序设计语言。

       【答案:[T] 解析:正确。Python是解释型高级语言,无需编译,直接由解释器执行。】

9. (    )turtle库只能用于绘制二维图形,不能实现动画效果。

       【答案:[T] 解析:错误。turtle库可实现简单动画效果。】

10. (    )pip是Python官方推荐的第三方库安装工具。

       【答案:[T] 解析:正确。pip是Python官方推荐的第三方库安装工具。】

 

第三部分 填空题 (共10题,每题2分)

说明:请在______处填写正确的词语或表达式。

1. Python中用于类型转换的函数,将字符串转为整数是______。

       【答案:turtle 解析:turtle,Python标准库,用于绘制几何图形和图形化编程入门教学。】

2. 字符串的strip()方法用于去除字符串______的空白字符。

       【答案:列表 解析:列表(或list),列表推导式语法为[表达式 for 变量 in 可迭代对象]。】

3. Python中用于定义函数的关键字是______。

       【答案:int() 解析:int(),用于将字符串或浮点数转换为整数。】

4. 用于安装第三方库的命令是______。

       【答案:[] 解析:[](中括号),用于创建列表字面量。】

5. Python中的______推导式可以用简洁方式生成列表。

       【答案:return 解析:return,用于将计算结果返回给函数调用者。】

6. Python中用于条件判断的关键字是______、elif和else。

       【答案:close() 解析:close(),关闭文件句柄以释放系统资源。】

7. Python中用于获取用户输入的函数是______。

       【答案:NumPy 解析:NumPy(Numerical Python),Python数值计算的基础库。】

8. 用于跳过当前循环进入下一次循环的关键字是______。

       【答案:except 解析:except,用于捕获并处理try代码块中抛出的异常。】

9. Python中用于创建字典的符号是______。

       【答案:BeautifulSoup 解析:BeautifulSoup,用于从HTML/XML中提取数据的第三方库。】

10. 用于从函数内部访问全局变量的关键字是______。

       【答案:2 解析:2(平方),**是Python中的幂运算符。】

 

第四部分 程序阅读题 (共5题,每题4分)

说明:阅读下列Python代码,写出程序运行后的输出结果。

1. 代码:

      s = 'Hello'

      print(s[1:4])

      上述代码的输出结果是______。

      【答案:A 解析:x=5大于3,条件成立,执行 print('A'),输出A。】

2. 代码:

      s = 'python'

      print(s.upper())

      上述代码的输出结果是______。

      【答案:PYTHON 解析:s.upper()将字符串中所有字母转为大写,'python'变为'PYTHON'。】

3. 代码:

      x = 3

      y = 5

      print(x + y)

      上述代码的输出结果是______。

      【答案:0 1 2 解析:range(3)生成0,1,2,end=' '使print不换行,输出'0 1 2 '。】

4. 代码:

      t = (1, 2, 3)

      print(t[1])

      上述代码的输出结果是______。

      【答案:['hello', 'world'] 解析:s.split()不带参数时按空白字符分割,得到['hello','world']。】

5. 代码:

      x = 10

      y = 3

      print(x // y)

        正确处理 n <= 1 的情况返回 False:2分

        正确使用平方根优化循环范围 range(2, int(n**0.5)+1):4分

        正确判断整除 n % i == 0:2分

        循环未找到约数时返回 True:1分

 

第五部分 编程题 (共3题,每题10分)

说明:请在下方空白处写出Python程序代码,要求程序能够正确运行并得到预期结果。

1. 温度转换

 

参考答案:

          def celsius_to_fahrenheit(c):

              return c * 9 / 5 + 32

 

判分标准(共10分):

2. 统计列表元素出现次数

 

参考答案:

          def count_occurrences(lst):

              result = {}

              for item in lst:

                  result[item] = result.get(item, 0) + 1

              return result

 

判分标准(共10分):

        函数定义正确,参数和返回值结构正确:2分

        创建空字典 result = {}:1分

        遍历列表 for item in lst:1分

        正确使用 dict.get() 统计计数:4分

        返回正确结果:2分

        函数定义正确(def),结构完整:2分

        参数名正确(如c):1分

        正确使用温度转换公式:5分

        返回结果:2分

  2. 2. 统计列表元素出现次数

      编写函数 count_occurrences(lst),统计并返回一个字典,

      键为列表中的元素,值为该元素出现的次数。

      示例:count_occurrences(['a', 'b', 'a'])  →  {'a': 2, 'b': 1}

3. 判断质数

      编写函数 is_prime(n),判断正整数 n 是否为质数(只能被1和自身整除)。

      质数定义:大于1的自然数,且除了1和它本身外,不能被其他自然数整除。

      示例:is_prime(7)   →  True is_prime(4)   →  False is_prime(1)   →  False

          def is_prime(n):

              if n <= 1:

                  return False

              for i in range(2, int(n ** 0.5) + 1):

                  if n % i == 0:

                      return False

              return True

        函数定义正确:1分

        正确处理 n <= 1 的情况返回 False:2分

        正确使用平方根优化循环范围 range(2, int(n**0.5)+1):4分

        正确判断整除 n % i == 0:2分

        循环未找到约数时返回 True:1分

          def is_prime(n):

              if n <= 1:

                  return False

              for i in range(2, int(n ** 0.5) + 1):

                  if n % i == 0:

                      return False

              return True

        函数定义正确:1分

        正确处理 n <= 1 的情况返回 False:2分

        正确使用平方根优化循环范围 range(2, int(n**0.5)+1):4分

        正确判断整除 n % i == 0:2分

        循环未找到约数时返回 True:1分

  3. 3. 判断质数

 

参考答案:

          def is_prime(n):

              if n <= 1:

                  return False

              for i in range(2, int(n ** 0.5) + 1):

                  if n % i == 0:

                      return False

              return True

 

判分标准(共10分):

        函数定义正确:1分

        正确处理 n <= 1 的情况返回 False:2分

        正确使用平方根优化循环范围 range(2, int(n**0.5)+1):4分

        正确判断整除 n % i == 0:2分

        循环未找到约数时返回 True:1分

 

Python综合练习题  第2套

 

一、Python基础

 

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

 

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

 

B. 异常处理可以提高程序的健壮性

C. 所有异常都必须处理,否则程序无法运行

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

 

 

 

解析:

 

各选项分析

 

 

 

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

 

正确。通过try-except捕获并处理异常后,程序可继续执行后续代码。

 

‌依据‌:异常处理的核心目的之一就是恢复程序正常流程。

 

‌B. 异常处理可以提高程序的健壮性

 

正确。妥善处理异常可防止程序崩溃,增强其应对错误的能力。

 

‌依据‌:健壮性提升是异常处理的关键价值。

 

  • · 所有异常都必须处理,否则程序无法运行

 

‌错误‌。Python 中未处理的异常仅终止当前执行流(如函数或线程),但程序仍可启动或继续执行其他部分。例如未捕获的ValueError仅导致当前任务中止,而非整个程序无法运行

 

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

 

正确。try、except、else、finally构成标准异常处理语法

 

本题答案为C。

 

2. 在Python语言中,可以作为源文件后缀名的是______。

 

A.png B.pdf C.py D.ppt

 

解析:

 

py可作为源文件后缀名。

 

本题答案为C。

 

3. 以下关于Python字符串的描述中,错误的是______。

 

A.空字符串可以表示为""或''

 

B. 在Python字符串中,可以混合使用正整数和负整数进行索引和切片

 

C. 字符串'my\\text.dat'中第一个\表示转义符

 

D. Python字符串采用[N:M]格式进行切片,获取字符串从索引N到M的子字符串(包含N和M)

 

解析:

 

对字符串中某个子串或区间的检索成为切片。切片的使用方式如下:

 

<字符串或字符串变量>[N:M]

 

切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。

 

本题答案为D。

 

4. 表达式3*4**2//8%7的计算结果是______。

 

A.3 B.6 C.4 D.5

 

解析:

 

x**y的作用是计算x的y次幂。

 

x//y的作用是计算x与y的整数商,即不大于x与y之商的最大整数。

 

x%y的作用是计算x与y之商的余数。

 

表达式中的运算符中,**的运算级最高,所以先计算4**2,即3*4**2//8%7=3*16//8%7=48//8%7=6%7=6。

 

本题答案为B。

 

二、程序控制

 

☆5.以下关于分支和循环结构的描述中,错误的是______。

 

A. 所有的for分支都可以用while循环改写

 

B. While循环只能用来实现无限循环

 

C. 可以终止一个循环的保留字是break

 

D. continue可以停止后续代码的执行,从循环的开头重新执行

 

解析:

 

while循环也可以用来实现遍历循环。

 

本题答案为B。

 

☆6. 在异常处理中,无论是否发生异常都会执行的代码块使用以下哪个关键字定义?

 

A.Try

 

B. Catch

 

C. Finally

 

D. except

 

解析:

 

A选项“try”:用于包裹可能发生异常的代码块,但它本身并不保证无论是否发生异常都执行,而是可能抛出异常并中断执行。

 

B选项“catch”(在Java中)或“except”(在Python中):用于捕获并处理异常,只有发生异常时才会执行。

 

C选项“finally”:无论是否发生异常,都会执行,用于清理资源等操作。

 

D选项“except”:这是Python中的关键字,类似于Java中的“catch”,同样只在捕获到异常时执行。

 

本题答案为C。

 

☆7. 以下关于分支结构的描述中,错误的是______。

 

A. 二分支结构有一种紧凑形式,使用保留字if和elif实现

 

B. if语句中条件部分可以使用任何能够产生True和False的语句和函数

 

C. if语句中语句块执行与否依赖于条件判断

 

D. 多分支结构用于设置多个判断条件以及对应的多条执行路径

 

解析:

 

二分支结构使用if-else保留字对条件进行判断,多分支结构使用if-elif-else保留字对多个相关条件进行判断。

 

本题答案为A。

 

8. 变量tstr='kip520',表达式eval(tstr[3:-1])的结果是______。

 

A.52 B.520 C.p520 D.p52

 

解析:

 

eval()函数将去掉字符串最外侧的引号,并按照Python语句执行去掉引号后的字符内容。

 

对字符串中某个子串或区间的检索成为切片。切片的使用方式如下:

 

<字符串或字符串变量>[N:M]

 

切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。反向从-1开始,正向从0开始。

 

tstr[3:-1]表示截取字符串正向第4个字符5到字符串末尾(不包括末尾字符)之间的字符,即'52'。

 

本题答案为A。

 

9.运行下列 Python程序,通过键盘输入6,输出结果是______。

 

a=input()

 

b=int(a)

 

print(a*3)

 

print(b*3)

 

A. 666 18 B. 18  18 C. 666  666 D. 18  666

 

解析:

 

本题答案为A。

 

三、函数

 

☆10.以下代码的输出结果是______。

 

t=10.5

 

def  above_zero(t):

 

return t>0

 

A.10.5 B.False C.没有输出 D.True

 

解析:

 

代码中只定义了函数above_zero(),未向函数中传递参数,函数不执行,没有输出。

 

本题答案为C。

 

11. 以下程序的输出结果是______。

 

def sum(a,b=3):
    return a+b

print(2)
print(2,6)

 

 

 

A.None B.10 C.0 D. UnboundLocalError

 

解析:

 

函数fun()无返回值,所以最后输出None。

 

本题答案为A。

 

☆12. 以下代码的输出结果是______。

 

CList = list(range(5))

 

print(2 in CList)

 

A.0 B.False C.True D.-1

 

解析:

 

range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1。start默认从0开始,range(5)等价于range(0,5),则CList中的元素取值为0、1、2、3、4。

 

x in S方法的作用是如果x是S的元素,返回True,否则返回False。2是CList中的元素,所以输出True。

 

本题答案为C。

 

13. 执行以下程序,输入"fish520",输出结果是______。

 

def printArgs(*arg1,**arg2):

 

    print(arg1)

 

    print(arg2)

 

 

 

printArgs(1,2,a=3)

 

A.(1)

 

{2, 'a': 3}

 

B.(1, 2)

 

{'a': 3}

 

C.(1, 2)

 

{'a'=3}

 

D.{1, 2}

 

{'a': 3}

 

解析:

 

本题答案为B。

 

四、组合数据类型

 

14. 以下程序的输出结果是______。

 

for i in "Nation":

 

    for k in range(2):

 

        if i == 'n':

 

            break

 

        print(i, end="")

 

A. aattiioo B. Nnaattiioo C. Naattiioon D. aattiioonn

 

解析:

 

range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1。start默认从0开始,range(2)等价于range(0,2),则k的取值范围为0、1。

 

break用来跳出最内层循环,脱离该循环后程序从循环后的代码继续执行。

 

第1次循环,i=N,k=0,if判断条件不成立,输出i的值为N。

 

第2次循环,i=N,k=1,if判断条件不成立,输出i的值为N。

 

第3次循环,i=a,k=0,if判断条件不成立,输出i的值为a。

 

第4次循环,i=a,k=1,if判断条件不成立,输出i的值为a。

 

……

 

第11次循环,i=n,k=0,if判断条件成立,跳出内层循环。

 

第12次循环,i=n,k=1,if判断条件成立,跳出内层循环。

 

最后输出为NNaattiioo。

 

本题答案为B。

 

15. 以下代码的输出结果是______。

 

for s in "HelloWorld":

 

if s=="W":

 

continue

 

print(s,end="")

 

A. Helloorld B.Hello C.World D.HelloWorld

 

解析:

 

Python通过保留字for实现遍历循环,使用方法如下:

 

for <循环变量> in <遍历结构>

 

<语句块>

 

遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。

 

Python的单分支结构使用if保留字对条件进行判断,使用方法如下:

 

if <条件>:

 

<语句块>

 

其中,if、:和<语句块>前的缩进都是语法的一部分。<条件>是一个产生True或False结果的语句,当结果为True时,执行<语句块>,否则跳过<语句块>。

 

continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。

 

题目中的代码循环过程如下:

 

s = H,输出结果H;

 

s = e,输出结果e;

 

s = l,输出结果l;

 

s = l,输出结果l;

 

s = o,输出结果o;

 

s = W,跳出当前当次循环,继续下一次循环;

 

s = o,输出结果o;

 

s = r,输出结果r;

 

s = d,输出结果d。

 

代码执行后的输出结果是Helloorld。

 

本题答案为A。

 

17. 以下程序的输出结果是______。

 

ls1=[1,2,3,4,5]

 

ls2=ls1

 

ls2.reverse()

 

print(ls1)

 

#列表对象的赋值和拷贝函数操作的差别,前者两个对象共享一块内存,后者是给第二个对象复制了一份新的变量;因此,赋值的情况下,如果修改了ls2的内容,则ls1也就改变了

 

A. [5,4,3,2,1] B. [1,2,3,4,5] C. 5,4,3,2,1 D. 1,2,3,4,5

 

解析:

 

ls.reverse():将列表ls中的元素进行逆序反转。

 

对于列表类型,使用等号无法实现真正的赋值,不能产生新列表。ls2 = ls1语句并不是拷贝ls1中的元素给变量ls2,而是新关联了一个引用,即增加一个别名,ls1和ls2所指向的是同一套内容,所以修改了ls2的内容,ls1也是随之改变的。

 

本题答案为A。

 

18. 以下选项,错误的是______。

 

A. Python的str、tuple和list类型都属于序列类型

 

B. 组合数据类型可以分为3类:序列类型、集合类型和映射类型

 

C. Python组合数据类型能够将多个数据组织起来,通过单一的表示使数据操作更有序、更容易理解

 

D. 序列类型是二维元素向量,元素之间存在先后关系,通过序号访问

 

解析:

 

序列类型是一维元素向量,元素之间存在先后关系,通过序号访问。

 

本题答案为D。

 

☆19. 以下代码的输出结果是______。

 

ls = []

 

for m in 'AB':

 

for n in 'CD':

 

 ls.append(m+n)

 

print(ls)

 

A.ABCD B.AABBCCDD C.ACADBCBD D. ['AC', 'AD', 'BC', 'BD']

 

解析:

 

Python通过保留字for实现遍历循环,使用方法如下:

 

for <循环变量> in <遍历结构>

 

<语句块>

 

遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。

 

ls.append(x)方法是列表的常用操作方法,作用是在列表最后增加一个元素x。

 

题目中的代码循环过程如下:

 

m = A,n = C,m+n = AC;

 

m = A,n = D,m+n = AD;

 

m = B,n = C,m+n = BC;

 

m = B,n = D,m+n = BD。

 

代码执行后的输出结果是['AC', 'AD', 'BC', 'BD']。

 

本题答案为D。

 

五、文件操作

 

20. 文件book.txt在当前代码所在目录内,其内容是一段文本:book,以下代码的输出结果是______。

 

txt = open("book.txt", "r")

 

print(txt)

 

txt.close()

 

A.非其他答案 B.book.txt C.txt D.book

 

解析:

 

open()方法的作用是打开一个文件,而所给的代码未对文件book.txt进行读写操作,直接关闭,运行后输出<_io.TextIOWrapper name='book.txt' mode='r' encoding='cp936'>。

 

本题答案为A。

 

21. 以下不属于Python的pip工具命令的选项是______。

 

A.install B.-V C.show D.download

 

解析:

 

pip常用的子命令有:

 

install、download、uninstall、freeze、list、show、search、wheel、hash、completion、help。

 

本题答案为B。

 

☆22. 在Python语言中,读入CSV文件保存的二维数据,按特定分隔符抽取信息,最可能用到的函数是______。

 

A.format() B.join() C.replace() D.split()

 

解析:

 

split()通过指定分隔符对字符串进行切片。

 

join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

 

replace()方法把字符串中的old(旧字符串)替换成new(新字符串)。

 

format()方法用于解决字符串和变量同时输出的格式安排问题。

 

本题答案为D。

 

23.文件操作中,'r' 模式表示______。

 

A. 只读

B. 写入(覆盖)

C. 追加

D. 二进制读取

 

解析:

 

本题答案为A。

 

六、Python生态

 

24. 以下不属于网络爬虫领域的Python第三方库是______。

 

A.Scrapy B.SnowNLP C.Requests D.PySpider

 

解析:

 

网络爬虫领域:Scrapy、Requests、PySpider。

 

SnowNLP用于处理中文文本内容。

 

本题答案为B。

 

25. 用Pyinstaller工具把Python源文件打包成一个独立的可执行文件,使用的参数是______。

 

A.-D B.-F C.-L D.-i

 

解析:

 

Pyinstaller命令的常用参数:

 

-h,--help:查看帮助

 

--clean:清理打包过程中的临时文件

 

-D,--onedir:默认值,生成dist目录

 

-F,--onefile:在dist文件夹中只生成独立的打包文件

 

-i<图标文件名.ico>:指定打包程序使用的图标(icon)文件

 

本题答案为B。

 

☆26.以下不属于Python数据分析领域第三方库的是______。

 

A.scrapy B.numpy C.pandas D.matplotlib

 

解析:

 

scrapy是Python语言中网络爬虫方向的第三方库,而numpy、scipy和pandas是Python语言中数据分析方向的第三方库,matplotlib是数据可视化方向的第三方库,也属于数据分析领域。

 

本题答案为A。

 

☆27. 在Python语言中,能够处理图像的第三方库是______。

 

A.PIL B.pyserial C.requests D.pyinstaller

 

解析:

 

PIL库是Python语言在图像处理方面的重要第三方库,支持图像存储、处理和显示,它能够处理几乎所有的图片格式,可以完成对图形的缩放、剪裁、叠加以及向图像添加线条、图形和文字等。

 

PIL库可以完成图像归档和图形处理两方面功能需求。

 

本题答案为A。

 

☆28. 在Python语言中,不属于Web开发框架第三方库的是______。

 

A.Django B.Flask C.Mayavi D.Pyramid

 

解析:

 

Python语言中Web开发框架第三方库有:Flask、Django、Pyramid,而mayavi是python语言中数据可视化方向的第三方库。

 

本题答案为C。

 

第二部分 判断题 (共10题,每题2分)

 

说明:请在题后填写 [T](正确)或 [F](错误)。

 

1. (    )eval()函数可以执行任意Python代码,存在安全风险。

 

       【答案:[T] 解析:正确。Pandas的DataFrame是其核心数据结构。】

 

2. (    )Python中的字符串是不可变对象,修改后会生成新字符串。

 

       【答案:[T] 解析:错误。Python函数定义时不需要显式声明参数和返回值的类型。】

 

3. (    )在Python中,缩进是语法的一部分,用于表示代码块。

 

       【答案:[T] 解析:正确。Python使用缩进表示代码块结构。】

 

4. (    )字典的pop()方法可以删除指定键值对并返回该值。

 

       【答案:[T] 解析:正确。pip是Python官方推荐的第三方库安装工具。】

 

5. (    )for循环可以遍历列表、字典、字符串等可迭代对象。

 

       【答案:[T] 解析:正确。read()一次性读取全部,readline()逐行读取。】

 

6. (    )文件读取时,read()会一次性读取全部内容,readline()逐行读取。

 

       【答案:[T] 解析:正确。Python支持多继承,类定义时可在括号中列出多个父类。】

 

7. (    )列表的append()方法可以在任意位置插入元素。

 

       【答案:[T] 解析:错误。Python是动态类型语言,变量使用前不需要声明类型。】

 

8. (    )Python语言是一种解释型高级程序设计语言。

 

       【答案:[T] 解析:正确。字典的pop(key)方法删除指定键值对并返回对应的值。】

 

9. (    )函数定义时必须指定参数和返回值的数据类型。

 

       【答案:[T] 解析:正确。for循环可以遍历任何可迭代对象。】

 

10. (    )Python中的%s运算符用于格式化字符串。

 

       【答案:[T] 解析:错误。列表的append()只能在末尾添加,任意位置插入用insert()。】

 

 

 

第三部分 填空题 (共10题,每题2分)

 

说明:请在______处填写正确的词语或表达式。

 

1. 用于安装第三方库的命令是______。

 

       【答案:pip install 解析:pip install,通过pip工具安装指定名称的第三方库。】

 

2. 用于绘制图形的Python标准库是______。

 

       【答案:2 解析:2(平方),**是Python中的幂运算符。】

 

3. Python标准库中用于处理CSV文件的模块是______。

 

       【答案:def 解析:def(define),用于定义函数的基本关键字。】

 

4. 用于数值计算的第三方库是______。

 

       【答案:continue 解析:continue,跳过本次循环剩余语句,直接进入下一次循环。】

 

5. Python中用于输出内容的函数是______。

 

       【答案:return 解析:return,用于将计算结果返回给函数调用者。】

 

6. 列表的______方法可以在列表末尾添加一个元素。

 

       【答案:int() 解析:int(),用于将字符串或浮点数转换为整数。】

 

7. Python中用于条件判断的关键字是______、elif和else。

 

       【答案:PyInstaller 解析:PyInstaller,可将Python脚本打包为独立的可执行文件(.exe)。】

 

8. 用于网络爬虫的第三方库是______。

 

       【答案:keys() 解析:keys(),返回字典中所有键的dict_keys视图对象。】

 

9. Python中用于创建字典的符号是______。

 

       【答案:列表 解析:列表(或list),列表推导式语法为[表达式 for 变量 in 可迭代对象]。】

 

10. Python中布尔类型的两个值是______和False。

 

       【答案:print() 解析:print(),用于将内容输出到标准输出设备(屏幕)。】

 

 

 

第四部分 程序阅读题 (共5题,每题4分)

 

说明:阅读下列Python代码,写出程序运行后的输出结果。

 

1. 代码:

 

      s = 'Hello'

 

      print(s[1:4])

 

      上述代码的输出结果是______。

 

      【答案:0 解析:d.get('c', 0)在字典中找不到'c'键,返回默认值0。】

 

2. 代码:

 

      def f(a, b=2):

 

          return a * b

 

      print(f(3))

 

      上述代码的输出结果是______。

 

      【答案:2 解析:元组下标从0开始,t[1]取第2个元素,结果为2。】

 

3. 代码:

 

      t = (1, 2, 3)

 

      print(t[1])

 

      上述代码的输出结果是______。

 

      【答案:8 解析:x和y分别是3和5,x+y=8,print()输出8。】

 

4. 代码:

 

      x = 3

 

      y = 5

 

      print(x + y)

 

      上述代码的输出结果是______。

 

      【答案:A 解析:x=5大于3,条件成立,执行 print('A'),输出A。】

 

5. 代码:

 

      s = 'hello world'

 

      print(s.split())

 

      上述代码的输出结果是______。

 

        正确使用 range(1, n+1):3分

 

        累乘逻辑 result *= i:3分

 

        返回结果:2分

 

 

 

第五部分 编程题 (共3题,每题10分)

 

说明:请在下方空白处写出Python程序代码,要求程序能够正确运行并得到预期结果。

 

1. 列表去重

 

 

 

参考答案:

 

          def remove_duplicates(lst):

 

              seen = set()

 

              result = []

 

 

 

判分标准(共10分):

 

2. 字符串逆序

 

 

 

参考答案:

 

          def reverse_string(s):

 

              result = ''

 

              for ch in s:

 

                  result = ch + result

 

              return result

 

 

 

判分标准(共10分):

 

        函数定义正确:1分

 

        创建空字符串 result = '':1分

 

        正确遍历字符串 for ch in s:2分

 

        逆序拼接逻辑(ch + result):4分

 

        返回结果:2分

 

              for item in lst:

 

                  if item not in seen:

 

                      result.append(item)

 

                      seen.add(item)

 

              return result

 

        函数定义正确:1分

 

        使用 set() 记录已见元素:2分

 

        创建结果列表 result = []:1分

 

        遍历并用 not in 判断去重:2分

 

        正确 append() 到结果列表:2分

 

        添加元素到已见集合:1分

 

        返回正确结果:1分

 

  2. 5. 字符串逆序

 

      编写函数 reverse_string(s),返回字符串 s 的逆序结果。

 

      不得使用 Python 内置的 reversed() 或 s[::-1] 切片语法。

 

      示例:reverse_string('hello')  →  'olleh' reverse_string('Python')  →  'nohtyP'

 

3. 计算阶乘

 

      编写函数 factorial(n),计算非负整数 n 的阶乘并返回。

 

      n! = n × (n-1) × (n-2) × ... × 2 × 1,特别地,0! = 1。

 

      示例:factorial(5)  →  120 factorial(0)  →  1

 

          def factorial(n):

 

              result = 1

 

              for i in range(1, n + 1):

 

                  result *= i

 

              return result

 

        函数定义正确:1分

 

        初始化 result = 1:1分

 

        正确使用 range(1, n+1):3分

 

        累乘逻辑 result *= i:3分

 

        返回结果:2分

 

          def factorial(n):

 

              result = 1

 

              for i in range(1, n + 1):

 

                  result *= i

 

              return result

 

        函数定义正确:1分

 

        初始化 result = 1:1分

 

        正确使用 range(1, n+1):3分

 

        累乘逻辑 result *= i:3分

 

        返回结果:2分

 

  3. 6. 计算阶乘

 

 

 

参考答案:

 

          def factorial(n):

 

              result = 1

 

              for i in range(1, n + 1):

 

                  result *= i

 

              return result

 

 

 

判分标准(共10分):

 

        函数定义正确:1分

 

        初始化 result = 1:1分

 

        正确使用 range(1, n+1):3分

 

        累乘逻辑 result *= i:3分

 

        返回结果:2分

 

Python综合练习题  第3套

 

一、Python基础

 

16. 在Python语言中,IPO模式不包括______。

 

A.Input(输出) B.Program(程序) C.Process(处理) D.Output(输出)

 

解析:

 

IPO模式包括输入(input)、输出(output)和处理(process)。

 

本题答案为B。

 

10. 以下代码的输出结3果是______。

 

a = 10.99

 

print(complex(a))

 

A. 0.99 B. 10.99+j C.10.99 D.(10.99+0j)

 

解析:

 

complex(r,i)函数的作用是创建一个复数r+i*1j,其中i可以省略。

 

本题答案为D。

 

26. 以下选项不属于Python语言特点的是______。

 

A. 平台无关 B. 第三方库丰富

 

C. 适合编写系统软件 D. 语法简洁

 

解析:

 

Python语言的三个重要特点:

 

⑴通用性:Python语言可以用于几乎任何与程序设计相关应用的开发,不仅适合训练编程思维,更适合诸如数据分析、机器学习、人工智能、Web开发等具体的技术区域。

 

⑵语法简洁。

 

⑶生态高产:Python解释器提供了几百个内置类和函数库,此外,世界各地程序员通过开源社区贡献了十几万个第三方函数库。

 

除此之外,还有一些具体特点:⑴平台无关;⑵强制可读;⑶支持中文。

 

本题答案为C。

 

☆30. 表达式type(type('45'))的结果是______。

 

A. <class'type'> B. <class'str'> C. <class'float'> D. None

 

解析:

 

type(x)函数对变量x进行类型判断,type('45')输出为<class 'str'>,type(type('45'))输出为<class 'type'>。

 

本题答案为A。

 

 

 

22.以下关于Python程序语法元素的描述,正确的选项是______。

 

A. 缩进格式要求程序对齐,增添了编程难度

 

B. 所有的if、while、def、class语句后面都要用':'结尾

 

C. Python变量名允许以数字开头

 

D. true是Python的保留字

 

解析:

 

一般代码不需要缩进,顶行编写且不留空白。当表示分支、循环、函数、类等程序含义时,在if、while、for、def、class等保留字所在完整语句后通过英文冒号结尾并在之后进行缩进,表明后续代码与紧邻无缩进语句的所属关系。

 

代码编写中,缩进可以用Tab键实现,也可以用多个空格(一般是4个空格)实现,但两者不混用。不会增加编程难度。

 

Python采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但首字符不能是数字。

 

Python保留字是大小写敏感的,True是保留字,true不是。

 

本题答案为B。

 

二、程序控制

 

10. 以下代码的输出结果是______。

 

for i in range(1,6):

 

if i%4 == 0:

 

break

 

else:

 

print(i,end =",")

 

A.1,2,3,5, B.1,2,3,4, C.1,2,3, D.1,2,3,5,6

 

解析:

 

range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1,则i的取值为1、2、3、4、5。根据程序可知,当i不能被4整除时,执行输出语句;当i能被4整除时,跳出for循环,则输出结果为"1,2,3,"。

 

本题答案为C。

 

12.列表变量ls共包含10个元素,ls索引的取值范围是______。

 

A. -1到-9(含)的整数 B. 0到10(含)的整数

 

C. 1到10(含)的整数 D. 0到9(含)的整数

 

解析:

 

列表的索引采用正向递增序号或反向递减序号,正向递增序号从0开始,即ls索引的取值范围是0到9(含)的整数;反向递减符号从-1开始,即ls索引的取值范围是-1到-10(含)的整数。

 

本题答案为D。

 

24. 执行以下程序,输出结果是______。

 

y='中文'

 

x='中文字'

 

print(x>y)

 

A.False B.True C.FalseorFalse D.None

 

解析:

 

字符串按位比较,x>y是成立的,所以输出True。

 

本题答案为B。

 

☆15. 键盘输入数字5,以下代码的输出结果是______。

 

try:

 

   n = input("请输入一个整数: ")

 

   def pow2(n):

 

   return n*n

 

except:

 

   print("程序执行错误")

 

A. 程序没有任何输出 B.25 C. 出程序执行错误 D.5

 

解析:

 

输入数字5之后,程序执行try之后的语句块。语句块中只包含函数定义过程,并未调用函数,所以程序没有任何输出。

 

本题答案为A。

 

三、函数

 

30. 以下程序的输出结果是______。

 

s=0

 

for n in range(1,10):

 

    s+=n

 

    if n==5:

 

        print(n)

 

        Break

 

print(s)

 

 

 

A.5   15 B.3   32 C.36  36 D.10  32

 

解析:

 

本题答案为A。

 

 

 

☆6. 当用户输入5时,下面代码的输出结果是______。

 

try:

 

n = input("请输入一个整数:")

 

def pow2(n):

 

return n**2

 

pow2(n)

 

except:

 

print("程序执行错误")

 

A.程序执行错误 B.25 C.程序没有任何输出 D.5

 

解析:

 

input()函数从控制台获得用户的一行输入,无论用户输入什么内容,input()函数都以字符串类型返回结果。所以变量n是字符串类型,计算n的平方时产生异常,执行except后的语句块,输出"程序执行错误"。

 

本题答案为A。

 

11. 以下代码的输出结果是______。

 

def func(a,b):

 

a *= b

 

return a

 

s = func(5,2)

 

print(s)

 

A.25 B.20 C.10 D.5

 

解析:

 

由代码可知,a被赋值为5,b被赋值为2,执行语句a *= b,即a=a*b,a的值为10,func(5,2)返回值为10,即s的值为10。

 

本题答案为C。

 

☆17.以下关于函数返回值的描述中,正确的是______。

 

A. Python函数的返回值使用很灵活,可以没有返回值,可以有一个或多个返回值

 

B. 函数定义中最多含有一个return语句

 

C. 在函数定义中使用return语句时,至少给一个返回值

 

D. 函数只能通过print语句和return语句给出运行结果

 

解析:

 

函数定义中可以含有多个return语句,可以返回0个、1个或多个函数运算的结果。函数可以没有return,此时函数不返回值。

 

本题答案为A。

 

☆5. 以下代码的输出结果是______。

 

for s in "PythonNCRE":

 

if s=="N":

 

continue

 

print(s,end="")

 

A.N B.PythonCRE C.Python D.PythonNCRE

 

解析:

 

continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。由代码可知,当s=="N"条件成立时,跳出当前当次循环,不输出s的值,则最后的输出结果为PythonCRE。

 

本题答案为B。

 

四、组合数据类型

 

27. 以下程序的输出结果是______。

 

x = [90,87,93]

 

y = ("Aele", "Bob","lala")

 

z = {}

 

for i in range(len(x)):

 

    z[i] = list(zip(x,y))

 

print(z)

 

A. {0:[(90,'Aele'),(87,'Bob'),(93,'lala')],1:[(90,'Aele'),(87,'Bob'),(93,'lala')],2:[(90,'Aele'),(87,'Bob'),(93,'lala')]}

 

B. {0:(90,'Aele'),1:(87,'Bob'),2:(93,'lala')}

 

C. {0:[90,'Aele'],1:[87,'Bob'],2:[93,'lala']}

 

D. {0:([90,87,93],('Aele','Bob','lala')),1:([90,87,93],('Aele','Bob','lala')),2:([90,87,93],('Aele','Bob','lala'))}

 

解析:

 

len(ls):列表ls的元素个数(长度)。

 

range(start, stop[, step])表示计数从start开始,到stop结束,但不包括stop,步长默认为1。start默认从0开始,range(len(x))等价于range(0,3),则i的取值范围为0、1、2。

 

zip():将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

 

由题面可知,每个键值对的值都是一样的。

 

本题答案为A。

 

☆10. 以下关于Python字典变量的定义中,错误的是______。

 

A. d = {1:[1,2], 3:[3,4]}

 

B. d = {[1,2]:1, [3,4]:3}

 

C. d = {(1,2):1, (3,4):3}

 

D. d = {'张三':1, '李四':2}

 

解析:

 

Python语言中的字典使用大括号{}建立,每个元素是一个键值对,使用方式如下:

 

{<键1>:<值1>,<键2>:<值2>……<键n>:<值n>}

 

其中,键和值通过冒号连接,不同键值对通过逗号隔开。

 

本题答案为B。

 

☆4.以下代码的输出结果是______。

 

ls = ['book',23,[2010,'stud1'],20]

 

print(ls[2][1][-1])

 

A.s B.stud1 C.1 D.结果错误

 

解析:

 

索引是列表的基本操作,用于获得列表中的一个元素。该操作沿用序列类型的索引方式,即正向递增序号和反向递减序号,使用中括号作为索引操作符,索引序号不能超过列表的元素范围,否则会出现IndexError错误。正向递增序号从0开始,反向递减序号从-1开始。

 

ls[2][1][-1]的执行过程:[2010,'stud1']-> stud1->1,即最后的结果是"1"。

 

本题答案为C。

 

☆17. 下面的d是一个字典变量,能够输出数字5的语句是______。

 

d = {'food':{'cake':1,'egg':5},'cake':2,'egg':3}

 

A. print(d['egg'])

 

B. print(d['food']['egg'])

 

C. print(d['food'][-1])

 

D. print(d['cake'][1])

 

解析:

 

索引是按照一定顺序检索内容的体系。由于字典元素"键值对"中键是值的索引,因此,可以直接利用键值对关系索引元素。

 

字典中键值对的索引模式如下(采用中括号格式):

 

<值> = <字典变量>[<键>]

 

d['food'][-1]和d['cake'][1]中括号里的内容不是键,与字典类型中的索引模式不一样;d['egg']执行后的值是3,不是5。

 

本题答案为B。

 

五、文件操作

 

7. 以下关于CSV文件的描述中,错误的是______。

 

A. CSV文件可以保存一维数据或二维数据

 

B. CSV文件的每一行是一维数据,可以使用Python的列表类型表示

 

C. CSV格式是一种通用的文件格式,主要用于不同程序之间的数据交换

 

D. CSV文件只能采用Unicode编码表示字符

 

解析:

 

逗号分隔的存储格式叫作CSV格式(逗号分隔值),是一种通用的、相对简单的文件格式,用途广泛,主要用于不同程序之间的数据交换;CSV文件不需要特定的字符编码;CSV文件的每一行是一维数据,整个CSV文件是一个二维数据;一维数据和二维数据都可以使用CSV格式保存成CSV文件。

 

本题答案为D。

 

11. 以下关于文件的描述中,错误的是______。

 

A. 使用read()可以从文件中读入全部文本

 

B. 可以使用open()打开文件,用close()关闭文件

 

C. 文件是存储在磁盘上的数据,也是序列的集合

 

D. 使用readline()可以从文件中读入一行文本

 

解析:

 

文件是存储在辅助存储器上的一组数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。

 

本题答案为C。

 

☆3. 以下关于Python二维数据的描述中,错误的是______。

 

A. 一种通用的二维数据存储形式是CSV格式

 

B. 二维数据由多条一维数据构成,可以看作一维数据的组合形式

 

C. 表格数据属于二维数据,由整数索引的数据构成

 

D. CSV格式每行表示一个一维数据,用英文半角逗号分隔

 

解析:

 

二维数据,也称表格数据,由关联关系数据构成,采用二维表格方式组织,对应于数学中的矩阵,常见的表格属于二维数据。

 

本题答案为A。

 

15. 文件exam.txt与以下代码在同一目录下,其内容是一段文本:bigBen,以下代码的输出结果是______。

 

f = open("exam.txt")

 

print(f)

 

f.close()

 

A. bigBen B. exam.txt

 

C. <_io.TextIOWrapper ...> D. exam

 

解析:

 

open()方法的作用是打开一个文件,而所给的代码未对文件exam.txt进行读写操作,直接关闭,运行后代码输出的结果是<_io.TextIOWrapper name='book.txt' mode='r' encoding='cp936'>。

 

本题答案为C。

 

1.在Python语言中,写文件的操作是______。

 

A.write B.writeall C.seek D.writetext

 

解析:

 

Python语言中写文件的操作方法:

 

f.write(s):向文件写入一个字符串或字节流。

 

f.writelines(lines):将一个元素为字符串的列表整体写入文件。

 

本题答案为A。

 

六、Python生态

 

21. 以下不属于人工智能领域的Python第三方库是______。

 

A.PyOCR B.PyTorch C.MXNet D.Keras

 

解析:

 

PyOCR不属于人工智能领域。

 

本题答案为A。

 

☆5. 在Python语言中,用于数据分析的第三方库是______。

 

A.PIL B.pandas C. Django D.flask

 

解析:

 

Python语言中数据分析方向的第三方库:numpy、scipy、pandas,而PIL第三方库可以完成图像归档和图形处理两方面功能需求。

 

本题答案为B。

 

13. 用Pyinstaller工具打包Python源文件时-F参数的含义是______。

 

A. 指定所需要的第三方库路径

 

B. 在dist文件夹中只生成独立的打包文件

 

C. 指定生成打包文件的目录

 

D. 删除生成的临时文件

 

解析:

 

Pyinstaller命令的常用参数:

 

-h,--help:查看帮助

 

--clean:清理打包过程中的临时文件

 

-D,--onedir:默认值,生成dist目录

 

-F,--onefile:在dist文件夹中只生成独立的打包文件

 

-i<图标文件名.ico>:指定打包程序使用的图标(icon)文件

 

本题答案为B。

 

12. 不属于Python用于Web开发第三方库的是______。

 

A.flask B.django C.scrapy D.pyramid

 

解析:

 

Python语言中Web开发框架第三方库有Flask、Django、Pyramid,而scrapy是python网络爬虫方向的第三方库。

 

本题答案为C。

 

第二部分 判断题 (共10题,每题2分)

 

说明:请在题后填写 [T](正确)或 [F](错误)。

 

1. (    )列表的append()方法可以在任意位置插入元素。

 

       【答案:[T] 解析:正确。Python支持多继承,类定义时可在括号中列出多个父类。】

 

2. (    )列表是不可变的数据类型,一旦创建后不能修改其元素。

 

       【答案:[T] 解析:错误。NumPy擅长数值计算和矩阵运算。】

 

3. (    )eval()函数可以执行任意Python代码,存在安全风险。

 

       【答案:[T] 解析:错误。Python是动态类型语言,变量使用前不需要声明类型。】

 

4. (    )turtle库只能用于绘制二维图形,不能实现动画效果。

 

       【答案:[T] 解析:错误。BeautifulSoup是独立的HTML/XML解析库。】

 

5. (    )在Python中,缩进是语法的一部分,用于表示代码块。

 

       【答案:[T] 解析:正确。Python是解释型高级语言,无需编译,直接由解释器执行。】

 

6. (    )Pandas是用于数据处理的第三方库,DataFrame是其核心数据结构。

 

       【答案:[T] 解析:正确。eval()动态执行字符串代码,可能导致安全风险。】

 

7. (    )break语句可以提前结束while循环,但不能结束for循环。

 

       【答案:[T] 解析:正确。字符串是不可变对象,任何修改操作都会返回新字符串。】

 

8. (    )Python中打开文件后可以不使用close()方法关闭,解释器会自动关闭。

 

       【答案:[T] 解析:正确。Python使用缩进表示代码块结构。】

 

9. (    )range(5)生成序列:0, 1, 2, 3, 4。

 

       【答案:[T] 解析:正确。for循环可以遍历任何可迭代对象。】

 

10. (    )字典的pop()方法可以删除指定键值对并返回该值。

 

       【答案:[T] 解析:错误。Python支持三元运算符。】

 

 

 

第三部分 填空题 (共10题,每题2分)

 

说明:请在______处填写正确的词语或表达式。

 

1. Python中用于创建列表的符号是______。

 

       【答案:continue 解析:continue,跳过本次循环剩余语句,直接进入下一次循环。】

 

2. Python中的______推导式可以用简洁方式生成列表。

 

       【答案:close() 解析:close(),关闭文件句柄以释放系统资源。】

 

3. 函数中______语句用于返回值给调用者。

 

       【答案:分割/拆分 解析:分割(或拆分),split()方法按指定分隔符将字符串拆分为列表。】

 

4. 使用open()函数打开文件后,应使用______方法关闭文件。

 

       【答案:append() 解析:append(),在列表末尾追加单个元素。】

 

5. 用于数值计算的第三方库是______。

 

       【答案:两端 解析:两端,strip()方法默认去除字符串首尾的空白字符。】

 

6. 用于绘制图形的Python标准库是______。

 

       【答案:csv 解析:csv,Python标准库模块,提供CSV文件读写功能。】

 

7. 用于网络爬虫的第三方库是______。

 

       【答案:global 解析:global,用于在函数内部声明对全局变量的修改。】

 

8. 用于跳过当前循环进入下一次循环的关键字是______。

 

       【答案:BeautifulSoup 解析:BeautifulSoup,用于从HTML/XML中提取数据的第三方库。】

 

9. 用于安装第三方库的命令是______。

 

       【答案:NumPy 解析:NumPy(Numerical Python),Python数值计算的基础库。】

 

10. Python中用于定义函数的关键字是______。

 

       【答案:列表 解析:列表(或list),列表推导式语法为[表达式 for 变量 in 可迭代对象]。】

 

 

 

第四部分 程序阅读题 (共5题,每题4分)

 

说明:阅读下列Python代码,写出程序运行后的输出结果。

 

1. 代码:

 

      x = 10

 

      y = 3

 

      print(x // y)

 

      上述代码的输出结果是______。

 

      【答案:PYTHON 解析:s.upper()将字符串中所有字母转为大写,'python'变为'PYTHON'。】

 

2. 代码:

 

      d = {1: 'a', 2: 'b'}

 

      d[3] = 'c'

 

      print(len(d))

 

      上述代码的输出结果是______。

 

      【答案:abcabc 解析:字符串乘以整数n表示重复n次拼接,'abc'*2得到'abcabc'。】

 

3. 代码:

 

      t = (1, 2, 3)

 

      print(t[1])

 

      上述代码的输出结果是______。

 

      【答案:8 解析:x和y分别是3和5,x+y=8,print()输出8。】

 

4. 代码:

 

      s = 'python'

 

      print(s.upper())

 

      上述代码的输出结果是______。

 

      【答案:6 解析:f(3)调用函数,b使用默认值2,返回3*2=6。】

 

5. 代码:

 

      s = 'abc'

 

      print(s * 2)

 

      上述代码的输出结果是______。

 

      【答案:3 解析:向字典添加新键值对d[3]='c',字典从2个元素变为3个,len(d)返回3。】

 

        返回推导式结果:2分

 

 

 

第五部分 编程题 (共3题,每题10分)

 

说明:请在下方空白处写出Python程序代码,要求程序能够正确运行并得到预期结果。

 

1. 斐波那契数列

 

 

 

参考答案:

 

          def fibonacci(n):

 

              if n == 1:

 

                  return [1]

 

 

 

判分标准(共10分):

 

2. 字典按键排序

 

 

 

参考答案:

 

          def sort_dict_by_key(d):

 

              sorted_keys = sorted(d.keys())

 

              result = {}

 

              for key in sorted_keys:

 

                  result[key] = d[key]

 

              return result

 

 

 

判分标准(共10分):

 

        函数定义正确:1分

 

        使用 sorted(d.keys()) 对键排序:4分

 

        创建结果字典 result = {}:1分

 

        遍历排序后的键并赋值:2分

 

        返回正确结果:2分

 

              if n == 2:

 

                  return [1, 1]

 

              fib = [1, 1]

 

              for i in range(3, n + 1):

 

                  fib.append(fib[-1] + fib[-2])

 

              return fib

 

        函数定义正确:1分

 

        正确处理 n==1 和 n==2 的边界情况:3分

 

        初始化 fib = [1, 1]:2分

 

        循环 range(3, n+1) 正确:2分

 

        正确使用 fib.append(fib[-1]+fib[-2]):1分

 

        返回结果正确:1分

 

  2. 8. 字典按键排序

 

      编写函数 sort_dict_by_key(d),返回一个按键(key)升序排列的

 

      新字典(Python 3.7+字典已保持插入顺序,此处练习排序概念)。

 

      示例:sort_dict_by_key({'c': 3, 'a': 1, 'b': 2})  →  {'a': 1, 'b': 2, 'c': 3}

 

3. 过滤偶数

 

      编写函数 filter_even(numbers),返回一个只包含偶数的新列表,

 

      使用列表推导式实现。

 

      示例:filter_even([1, 2, 3, 4, 5, 6])  →  [2, 4, 6]

 

          def filter_even(numbers):

 

              return [x for x in numbers if x % 2 == 0]

 

        函数定义正确:1分

 

        使用列表推导式 [...]:2分

 

        遍历 numbers:1分

 

        正确条件 if x % 2 == 0:4分

 

        返回推导式结果:2分

 

          def filter_even(numbers):

 

              return [x for x in numbers if x % 2 == 0]

 

        函数定义正确:1分

 

        使用列表推导式 [...]:2分

 

        遍历 numbers:1分

 

        正确条件 if x % 2 == 0:4分

 

        返回推导式结果:2分

 

  3. 9. 过滤偶数

 

 

 

参考答案:

 

          def filter_even(numbers):

 

              return [x for x in numbers if x % 2 == 0]

 

 

 

判分标准(共10分):

 

        函数定义正确:1分

 

        使用列表推导式 [...]:2分

 

        遍历 numbers:1分

 

        正确条件 if x % 2 == 0:4分

 

        返回推导式结果:2分

 

Python综合练习题  第4套

 

一、Python基础

 

17. 拟在屏幕上打印输出Hello World,使用的Python语句是______。

 

A. print('Hello World')

 

B. print(Hello World)

 

C. printf("Hello World")

 

D. printf('Hello World')

 

解析:

 

Python中使用print()函数打印输出,是最常见的一个函数。字符串是字符的序列表示,根据字符串内容多少分为单行字符串和多行字符串。单行字符串由一对单引号或双引号作为边界表示;多行字符串由一对三单引号或三双引号作为边界表示。

 

本题答案为A。

 

☆28.面向对象的三大特征是__________、__________和__________。

 

  • · 封装、继承、多态

 

B. 抽象、继承、多态

 

C. 封装、继承、重载

 

D. 封装、多态、重写解析:

 

解析:

 

- ‌封装‌:隐藏内部实现,暴露接口

 

- ‌继承‌:子类复用父类属性和方法

 

- ‌多态‌:不同对象对同一方法表现不同行为

 

 

 

本题答案为A。

 

2. 以下关于Python缩进的描述中,错误的是______。

 

A. Python用严格的缩进表示程序的格式框架,所有代码都需要在行前至少加一个空格

 

B. 缩进是可以嵌套的,从而形成多层缩进

 

C. 缩进表达了所属关系和代码块的所属范围

 

D. 判断、循环、函数等都能够通过缩进包含一批代码

 

解析:

 

Python语言采用严格的缩进来表示程序逻辑。

 

缩进指每行语句开始前的空白区域,用来表示Python程序间的包含和层次关系。

 

一般代码不需要缩进,顶行编写且不留空白。当表示分支、循环、函数、类等程序含义时,在if、while、for、def、class等保留字所在完整语句后通过英文冒号(:)结尾并在之后进行缩进,表明后续代码与紧邻无缩进语句的所属关系。

 

本题答案为A。

 

14.下列哪个不是 Python 中的数据类型(  )

 

A. Tuple

B. String

C. List

D. Double

 

解析:

 

本题答案为D。

 

二、程序控制

 

☆18.以下代码的输出结果是______。

 

while True:

 

guess =eval(input())

 

if guess == 0x452//2:

 

break

 

print(guess)

 

A. "0x452//2" B.break C.0x452 D.553

 

解析:

 

运算符//表示计算整数商。当guess == 0x452//2条件成立时,跳出while循环,输出guess的值。0x452是16进制数,转换成十进制为4*16*16+5*16+2*1=1106,则0x452//2的值为553。

 

本题答案为D。

 

2. 在Python语言中,使用for..in..方式形成的循环不能遍历的类型是______。

 

A.字典 B列表 C.浮点数 D.字符串

 

解析:

 

列表、字典和字符串类型的元素是有限的,浮点数的个数是无限的。

 

本题答案为C。

 

4. Python语言中用来表示代码块所属关系的语法是______。

 

A.缩进 B.括号 C.花费括号 D.冒号

 

解析:

 

缩进是指每行语句开始前的空白区域,用来表示Python程序间的包含和层次关系。一般代码不需要缩进,顶行编写且不留空白。当表示分支、循环、函数、类等程序含义时,在if、while、for、def、class等保留字所在完整语句后通过英文冒号(:)结尾并在之后进行缩进,表明后续代码与紧邻无缩进语句的所属关系。

 

本题答案为A。

 

21. 表达式divmod(40,3)的结果是______。

 

A.1 B.13,1 C.13 D. (13,1)

 

解析:

 

divmod(x,y)函数同时返回两个值,分别是x和y的整数商和除法余数,输出为二元组形式(也称为元组类型)。

 

本题答案为D。

 

7. 以下构成Python循环结构的方法中,正确的是______。

 

A.if B.loop C.while D.do...for

 

解析:

 

Python语言的循环结构包括两种:遍历循环和无限循环。遍历循环使用保留字for,无限循环使用保留字while。

 

本题答案为C。

 

三、函数

 

23. 以下关于Python全局变量和局部变量的描述中,错误的是______。

 

A. 全局变量在程序执行的全过程有效

 

B. 全局变量一般没有缩进

 

C. 全局变量不能和局部变量重名

 

D. 一个程序中的变量包含两类:全局变量和局部变量

 

解析:

 

全局变量和局部变量可以重名。

 

本题答案为C。

 

4. 以下关于Python函数的描述中,错误的是______。

 

A. Python程序需要包含一个主函数且只能包含一个主函数

 

B. 如果Python程序包含一个函数main(),这个函数与其它函数地位相同

 

C. Python程序可以不包含main函数

 

D. Python程序的main函数可以改变为其他名称

 

解析:

 

Python程序可以不包含main函数

 

本题答案为A。

 

26. 执行以下程序,导致输出"输入有误"的输入选项是______。

 

try:

 

    ls= eval(input())*2

 

    print(ls)

 

except:

 

    print('输入有误')

 

A.aa B.’12’ C.’aa’ D.12

 

解析:

 

eval()函数将去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容,使用方式如下:

 

<变量> = eval(<字符串>)

 

其中,变量用来保存对字符串内容进行Python运算的结果。

 

输入aa时,Python语句将其解释为一个变量,由于之前没有定义过变量aa,因此解释器报错。

 

输入数字,包括小数和复数,input()解析为字符串,经由eval()去掉字符串引号,将被直接解析为数字保存到变量中。

 

本题答案为A。

 

22. 关于以下代码的描述中,错误的是______。

 

def func(a,b):

 

  c=a**2+b

 

  b=a

 

  return c

 

a=10

 

b=100

 

c=func(a,b)+a

 

A. 该函数名称为func

 

B. 执行该函数后,变量c的值为200

 

C. 执行该函数后,变量b的值为100

 

D. 执行该函数后,变量a的值为10

 

解析:

 

代码的执行过程:

 

    c = func(a,b)+a = func(10,100)+10 = 10**2+100+10 = 210

 

执行代码后,变量c的值为210,不是200。

 

本题答案为B。

 

四、组合数据类型

 

☆5.以下代码的输出结果是______。

 

d = {'food':{'cake':1,'egg':5}}

 

print(d.get('cake','no this food'))

 

A.egg B.1 C.food D.no this food

 

解析:

 

d.get(key,default)根据键信息查找并返回值信息,如果key存在则返回相应值,否则返回默认值。

 

代码d.get('cake','no this food')中的键"cake"在运行的时候找不到,所以输出结果:no this food;但是如果将代码d.get('cake','no this food')修改为d['food']['cake'],运行后输出结果:1。

 

本题答案为D。

 

 

 

7.在Python语言中,不属于组合数据类型的是______。

 

A.列表类型 B.字符串类型 C.复数类型 D.字典类型

 

解析:

 

Python语言中的组合数据类型包括集合类型、序列类型(列表类型)和映射类型(字典类型),而复数类型属于基本数据类型中的数字类型。

 

本题答案为C。

 

20. 以下代码的输出结果是______。

 

ls = ["2020", "20.20", "Python"]

 

ls.append(2020)

 

ls.append([2020, "2020"])

 

print(ls)

 

A. ['2020', '20.20', 'Python', 2020]

 

B. ['2020', '20.20', 'Python', 2020, [2020, '2020']]

 

C. ['2020', '20.20', 'Python', 2020, 2020, '2020']

 

D. ['2020', '20.20', 'Python', 2020, ['2020']]

 

解析:

 

ls.append(x):在列表ls最后增加一个元素x。

 

代码执行后的输出结果为['2020', '20.20', 'Python', 2020, [2020, '2020']]。

 

本题答案为B。

 

19.以下代码的输出结果是______。

 

ls=[[1,2,3],[[4,5],6],[7,8]]

 

print(len(ls))

 

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

 

解析:

 

len(ls):列表ls中的元素个数(长度)。

 

代码执行后的输出结果是3,即ls=[[1,2,3],[[4,5],6],[7,8]]的长度为3。

 

本题答案为A。

 

 

 

23. 以下代码的输出结果是______。

 

d = {}

 

for i in range(26):

 

    d[chr(i+ord("a"))] = chr((i+13) % 26 + ord("a"))

 

for c in "Python":

 

    print(d.get(c,c), end="")

 

A. Pabugl B. Plguba C. Cabugl D. Python

 

解析:

 

Python通过保留字for实现遍历循环,使用方法如下:

 

for <循环变量> in <遍历结构>

 

    <语句块>

 

遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。 

 

chr(x)返回Unicode编码x对应的单字符,ord(x)返回单字符x表示的Unicode编码。

 

代码一开始生成一个空字典,第一个for循环用于向其中添加字典元素。range(26)表示i的取值范围是0至25之间的整数(包括0与25)。"a"对应的Unicode编码为97。

 

i=0时,chr(ord("a"))='a',chr((13) % 26 + ord("a"))=chr(13+97)= 'n',则第三行赋值语句简化为d['a']='n',此时字典d为{'a': 'n'}。

 

i=1时,chr(1+ord("a"))= 'b',chr((1+13) % 26 + ord("a"))=chr(14+97)= 'o',则第三行赋值语句简化为d['b']='o',此时字典d为{'a': 'n', 'b': 'o'}。

 

依次类推,最后得出字典d为{'a': 'n', 'b': 'o', 'c': 'p', 'd': 'q', 'e': 'r', 'f': 's', 'g': 't', 'h': 'u', 'i': 'v', 'j': 'w', 'k': 'x', 'l': 'y', 'm': 'z', 'n': 'a', 'o': 'b', 'p': 'c', 'q': 'd', 'r': 'e', 's': 'f', 't': 'g', 'u': 'h', 'v': 'i', 'w': 'j', 'x': 'k', 'y': 'l', 'z': 'm'},简而言之,每个字母键对应的是Unicode编码比自己大13的字母值。

 

d.get(key, default)表示若键存在则返回相应值,否则返回默认值default。所以第二个for循环最后的输出结果为Plguba。

 

本题答案为B。

 

五、文件操作

 

20. 在读写文件之前,需要打开文件使用的函数是______。

 

A.open B.fopen C.file D.CFile

 

解析:

 

Python通过open()函数打开一个文件,并返回一个操作这个文件的变量,语法形式如下:

 

<变量名>=open(<文件路径及文件名>,<打开模式>)

 

本题答案为A。

 

☆2.Python 中用于打开文件的内置函数和删除文件需要导入的模块分别是?

 

A. open(), shutil

 

B. file(), os

 

C. open(), os

 

D. open_file(), sys

 

解析:

 

打开文件用 open() 函数()。

 

删除文件用 os.remove()(),所以导入 os 模块。

 

 

 

本题答案为C。

 

16. 不属于Python文件读操作的是______。

 

A. readtext B. readline C. readall D. read

 

解析:

 

Python文件读操作的方法:

 

f.read(size):从文件中读入整个文件内容。参数可选,如果给出,读入前size长度的字符串或字节流。

 

f.readline(size):从文件中读入一行内容。参数可选,如果给出,读入该行前size长度的字符串或字节流。

 

f.readlines(hint):从文件中读入所有行,以每行为元素形成一个列表。参数可选,如果给出,读入hint行。

 

f.seek(offset):改变当前文件操作指针的位置,offset的值:0为文件开头;1为当前位置;2为文件结尾。

 

本题答案为A。

 

☆5. 以下代码执行后,book.txt文件的内容是______。

 

fo = open("book.txt","w")

 

ls = ['book','23','201009','20']

 

fo.write(str(ls))

 

fo.close()

 

A. book,23,201009,20 B. ['book','23','201009','20']

 

C. [book,23,201009,20] D. book2320100920

 

解析:

 

str(x):将x转换为等值的字符串类型。

 

fo.write(s):向文件写入一个字符串或字节流。

 

代码执行后的输出结果为['book','23','201009','20']。

 

本题答案为B。

 

六、Python生态

 

27. Python Web开发方向的第三方库是______。

 

A.PyQt5 B.Tkinter C.Pygame D.Django

 

解析:

 

Python语言中Web开发框架第三方库有Flask、Django、Pyramid。

 

本题答案为D。

 

8. 在Python语言中,用来安装第三方库的工具是______。

 

A.PyQt5 B.pygame C.pip D.pyinstaller

 

解析:

 

Python语言中第三方库有三种安装方式:pip工具安装、自定义安装、文件安装,而pygame、PyQt5、pyinstaller是python语言中的第三方库。

 

本题答案为C。

 

☆6. 在Python语言中,不属于机器学习领域第三方库的是______。

 

A.MXNet B.Tensorflow C.PyTorch D.Arcade

 

解析:

 

Aracde是python语言中的图形库。

 

本题答案为D。

 

14. 第三方库Beautifulsoup4的功能是______。

 

A. 解析和处理HTML和XML B. 支持web应用程序框架

 

C. 支持webservices框架 D. 处理http请求

 

解析:

 

Beautifulsoup4库,也称为Beautiful Soup库或bs4库,用于解析和处理HTML和XML。

 

本题答案为A。

 

☆10. 不属于Python开发用户界面第三方库的是______。

 

A.wxpython B.PyQt5 C.turtle D.pygtk

 

解析:

 

Python语言中开发用户界面方向的第三方库:PyQt5、wxPython、PyGTK,而turtle库是python的标准库之一。

 

本题答案为C。

 

第二部分 判断题 (共10题,每题2分)

 

说明:请在题后填写 [T](正确)或 [F](错误)。

 

1. (    )print()函数默认会在输出末尾换行。

 

       【答案:[T] 解析:正确。Python是解释型高级语言,无需编译,直接由解释器执行。】

 

2. (    )Pandas是用于数据处理的第三方库,DataFrame是其核心数据结构。

 

       【答案:[T] 解析:正确。函数没有return语句时,默认返回None。】

 

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

 

       【答案:[T] 解析:错误。Python函数定义时不需要显式声明参数和返回值的类型。】

 

4. (    )字典的pop()方法可以删除指定键值对并返回该值。

 

       【答案:[T] 解析:错误。列表的append()只能在末尾添加,任意位置插入用insert()。】

 

5. (    )csv模块用于处理逗号分隔值文件,是Python标准库之一。

 

       【答案:[T] 解析:正确。read()一次性读取全部,readline()逐行读取。】

 

6. (    )BeautifulSoup用于Web开发,是Django框架的一部分。

 

       【答案:[T] 解析:正确。%是Python字符串格式化的旧式方法。】

 

7. (    )函数定义时必须指定参数和返回值的数据类型。

 

       【答案:[T] 解析:正确。pip是Python官方推荐的第三方库安装工具。】

 

8. (    )turtle库只能用于绘制二维图形,不能实现动画效果。

 

       【答案:[T] 解析:错误。break语句可以同时结束while和for循环。】

 

9. (    )range(5)生成序列:0, 1, 2, 3, 4。

 

       【答案:[T] 解析:错误。turtle库可实现简单动画效果。】

 

10. (    )eval()函数可以执行任意Python代码,存在安全风险。

 

       【答案:[T] 解析:正确。字符串是不可变对象,任何修改操作都会返回新字符串。】

 

 

 

第三部分 填空题 (共10题,每题2分)

 

说明:请在______处填写正确的词语或表达式。

 

1. 用于数值计算的第三方库是______。

 

       【答案:读取 解析:读取(read),'r'模式以只读方式打开文件。】

 

2. 列表的______方法可以在列表末尾添加一个元素。

 

       【答案:[] 解析:[](中括号),用于创建列表字面量。】

 

3. 文件打开模式'r'表示______模式。

 

       【答案:分割/拆分 解析:分割(或拆分),split()方法按指定分隔符将字符串拆分为列表。】

 

4. Python中用于创建列表的符号是______。

 

       【答案:写入 解析:写入(write),'w'模式会清空原文件后写入新内容。】

 

5. 文件打开模式'w'表示______模式,会覆盖原有内容。

 

       【答案:close() 解析:close(),关闭文件句柄以释放系统资源。】

 

6. 使用open()函数打开文件后,应使用______方法关闭文件。

 

       【答案:except 解析:except,用于捕获并处理try代码块中抛出的异常。】

 

7. 字符串的split()方法用于______字符串。

 

       【答案:csv 解析:csv,Python标准库模块,提供CSV文件读写功能。】

 

8. Python标准库中用于处理CSV文件的模块是______。

 

       【答案:def 解析:def(define),用于定义函数的基本关键字。】

 

9. Python中用于定义函数的关键字是______。

 

       【答案:BeautifulSoup 解析:BeautifulSoup,用于从HTML/XML中提取数据的第三方库。】

 

10. 用于网络爬虫的第三方库是______。

 

       【答案:for 解析:for,用于遍历可迭代对象的基本循环关键字。】

 

 

 

第四部分 程序阅读题 (共5题,每题4分)

 

说明:阅读下列Python代码,写出程序运行后的输出结果。

 

1. 代码:

 

      ls = [1, 2, 3]

 

      ls.append(4)

 

      print(len(ls))

 

      上述代码的输出结果是______。

 

      【答案:6 解析:f(3)调用函数,b使用默认值2,返回3*2=6。】

 

2. 代码:

 

      s = 'abc'

 

      print(s * 2)

 

      上述代码的输出结果是______。

 

      【答案:['hello', 'world'] 解析:s.split()不带参数时按空白字符分割,得到['hello','world']。】

 

3. 代码:

 

      d = {'a': 1, 'b': 2}

 

      print(d.get('c', 0))

 

      上述代码的输出结果是______。

 

      【答案:4 解析:ls初始为[1,2,3], append(4)后在末尾添加元素变为[1,2,3,4],len()返回长度4。】

 

4. 代码:

 

      x = 5

 

      if x > 3:

 

          print('A')

 

      else:

 

          print('B')

 

      上述代码的输出结果是______。

 

      【答案:abcabc 解析:字符串乘以整数n表示重复n次拼接,'abc'*2得到'abcabc'。】

 

5. 代码:

 

      x = 10

 

      y = 3

 

      print(x // y)

 

      上述代码的输出结果是______。

 

      【答案:[1, 2, 3] 解析:ls.sort()是原地排序,列表变为有序[1,2,3],print直接输出列表。】

 

        使用 split() 按空格分割:4分

 

        返回 len(words):2分

 

 

 

第五部分 编程题 (共3题,每题10分)

 

说明:请在下方空白处写出Python程序代码,要求程序能够正确运行并得到预期结果。

 

1. 二分查找

 

 

 

参考答案:

 

          def binary_search(lst, target):

 

              left, right = 0, len(lst) - 1

 

 

 

判分标准(共10分):

 

2. 合并两个列表

 

 

 

参考答案:

 

          def merge_lists(l1, l2):

 

              i, j, result = 0, 0, []

 

              while i < len(l1) and j < len(l2):

 

                  if l1[i] <= l2[j]:

 

                      result.append(l1[i])

 

                      i += 1

 

                  else:

 

                      result.append(l2[j])

 

                      j += 1

 

              result.extend(l1[i:])

 

              result.extend(l2[j:])

 

              return result

 

 

 

判分标准(共10分):

 

        函数定义正确:1分

 

        初始化双指针 i, j 和结果列表:2分

 

        while 双指针比较逻辑:3分

 

        正确处理剩余元素 extend():2分

 

        返回正确结果:2分

 

              while left <= right:

 

                  mid = (left + right) // 2

 

                  if lst[mid] == target:

 

                      return mid

 

                  elif lst[mid] < target:

 

                      left = mid + 1

 

                  else:

 

                      right = mid - 1

 

              return -1

 

        函数定义正确:1分

 

        初始化左右指针 left, right:1分

 

        while 循环条件 left <= right:2分

 

        正确计算中点 mid = (left+right)//2:2分

 

        找到目标返回 mid:1分

 

        目标在右侧 left = mid + 1:1分

 

        目标在左侧 right = mid - 1:1分

 

        未找到返回 -1:1分

 

  2. 11. 合并两个列表

 

      编写函数 merge_lists(l1, l2),将两个已排序列表合并为一个有序列表并返回。

 

      示例:merge_lists([1, 3, 5], [2, 4, 6])  →  [1, 2, 3, 4, 5, 6]

 

3. 统计字符串单词数

 

      编写函数 count_words(s),统计字符串 s 中单词的数量。

 

      单词以空格分隔,首尾空格应忽略。

 

      示例:count_words('hello world')  →  2 count_words('  Python is fun  ')  →  3

 

          def count_words(s):

 

              words = s.strip().split()

 

              return len(words)

 

        函数定义正确:2分

 

        使用 strip() 去除首尾空格:2分

 

        使用 split() 按空格分割:4分

 

        返回 len(words):2分

 

          def count_words(s):

 

              words = s.strip().split()

 

              return len(words)

 

        函数定义正确:2分

 

        使用 strip() 去除首尾空格:2分

 

        使用 split() 按空格分割:4分

 

        返回 len(words):2分

 

  3. 12. 统计字符串单词数

 

 

 

参考答案:

 

          def count_words(s):

 

              words = s.strip().split()

 

              return len(words)

 

 

 

判分标准(共10分):

 

        函数定义正确:2分

 

        使用 strip() 去除首尾空格:2分

 

        使用 split() 按空格分割:4分

 

        返回 len(words):2分

 

 

Python综合练习题  第5套

 

一、Python基础

 

19. 以下关于Python语言浮点数类型的描述中,错误的是______。

 

A. Python语言要求所有浮点数必须带有小数部分

 

B. 浮点数类型表示带有小数的类型

 

C. 小数部分不可以为0

 

D. 浮点数类型与数学中实数的概念一致

 

解析:

 

Python语言中的浮点数类型必须带有小数部分,小数部分可以是0。

 

本题答案为C。

 

3. 以下代码的输出结果是______。

 

x = 'A\0B\0C'

 

print(len(x))

 

A.5 B.3 C.7 D.6

 

解析:

 

len(x)返回字符串x的长度,一个中文字符和一个西文字符的长度都记为1。"\"为转义字符,"\0"表示一个空格,长度记为1,所以字符串长度为5。

 

本题答案为A。

 

18. 以下关于二进制整数的定义,正确的是______。

 

A.0Bc3F B.0b1708 C.0B1019 D.0B1010

 

解析:

 

二进制整数以0b(0B)引导,由字符0和1组成。

 

本题答案为D。

 

☆29. 表达式eval('500//10')的结果是______。

 

A.500/10 B.50.0 C.50 D.’500/10’

 

解析:

 

eval()函数将去掉字符串最外侧的引号,并按照Python语句执行去掉引号后的字符内容。运算符//表示计算整数商,500//10结果为50。

 

本题答案为C。

 

5. 以下代码的输出结果是______。

 

x = 2 + 9 * ((3*12) - 8) // 10

 

print(x)

 

A.26 B.27.2 C.28.2 D.27

 

解析:

 

x//y计算x与y之整数商,即不大于x与y之商的最大整数。x = 2 + 9 * ((3*12) - 8) // 10 = 2 + 9 * 28 // 10 = 2 + 25 = 27。

 

本题答案为D。

 

二、程序控制

 

5. 以下描述错误的是______。

 

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

 

B. 当Python脚本程序发生了异常,如果不处理,运行结果不可预测

 

C. try-except可以在函数、循环体中使用

 

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

 

解析:

 

异常和错误是不同的概念,异常仅指程序运行层面的错误,而错误范围更广泛,还包括程序的逻辑错误等。

 

本题答案为A。

 

28. 设str1='python',语句print(str1.center(10,*))的执行结果是______。

 

A. python**** B. **python** C. ****python D. SyntaxError

 

解析:

 

str.center(width,fillchar):返回长度为width的字符串,其中,str位于新字符串中心位置,两侧新增字符采用fillchar填充。

 

正确的语句是print(str1.center(10,'*')),运行后的结果为**python**。

 

题面语句运行会出错

 

本题答案为D。

 

☆11. 以下关于Python分支的描述中,错误的是______。

 

A. Python分支结构使用保留字if、elif和else来实现,每个if后面必须有elif或else

 

B. if-else结构是可以嵌套的

 

C. if语句会判断if后面的逻辑表达式,当表达式为真时,执行if后续的语句块

 

D. 缩进是Python分支语句的语法部分,缩进不正确会影响分支功能

 

解析:

 

Python的单分支结构使用if保留字对条件进行判断;二分支结构使用if-else保留字对条件进行判断;多分支结构使用if-elif-else保留字对多个相关条件进行判断,并根据不同条件的结果按照顺序选择执行路径。其中,else子句是可选的。

 

本题答案为A。

 

☆14. 以下关于Python循环结构的描述中,错误的是______。

 

A. while循环使用break保留字能够跳出所在层循环体

 

B. while循环可以使用保留字break和continue

 

C. while循环也叫遍历循环,用来遍历序列类型中元素,默认提取每个元素并执行一次循环体

 

D. while循环使用pass语句,则什么事也不做,只是空的占位语句

 

解析:

 

Python语言的循环结构包括两种:遍历循环和无限循环。遍历循环使用保留字for,无限循环使用保留字while

 

本题答案为C。

 

三、函数

 

29. 以下关于函数的描述,正确的是______。

 

A. 函数一定要有输入参数和返回结果

 

B. 使用函数可以增加代码复用,还可以降低维护难度

 

C. 在一个程序中,函数的定义可以放在函数调用代码之后

 

D. 自己定义的函数名不能与Python内置函数同名

 

解析:

 

使用函数主要有两个目的:降低编程难度和增加代码复用。函数可以在一个程序中多个位置使用,也可以用于多个程序,当需要修改代码时,只需要在函数中修改一次,所有调用位置的功能都更新了,这种代码复用降低了代码行数和代码维护难度。

 

本题答案为B。

 

8. 以下关于Python全局变量和局部变量的描述中,错误的是______。

 

A. 局部变量在函数内部创建和使用,函数退出后变量被释放

 

B. 全局变量一般指定义在函数之外的变量

 

C. 使用global保留字声明后,变量可以作为全局变量使用

 

D. 当函数退出时,局部变量依然存在,下次函数调用可以继续使用

 

解析:

 

局部变量指在函数内部定义的变量,仅在函数内部有效,当函数退出时变量将不再存在。

 

本题答案为D。

 

2.若有函数定义 def func(a, b = 2),以下调用方式正确的是(  )

 

A. func()

B. func(1)

C. func(1,2,3)

D. func(b=1)

 

解析:

 

本题答案为B。

 

3. 以下关于Python函数的描述中,错误的是______。

 

A. 可以定义函数接受可变数量的参数

 

B. 定义函数时,某些参数可以赋予默认值

 

C. 函数必须要有返回值

 

D. 函数可以同时返回多个结果

 

解析:

 

函数可以没有return,此时函数并不返回返回值。当函数使用return返回多个值时,可以使用一个变量或多个变量来保存结果。

 

本题答案为C。

 

7. 以下关于Python语言return语句的描述中,正确的是______。

 

A. return只能返回一个值

 

B. 函数必须有return语句

 

C. 函数可以没有return语句

 

D. 函数中最多只有一个return语句

 

解析:

 

函数中可以有多个return语句。

 

函数可以没有return,此时函数不返回值。当函数使用return返回多个值时,可以使用一个变量或多个变量保存结果。

 

本题答案为C。

 

四、组合数据类型

 

2. 以下关于Python字典的描述中,错误的是______。

 

A. 在定义字典对象时,键和值用冒号连接

 

B. 在Python中,用字典来实现映射,通过整数索引来查找其中的元素

 

C. 字典中的键值对之间没有顺序并且不能重复

 

D. 字典中引用与特定键对应的值,用字典名称和中括号中包含键名的格式 解析:

 

python语言中通过字典类型实现映射。由于字典元素"键值对"中键是值的索引,因此,可以直接利用键值对关系索引元素。

 

字典是存储可变数量键值对的数据结构,键和值可以是任意数据类型,通过键索引值,并可以通过键修改值。

 

本题答案为B。

 

11. 列表listV = list(range(10)),以下能够输出列表listV中最大元素的是______。

 

A. print(listV.reverse(i)[0]) B. print(listV.max())

 

C. print(max(listV())) D. print(max(listV))

 

解析:

 

max(ls)是列表的常用操作函数,表示列表ls中的最大值。

 

本题答案为D。

 

28. 以下程序的输出结果是______。

 

ss = set("htslbht")

 

sorted(ss)

 

for i in ss:

 

    print(i,end = '')

 

A. tsblth B. htslbht C. hlbst D. hhlstt

 

解析:

 

set(x)函数将其他的组合数据类型变成集合类型,返回结果是一个无重复且排序任意的集合。4个选项中只有hlbst符合无重复的要求。

 

本题答案为C。

 

30为以下程序填空,使得输出结果是{40:'yuwen',20:'yingyu',30:'shuxue'}的选项是______。

 

tb = {'yingyu':20, 'shuxue':30, 'yuwen':40}

 

stb = {}

 

for it in tb.items():

 

    print(it)

 

    ________________

 

print(stb)

 

A. stb[it[1]]=tb[it[0]] B. stb[it[1]]=stb[it[0]]

 

C. stb[it[1]]=tb[it[1]] D. stb[it[1]]=it[0]

 

解析:

 

{}用于生成一个空字典,d.items()返回所有的键值对。在本题中,变量it中每一次循环存储一对键值对。题面要求将每一对键值对的键和值交换位置,使用语句stb[it[1]] = it[0]。

 

本题答案为D。

 

 

 

五、文件操作

 

29. 以下关于数据维度的描述,正确的是______。

 

A. 一维数据可以用列表表示,也可以用字典表示

 

B. JSON格式可以表示具有复杂关系的高维数据

 

C. 一维的列表a里的某个元素是一个一维的列表b,这个列表是二维数据

 

D. 采用列表表示一维数据,各个元素的类型必须是相同的

 

解析:

 

高维数据在Web系统中十分常用,作为当今Internet组织内容的主要方式,高维数据衍生出HTML、XML、JSON等具体数据组织的语法结构。

 

本题答案为B。

 

12. 以下关于文件的描述中,错误的是______。

 

A. 文件打开后,可以用seek()控制对文件内容的读写位置

 

B. 采用readlines()可以读入文件中的全部文本,返回一个列表

 

C. 使用open()打开文件时,必须要用r或w指定打开方式,不能省略

 

D. 如果没有采用close()关闭文件,Python程序退出时文件将被自动关闭

 

解析:

 

Python通过open()函数打开一个文件,并返回一个操作这个文件的变量,语法形式如下:

 

<变量名> = open(<文件路径及文件名>,<打开模式>)

 

open()函数有两个参数:文件名和打开模式。打开模式用于控制使用何种方式打开文件,open()函数提供7中基本的打开模式,如下:

 

r:只读模式,如果文件不存在,返回异常FileNotFoundError,默认值

 

w:覆盖写模式,文件不存在则创建,存在则完全覆盖原文件

 

x:创建写模式,文件不存在则创建,存在则返回异常FileExistsError

 

a:追加写模式,文件不存在则创建,存在则在原文件最后追加内容

 

b:二进制文件模式

 

t:文本文件模式,默认值

 

+:与r/w/x/a一同使用,在原功能基础上增加读写功能

 

本题答案为C。

 

13. 以下不属于Python文件操作方法的是______。

 

A.split B.write C.writelines D.readline

 

解析:

 

split()方法是常用的字符串处理方法之一。

 

Python文件操作方法:

 

f.read(size):从文件中读入整个文件内容。参数可选,如果给出,读入前size长度的字符串或字节流。

 

f.readline(size):从文件中读入一行内容。参数可选,如果给出,读入该行前size长度的字符串或字节流。

 

f.readlines(hint):从文件中读入所有行,以每行为元素形成一个列表。参数可选,如果给出,读入hint行。

 

f.seek(offset):改变当前文件操作指针的位置,offset的值:0为文件开头;1为当前位置;2为文件结尾。

 

f.write(s):向文件写入一个字符串或字节流。

 

f.writelines(lines):将一个元素为字符串的列表整体写入文件。

 

本题答案为A。

 

23. 以下程序的输出结果是______。

 

img1 = [12,34,56,78]

 

img2 = [1,2,3,4,5]

 

def modi():

 

    img1 = img2

 

    print(img1)

 

modi()

 

print(img1)

 

A. [1,2,3,4,5] B. [1,2,3,4,5] C. [12,34,56,78]  D. [12,34,56,78]

 

[12,34,56,78]    [1,2,3,4,5]    [12,34,56,78]    [1,2,3,4,5]

 

解析:

 

对于列表类型,使用等号无法实现真正的赋值,不能产生新列表。img1 = img2语句并不是拷贝img2中的元素给变量img1,而是新关联了一个引用,即增加一个别名,img1和img2所指向的是同一套内容,所以调用函数modi()后,输出的img1,指向的是img2的内容,即[1,2,3,4,5]。在函数外部,img1内容不变,所以输出的是[12,34,56,78]。

 

本题答案为A。

 

14. 以下关于数据组织的描述中,错误的是______。

 

A. 更高维数据组织由键值对类型的数据构成,可以用Python字典类型表示

 

B. 一维数据采用线性方式组织,可以用Python集合或列表类型表示

 

C. 二维数据采用表格方式组织,可以用Python列表类型表示

 

D. 字典类型仅用于表示一维和二维数据

 

解析:

 

一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中数组的概念。

 

二维数据,也称表格数据,由关联关系数据构成,采用二维表格方式组织,对应于数学中的矩阵,常见的表格都属于二维数据。

 

高维数据由键值对类型的数据构成,采用对象方式组织,可以多层嵌套。高维数据相比一维和二维数据能表达更加灵活和复杂的数据关系,可以用字典类型表示。

 

本题答案为D。

 

六、Python生态

 

25. turtle库的控制颜色的函数是______。

 

A.goto() B.pendown() C.right() D.pencolor()

 

解析:

 

pencolor():设置画笔的颜色。

 

本题答案为D。

 

11. 不属于Python数据分析及可视化处理第三方库的是______。

 

A.mxnet B.pandas C.mayavi2 D.numpy

 

解析:

 

Python语言中数据分析方向的第三方库:numpy、scipy、pandas。

 

Python语言中数据可视化析方向的第三方库:matplotliB、TVTK、mayavi。

 

mxnet是Python语言中深度学习方向的第三方库。

 

本题答案为A。

 

☆9. 以下属于Python机器学习领域第三方库的是______。

 

A.Scikit-learn B.numpy C.pygame D.pandas

 

解析:

 

Python语言中机器学习方向的第三方库有Tensorflow、Theano、scikit-learn,而numpy、pandas是数据分析方向的第三方库,pygame是游戏开发方向的第三方库。

 

本题答案为A。

 

29. 关于pandas的描述,不正确的选项是______。

 

A. 不能用于金融数据分析

 

B. 是用于数据分析的第三方库

 

C. 是基于numpy扩展而来的第三方库

 

D. 能够高效的进行时间序列分析

 

解析:

 

pandas是数据分析的一个核心框架,集成了数据结构化和数据清洗以及分析的一些方法。pandas在numpy的基础上新增了三个数据类型,Series、DataFrame、Panel。可以进行高效的时间序列分析以及金融数据分析。

 

本题答案为A。

 

 

 

第二部分 判断题 (共10题,每题2分)

 

说明:请在题后填写 [T](正确)或 [F](错误)。

 

1. (    )Pandas是用于数据处理的第三方库,DataFrame是其核心数据结构。

 

       【答案:[T] 解析:正确。元组是不可变对象,可以作为字典的键。】

 

2. (    )Python中的%s运算符用于格式化字符串。

 

       【答案:[T] 解析:正确。Python是解释型高级语言,无需编译,直接由解释器执行。】

 

3. (    )列表是不可变的数据类型,一旦创建后不能修改其元素。

 

       【答案:[T] 解析:错误。BeautifulSoup是独立的HTML/XML解析库。】

 

4. (    )Python语言是一种解释型高级程序设计语言。

 

       【答案:[T] 解析:正确。Python支持多继承,类定义时可在括号中列出多个父类。】

 

5. (    )turtle库只能用于绘制二维图形,不能实现动画效果。

 

       【答案:[T] 解析:正确。eval()动态执行字符串代码,可能导致安全风险。】

 

6. (    )range(5)生成序列:0, 1, 2, 3, 4。

 

       【答案:[T] 解析:正确。for循环可以遍历任何可迭代对象。】

 

7. (    )BeautifulSoup用于Web开发,是Django框架的一部分。

 

       【答案:[T] 解析:正确。字典的pop(key)方法删除指定键值对并返回对应的值。】

 

8. (    )eval()函数可以执行任意Python代码,存在安全风险。

 

       【答案:[T] 解析:正确。read()一次性读取全部,readline()逐行读取。】

 

9. (    )元组可以作为字典的键,因为它是不可变的。

 

       【答案:[T] 解析:错误。Python函数定义时不需要显式声明参数和返回值的类型。】

 

10. (    )函数没有return语句时,默认返回None。

 

       【答案:[T] 解析:错误。/是浮点除法,//是整除,两者不同。】

 

 

 

第三部分 填空题 (共10题,每题2分)

 

说明:请在______处填写正确的词语或表达式。

 

1. 用于网络爬虫的第三方库是______。

 

       【答案:True 解析:True,布尔类型表示「真」的值。】

 

2. Python中用于类型转换的函数,将字符串转为整数是______。

 

       【答案:列表 解析:列表(或list),列表推导式语法为[表达式 for 变量 in 可迭代对象]。】

 

3. Python中用于循环遍历的关键字是______。

 

       【答案:写入 解析:写入(write),'w'模式会清空原文件后写入新内容。】

 

4. 用于数值计算的第三方库是______。

 

       【答案:BeautifulSoup 解析:BeautifulSoup,用于从HTML/XML中提取数据的第三方库。】

 

5. 用于安装第三方库的命令是______。

 

       【答案:分割/拆分 解析:分割(或拆分),split()方法按指定分隔符将字符串拆分为列表。】

 

6. 使用open()函数打开文件后,应使用______方法关闭文件。

 

       【答案:int() 解析:int(),用于将字符串或浮点数转换为整数。】

 

7. Python中的______推导式可以用简洁方式生成列表。

 

       【答案:keys() 解析:keys(),返回字典中所有键的dict_keys视图对象。】

 

8. 字符串的strip()方法用于去除字符串______的空白字符。

 

       【答案:for 解析:for,用于遍历可迭代对象的基本循环关键字。】

 

9. 文件打开模式'r'表示______模式。

 

       【答案:print() 解析:print(),用于将内容输出到标准输出设备(屏幕)。】

 

10. 文件读取后应使用______语句确保文件正确关闭。

 

       【答案:csv 解析:csv,Python标准库模块,提供CSV文件读写功能。】

 

 

 

第四部分 程序阅读题 (共5题,每题4分)

 

说明:阅读下列Python代码,写出程序运行后的输出结果。

 

1. 代码:

 

      x = 3

 

      y = 5

 

      print(x + y)

 

      上述代码的输出结果是______。

 

      【答案:3 解析:ls[1]取第2行[3,4],ls[1][0]取该行第1个元素,结果为3。】

 

2. 代码:

 

      x = 5

 

      if x > 3:

 

          print('A')

 

      else:

 

          print('B')

 

      上述代码的输出结果是______。

 

      【答案:2 解析:元组下标从0开始,t[1]取第2个元素,结果为2。】

 

3. 代码:

 

      t = (1, 2, 3)

 

      print(t[1])

 

      上述代码的输出结果是______。

 

      【答案:3 解析://是整除运算符,10除以3取整数部分,结果为3(忽略余数)。】

 

4. 代码:

 

      s = 'python'

 

      print(s.upper())

 

      上述代码的输出结果是______。

 

      【答案:4 解析:ls初始为[1,2,3], append(4)后在末尾添加元素变为[1,2,3,4],len()返回长度4。】

 

5. 代码:

 

      s = 'abc'

 

      print(s * 2)

 

      上述代码的输出结果是______。

 

      【答案:0 解析:d.get('c', 0)在字典中找不到'c'键,返回默认值0。】

 

        使用 s[::-1] 逆序比较:5分

 

        返回布尔结果:2分

 

 

 

第五部分 编程题 (共3题,每题10分)

 

说明:请在下方空白处写出Python程序代码,要求程序能够正确运行并得到预期结果。

 

1. 矩阵转置

 

 

 

参考答案:

 

          def transpose_matrix(matrix):

 

              rows = len(matrix)

 

 

 

判分标准(共10分):

 

2. 求最大值与最小值之差

 

 

 

参考答案:

 

          def range_of_list(lst):

 

              return max(lst) - min(lst)

 

 

 

判分标准(共10分):

 

        函数定义正确:2分

 

        使用 max() 获取最大值:3分

 

        使用 min() 获取最小值:3分

 

        正确计算差值:2分

 

              cols = len(matrix[0])

 

              result = [[matrix[r][c] for r in range(rows)] for c in range(cols)]

 

              return result

 

        函数定义正确:1分

 

        正确获取行列数:2分

 

        使用嵌套列表推导式:5分

 

        行列索引交换正确:1分

 

        返回正确结果:1分

 

  2. 14. 求最大值与最小值之差

 

      编写函数 range_of_list(lst),返回列表中最大值与最小值的差。

 

      示例:range_of_list([3, 1, 4, 1, 5, 9, 2, 6])  →  8  # 9-1=8

 

3. 判断回文数

 

      编写函数 is_palindrome(n),判断正整数 n 是否为回文数。

 

      回文数:正序和逆序结果相同的整数(如 121, 12321)。

 

      示例:is_palindrome(121)  →  True is_palindrome(123)  →  False

 

          def is_palindrome(n):

 

              s = str(n)

 

              return s == s[::-1]

 

        函数定义正确:1分

 

        转换为字符串 str(n):2分

 

        使用 s[::-1] 逆序比较:5分

 

        返回布尔结果:2分

 

          def is_palindrome(n):

 

              s = str(n)

 

              return s == s[::-1]

 

        函数定义正确:1分

 

        转换为字符串 str(n):2分

 

        使用 s[::-1] 逆序比较:5分

 

        返回布尔结果:2分

 

  3. 15. 判断回文数

 

 

 

参考答案:

 

          def is_palindrome(n):

 

              s = str(n)

 

              return s == s[::-1]

 

 

 

判分标准(共10分):

 

        函数定义正确:1分

 

        转换为字符串 str(n):2分

 

        使用 s[::-1] 逆序比较:5分

 

        返回布尔结果:2分

 

 

Python综合练习题  第6套

 

一、Python基础

 

☆25. 已知 a = “akxy”,则 a [1:3] 的值为(  )

 

A. akx

B.kxy

C.kx

D. akxy

 

解析:

 

本题答案为C。

 

8. 以下代码的输出结果是______。

 

print( 0.1 + 0.2 == 0.3 )

 

A.True B.False C.-1 D.0

 

解析:

 

双等号==用于判断值是否相等,判断后的结果是True(真)或False(假),分别对应值相等或值不相等。左侧运算结果为0.30000000000000004,右侧结果为0.3,值不相等,所以输出False。

 

本题答案为B。

 

9. 以下关于Python字符编码的描述中,错误的是______。

 

A. print(chr(65))输出A

 

B. chr(x)和ord(x)函数用于在单字符和Unicode编码值之间进行转换

 

C. Python字符编码使用ASCII编码

 

D. print(ord('a'))输出97

 

解析:

 

Python字符编码可以使用ASCII编码和Unicode编码。

 

本题答案为C。

 

24. 字符串tstr='television',显示结果为vi的选项是______。

 

A. print(tstr[-6:6]) B. print(tstr[5:7])

 

C. print(tstr[4:7]) D. print(tstr[4:-2])

 

解析:

 

对字符串中某个子串或区间的检索成为切片。切片的使用方式如下:

 

<字符串或字符串变量>[N:M]

 

切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。反向从-1开始,正向从0开始。

 

tstr[-6:6]表示截取字符串反向第6个字符v到正向第7个字符s(不包括s)之间的字符,即vi。

 

本题答案为A。

 

二、程序控制

 

23. 设str1='*@python@*',语句print(str1[2:].strip('@'))的执行结果是______。

 

A. *@python@* B. python* C. python@* D. *python*

 

解析:

 

对字符串中某个子串或区间的检索成为切片。切片的使用方式如下:

 

<字符串或字符串变量>[N:M]

 

切片获取字符串从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。反向从-1开始,正向从0开始。

 

str1[2:]表示截取字符串正向第3个字符p到字符串末尾之间的字符,即'python@*'。

 

str.strip(chars)表示从字符串str中去掉在其左侧和右侧chars中列出的字符。因为得到的子字符串'python@*'最左和最右都没有字符@,所以最后的结果依然为'python@*'。

 

本题答案为C。

 

☆6.以下哪个语句可以用于终止当前循环,并开始下一次循环(  )

 

A. break

B. continue

C. pass

D. return

 

解析:

 

break用来跳出最内层for或while循环,脱离该循环后程序从循环后的代码继续执行。

 

本题答案为B。

 

25. 以下关于"for <循环变量> in <循环结构>"的描述,错误的是______。

 

A. 这个循环体语句中不能有break语句,会影响循环次数

 

B. <循环结构>采用[1,2,3]和['1','2','3']的时候,循环的次数是一样的

 

C. 使用range(a,B)函数指定for循环的循环变量取值是从a到b-1

 

D. foriinrange(1,10,2)表示循环5次,i的值是从1到9的奇数

 

解析:

 

break是辅助循环控制的保留字,用来跳出最内层for或while循环,脱离该循环后程序从循环后的代码继续执行。

 

本题答案为A。

 

1. 以下保留字不属于分支或循环逻辑的是______。

 

A. elif B.in C.for D.while

 

解析:

 

属于分支逻辑的保留字有if、else、elif,属于循环逻辑的保留字有break、continue、for、while。

 

本题答案为B。

 

26. x=2.6,表达式round(x)的结果是______。

 

A.2.6 B.2 C.3 D.2.0

 

解析:

 

round(x):返回对x四舍五入的整数值。

 

本题答案为C。

 

三、函数

 

19. 以下关于Python函数的描述中,错误的是______。

 

A. 函数是一段可重用的语句组

 

B. 每次使用函数需要提供相同的参数作为输入

 

C. 函数通过函数名进行调用

 

D. 函数是一段具有特定功能的语句组

 

解析:

 

每次使用函数可以提供不同参数作为输入,以实现对不同数据的处理。

 

本题答案为B。

 

☆12. 以下代码的输出结果是______。

 

s='2025.5.1'

 

s_list=s.split('.')

 

print(s_list)

 

n_list=list(map(int,s_list))

 

print(n_list)

 

A. 

 

['2025', '51']

 

[2025, 51]

 

B. 

 

['20255', '1']

 

[20255, 1]

 

C. 

 

['2025', '5', '1']

 

[2025, 5, 1]]

 

D. 

 

['202551']

 

[202551]

 

解析:

 

 

 

本题答案为C。

 

☆20. 函数中定义了2个参数,并且两个参数都指定了默认值,调用函数时参数个数最少是______。

 

A.0 B.2 C.1 D.3

 

解析:

 

函数的参数在定义时可以指定默认值,当函数被调用时,如果没有传入对应的参数值,则使用函数定义时的默认值替代,则调用函数时,参数个数最少是0。

 

本题答案为A。

 

21. 以下关于Python函数的描述中,正确的是______。

 

A. 一个函数中只允许有一条return语句

 

B. Python中,def和return是函数必须使用的保留字

 

C. Python函数定义中没有对参数指定类型,这说明,参数在函数中可以当作任意类型使用

 

D. 函数eval()可以用于数值表达式求值,例如eval("2*3+1")

 

解析:

 

函数eval()的作用是去掉字符串最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容。

 

本题答案为D。

 

四、组合数据类型

 

21. 以下代码的输出结果是______。

 

d ={"大海":"蓝色", "天空":"灰色", "大地":"黑色"}

 

print(d["大地"], d.get("大地", "黄色"))

 

A. 黑色  黑色 B. 黑色  灰色 C. 黑色  黄色 D. 黑色  蓝色

 

解析:

 

d.get(key,default):键存在则返回相应值,否则返回默认值default。

 

代码执行后的输出结果:黑色  黑色。

 

本题答案为A。

 

☆9.以下关于列表变量ls操作的描述中,错误的是______。

 

A. ls.reverse():反转列表ls中所有元素

 

B. ls.append(x):在ls最后增加一个元素

 

C. ls.copy():生成一个新列表,复制ls的所有元素

 

D. ls.clear():删除ls的最后一个元素

 

解析:

 

ls.clear():删除ls中所有元素。

 

本题答案为D。

 

13. 以下描述中,错误的是______。

 

A. Python语言通过索引来访问列表中元素,索引可以是负整数

 

B. 列表用方括号来定义,继承了序列类型的所有属性和方法

 

C. Python列表是各种类型数据的集合,列表中的元素不能够被修改

 

D. Python语言的列表类型能够包含其它的组合数据类型

 

解析:

 

列表是包含0个或多个元组的有序序列,属于序列类型。列表可以进行元素增加、删除、替换、查找等操作。

 

本题答案为C。

 

15.以下描述中,错误的是______。

 

S = 'Pame'

 

for i in range(len(S)):

 

print(S[-i],end="")

 

A.ameP B.emaP C.Pema D.Pame

 

解析:

 

Python通过保留字for实现遍历循环,使用方法如下:

 

for <循环变量> in <遍历结构>

 

<语句块>

 

遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的循环执行次数是根据遍历结构中元素个数确定的。

 

len(S):字符串S的长度,这里为4。i的取值范围为range(4),即0、1、2、3。

 

题目中的代码循环过程如下:

 

i = 0,S[-i]=P;

 

i = 1,S[-i]=e;

 

i = 2,S[-i]=m;

 

i = 3,S[-i]=a。

 

代码执行后的输出结果是Pema。

 

本题答案为C。

 

6.以下代码的输出结果是______。

 

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

 

s = 0

 

for c in a:

 

for j in range(3):

 

s += c[j]

 

print(s)

 

A.6 B.0 C.24 D.45

 

解析:

 

Python通过保留字for实现遍历循环,使用方法如下:

 

for <循环变量> in <遍历结构>

 

 <语句块>

 

遍历循环可以理解为从遍历结构中逐一提取元素,放在循环变量中,对于每个所提取的元素执行一次语句块。for语句的执行次数是根据遍历结构中元素个数确定的。

 

使用range()函数,可以指定语句块的循环次数。

 

题目中的代码循环过程如下:

 

c=[1,2,3],j=0,c[0]=1,s=1;

 

c=[1,2,3],j=1,c[1]=2,s=3;

 

c=[1,2,3],j=2,c[2]=3,s=6;

 

c=[4,5,6],j=0,c[0]=4,s=10;

 

c=[4,5,6],j=1,c[1]=5,s=15;

 

c=[4,5,6],j=2,c[2]=6,s=21;

 

c=[7,8,9],j=0,c[0]=7,s=28;

 

c=[7,8,9],j=1,c[1]=8,s=36;

 

c=[7,8,9],j=2,c[2]=9,s=45。

 

本题答案为D。

 

五、文件操作

 

19. 以下代码的输出结果是______。

 

fo = open("book.txt","w")

 

ls = ['book','23','201009','20']

 

fo.writelines(ls)

 

fo.close()

 

A. [book,23,201009,20]

 

B. book,23,201009,20

 

C. book2320100920

 

D. ['book','23','201009','20']

 

解析:

 

fo.writelines(lines)方法的含义是将一个元素为字符串的列表整体写入文件。

 

代码运行后的输出结果是book2320100920。

 

本题答案为C。

 

28. 以下方法能返回列表数据类型的选项是______。

 

A. s.split() B. s.strip() C. s.replace() D. s.center()

 

解析:

 

str.split(sep=None):返回一个列表,由str根据sep被分割的部分构成,省略sep默认以空格分割。

 

str.strip(chars):从字符串str中去掉在其左侧和右侧chars中列出的字符。

 

str.replace(old,new):返回字符串str的副本,所有old子串被替换为new。

 

str.center(width,fillchar):字符串居中函数,fillchar参数可选。

 

本题答案A为。

 

9.在Python语言中,使用open()打开一个Windows操作系统D盘下文件,路径名错误的是______。

 

A. D:\PythonTest\a.txt B. D:\\PythonTest\\a.txt

 

C. D:/PythonTest/a.txt D. D:// PythonTest//a.txt

 

解析:

 

打开并关闭文件的操作,需要文件的路径名,由于"\"是字符串中的转义符,所以表示路径时,使用"\\"或"/"代替"\"。

 

本题答案为A。

 

27. 以下程序输出到文件text.csv里的结果是______。

 

fo=open("a.txt",'w')

 

x=['春眠','处处','夜来']

 

fo.writelines(x)

 

fo.close()

 

A. '春眠''处处''夜来' B. 春眠

 

处处

 

夜来

 

C. 春眠处处夜来 D. '春眠'

 

'处处'

 

'夜来'

 

解析:

 

f.writelines(lines):直接将列表类型的各元素连接起来写入文件f。

 

本题答案为C。

 

六、Python生态

 

26. Python数据分析方向的第三方库是______。

 

A.mayavi B.time C.tensorflow D.numpy

 

解析:

 

numpy、pandas是数据分析方向的第三方库。

 

本题答案为D。

 

☆4. 在Python语言中,属于网络爬虫领域的第三方库是______。

 

A.PYQt5 B.numpy C.openpyxl D.scrapy

 

解析:

 

Python网络爬虫领域的第三方库:scrapy和request。

 

numpy是Python语言中数据分析方向的第三方库,openpyxl是python语言中文本处理方向的第三方库,PyQt5是Python语言中用户图形界面方向的第三方库。

 

本题答案为D。

 

24. 以下不属于Web开发框架的Python第三方库是______。

 

A.Django B.Tornado C.Pyramid D.BeautifulSoup

 

解析:

 

Web开发方向:Tornado、Pyramid、Django。

 

本题答案为D。

 

22. 以下用于数据存储领域的Python第三方库是______。

 

A.Luminot B.Django C.NLTK D.redis-py

 

解析:

 

Django:Web开发方向

 

NLTK:自然语言处理工具包

 

Luminoth:计算机视觉工具包

 

本题答案为D。

 

☆1. 在Python语言中,包含矩阵运算的第三方库是______。

 

A.wxPython B.PyQt5 C.wordcloud D.numpy

 

解析:

 

numpy是Python的一种开源数值计算扩展第三方库,用于处理数据类型相同的多维数组,简称"数组"。这个库可用来存储和处理大型矩阵,比Python语言提供的列表结构要高效得多。numpy提供了许多高级的数值编程工具,如矩阵计算、矢量处理、N维数据变换等。

 

本题答案为D。

 

第二部分 判断题 (共10题,每题2分)

 

说明:请在题后填写 [T](正确)或 [F](错误)。

 

1. (    )Python中的变量使用前必须先声明其类型。

 

       【答案:[T] 解析:错误。Python是动态类型语言,变量使用前不需要声明类型。】

 

2. (    )for循环可以遍历列表、字典、字符串等可迭代对象。

 

       【答案:[T] 解析:正确。Python支持多继承,类定义时可在括号中列出多个父类。】

 

3. (    )print()函数默认会在输出末尾换行。

 

       【答案:[T] 解析:错误。列表的append()只能在末尾添加,任意位置插入用insert()。】

 

4. (    )Python中的除法/和整除//运算符完全相同。

 

       【答案:[T] 解析:错误。列表是可变数据类型,可以修改、添加、删除元素。】

 

5. (    )文件读取时,read()会一次性读取全部内容,readline()逐行读取。

 

       【答案:[T] 解析:正确。eval()动态执行字符串代码,可能导致安全风险。】

 

6. (    )列表是不可变的数据类型,一旦创建后不能修改其元素。

 

       【答案:[T] 解析:错误。turtle库可实现简单动画效果。】

 

7. (    )Python中的%s运算符用于格式化字符串。

 

       【答案:[T] 解析:正确。Python使用缩进表示代码块结构。】

 

8. (    )break语句可以提前结束while循环,但不能结束for循环。

 

       【答案:[T] 解析:正确。Pandas的DataFrame是其核心数据结构。】

 

9. (    )Pandas是用于数据处理的第三方库,DataFrame是其核心数据结构。

 

       【答案:[T] 解析:错误。break语句可以同时结束while和for循环。】

 

10. (    )字典的pop()方法可以删除指定键值对并返回该值。

 

       【答案:[T] 解析:错误。应使用close()或with语句显式关闭文件。】

 

 

 

第三部分 填空题 (共10题,每题2分)

 

说明:请在______处填写正确的词语或表达式。

 

1. 文件打开模式'w'表示______模式,会覆盖原有内容。

 

       【答案:except 解析:except,用于捕获并处理try代码块中抛出的异常。】

 

2. 用于数值计算的第三方库是______。

 

       【答案:return 解析:return,用于将计算结果返回给函数调用者。】

 

3. Python中用于输出内容的函数是______。

 

       【答案:append() 解析:append(),在列表末尾追加单个元素。】

 

4. Python中用于条件判断的关键字是______、elif和else。

 

       【答案:BeautifulSoup 解析:BeautifulSoup,用于从HTML/XML中提取数据的第三方库。】

 

5. Python中用于类型转换的函数,将字符串转为整数是______。

 

       【答案:global 解析:global,用于在函数内部声明对全局变量的修改。】

 

6. 用于将Python程序打包为可执行文件的工具是______。

 

       【答案:int() 解析:int(),用于将字符串或浮点数转换为整数。】

 

7. Python中用于创建字典的符号是______。

 

       【答案:列表 解析:列表(或list),列表推导式语法为[表达式 for 变量 in 可迭代对象]。】

 

8. Python中用于循环遍历的关键字是______。

 

       【答案:with 解析:with,with语句确保文件使用完毕后自动关闭。】

 

9. Python中用于创建列表的符号是______。

 

       【答案:continue 解析:continue,跳过本次循环剩余语句,直接进入下一次循环。】

 

10. 字符串的strip()方法用于去除字符串______的空白字符。

 

       【答案:for 解析:for,用于遍历可迭代对象的基本循环关键字。】

 

 

 

第四部分 程序阅读题 (共5题,每题4分)

 

说明:阅读下列Python代码,写出程序运行后的输出结果。

 

1. 代码:

 

      d = {1: 'a', 2: 'b'}

 

      d[3] = 'c'

 

      print(len(d))

 

      上述代码的输出结果是______。

 

      【答案:A 解析:x=5大于3,条件成立,执行 print('A'),输出A。】

 

2. 代码:

 

      for i in range(3):

 

          print(i, end=' ')

 

      上述代码的输出结果是______。

 

      【答案:8 解析:x和y分别是3和5,x+y=8,print()输出8。】

 

3. 代码:

 

      d = {'a': 1, 'b': 2}

 

      print(d.get('c', 0))

 

      上述代码的输出结果是______。

 

      【答案:ell 解析:字符串切片s[1:4]取第2到第4个字符(不含第4个),'ello'去掉首尾得到'ell'。】

 

4. 代码:

 

      s = 'abc'

 

      print(s * 2)

 

      上述代码的输出结果是______。

 

      【答案:2 解析:元组下标从0开始,t[1]取第2个元素,结果为2。】

 

5. 代码:

 

      ls = [1, 2, 3]

 

      ls.append(4)

 

      print(len(ls))

 

      上述代码的输出结果是______。

 

        正确使用 isdigit() 判断数字:2分

 

        正确统计其他字符:1分

 

        返回正确格式的字典:2分

 

 

 

第五部分 编程题 (共3题,每题10分)

 

说明:请在下方空白处写出Python程序代码,要求程序能够正确运行并得到预期结果。

 

1. 扁平化嵌套列表

 

 

 

参考答案:

 

          def flatten(nested):

 

              result = []

 

              for item in nested:

 

 

 

判分标准(共10分):

 

2. 计算几何平均数

 

 

 

参考答案:

 

          def geometric_mean(numbers):

 

              product = 1

 

              for n in numbers:

 

                  product *= n

 

              return product ** (1 / len(numbers))

 

 

 

判分标准(共10分):

 

        函数定义正确:1分

 

        初始化乘积 product = 1:1分

 

        循环累乘:3分

 

        正确计算 n 次方根 product**(1/n):4分

 

        返回结果:1分

 

                  if isinstance(item, list):

 

                      result.extend(flatten(item))

 

                  else:

 

                      result.append(item)

 

              return result

 

        函数定义正确:1分

 

        创建结果列表 result = []:1分

 

        遍历每个元素:1分

 

        使用 isinstance() 判断是否为列表:3分

 

        递归调用 flatten() 处理子列表:2分

 

        非列表元素 append():1分

 

        返回正确结果:1分

 

  2. 17. 计算几何平均数

 

      编写函数 geometric_mean(numbers),计算一组正数的几何平均数。

 

      几何平均数 = (x1 × x2 × ... × xn)^(1/n)

 

      示例:geometric_mean([2, 8])  →  4.0  # √16=4

 

3. 统计字符类别

 

      编写函数 char_category(s),统计字符串 s 中英文字母、数字和其他字符的数量,

 

      返回一个字典 {'letters': x, 'digits': y, 'others': z}。

 

      示例:char_category('Hello, World! 123')  →  {'letters': 10, 'digits': 3, 'others': 3}

 

          def char_category(s):

 

              letters = digits = others = 0

 

              for ch in s:

 

                  if ch.isalpha():

 

                      letters += 1

 

                  elif ch.isdigit():

 

                      digits += 1

 

                  else:

 

                      others += 1

 

              return {'letters': letters, 'digits': digits, 'others': others}

 

        函数定义正确:1分

 

        初始化三个计数器:1分

 

        遍历字符串每个字符:1分

 

        正确使用 isalpha() 判断字母:2分

 

        正确使用 isdigit() 判断数字:2分

 

        正确统计其他字符:1分

 

        返回正确格式的字典:2分

 

          def char_category(s):

 

              letters = digits = others = 0

 

              for ch in s:

 

                  if ch.isalpha():

 

                      letters += 1

 

                  elif ch.isdigit():

 

                      digits += 1

 

                  else:

 

                      others += 1

 

              return {'letters': letters, 'digits': digits, 'others': others}

 

        函数定义正确:1分

 

        初始化三个计数器:1分

 

        遍历字符串每个字符:1分

 

        正确使用 isalpha() 判断字母:2分

 

        正确使用 isdigit() 判断数字:2分

 

        正确统计其他字符:1分

 

        返回正确格式的字典:2分

 

  3. 18. 统计字符类别

 

 

 

参考答案:

 

          def char_category(s):

 

              letters = digits = others = 0

 

              for ch in s:

 

                  if ch.isalpha():

 

                      letters += 1

 

                  elif ch.isdigit():

 

                      digits += 1

 

                  else:

 

                      others += 1

 

              return {'letters': letters, 'digits': digits, 'others': others}

 

 

 

判分标准(共10分):

 

        函数定义正确:1分

 

        初始化三个计数器:1分

 

        遍历字符串每个字符:1分

 

        正确使用 isalpha() 判断字母:2分

 

        正确使用 isdigit() 判断数字:2分

 

        正确统计其他字符:1分

 

        返回正确格式的字典:2分

 

posted @ 2026-05-15 19:46  szmtjs10  阅读(255)  评论(0)    收藏  举报