全部学科
Python全栈
python
NodeJS全栈
nodejs

Python中级技能认证

20 题 60 分钟 难度:★★

考察知识点

  • 上下文管理器:with语句原理、__enter__与__exit__方法、自定义上下文管理器
  • 函数进阶:闭包、装饰器、高阶函数、函数式编程技巧
  • 并发编程基础:多线程基础、线程同步、线程安全、GIL机制
  • 正则表达式:正则语法、re模块使用、匹配与替换、分组操作
  • 测试与调试:单元测试、调试技巧、日志记录、断言使用
💡 参考答案在文末
判断题
1

re.IGNORECASE标志使匹配忽略大小写,re.MULTILINE使^和$匹配每行的开头和结尾,re.DOTALL使.匹配包括换行符在内的所有字符。

A

B

2

Python的re模块提供了正则表达式匹配功能,match()从字符串开头匹配,search()在字符串中搜索匹配,findall()返回所有匹配结果。

A

B

3

Python的logging模块提供了灵活的日志记录功能,支持多种日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)和多种输出方式(文件、控制台、网络等)。

A

B

4

with语句用于简化资源管理,确保资源在使用后自动释放,即使发生异常也能正确清理。

A

B

5

__exit__方法返回True可以抑制异常,使异常不再传播;返回False则异常会继续抛出。

A

B

6

Python中函数是一等公民,可以像普通对象一样赋值给变量、作为参数传递、作为返回值返回,甚至存储在数据结构中。

A

B

7

Python的threading模块提供了创建和管理线程的功能,使用Thread类可以创建新线程,调用start()方法启动线程。

A

B

单选题
8

使用@contextmanager装饰器创建上下文管理器时,yield语句的作用是:

A

定义__exit__方法

B

返回值给as变量,分割__enter__和__exit__代码

C

终止上下文管理器

D

抑制异常

9

以下哪种方式可以将函数作为参数传递给另一个函数?

A

apply_func(greet()) 传递函数返回值

B

apply_func(greet) 传递函数对象本身

C

apply_func('greet') 传递函数名字符串

D

以上都可以传递函数

10

with语句块内发生异常时,以下哪项正确?

A

异常被忽略,继续执行

B

__exit__方法被调用后异常被重新抛出

C

__exit__方法不会被调用

D

程序直接终止,不调用任何方法

11

ThreadPoolExecutor的submit()和map()方法的区别是:

A

submit返回Future对象,map直接返回结果列表

B

submit只能提交单个任务,map提交多个

C

submit阻塞执行,map异步执行

D

A和B都正确

12

执行(lambda x, y: x + y)(5, 3)的结果是:

A

8

B

(5, 3)

C

lambda函数对象

D

报错

13

正则表达式a+匹配的是:

A

字符'a'出现0次或多次

B

字符'a'出现1次或多次

C

字符'a'出现恰好1次

D

字符'a'出现恰好n次

14

关于Thread的start()和run()方法,以下说法正确的是:

A

start()和run()效果相同,都可以启动线程

B

start()启动新线程执行run()方法,run()在当前线程执行

C

run()启动新线程,start()在当前线程执行

D

两者都必须调用才能启动线程

填空题
15

logging有5个级别:____________(调试)、____________(一般)、____________(警告)、ERROR(错误)、CRITICAL(严重)。basicConfig设置level参数指定最低输出级别,filename参数指定输出文件,format参数指定日志格式。

16

map(func, iterable)对每个元素应用函数,返回____________filter(func, iterable)保留函数返回____________的元素,返回____________reduce(func, iterable)从functools模块导入,将序列累积计算得到一个值。三者都是高阶函数。

17

分组用____________()定义,group____________返回整个匹配,group____________返回第一个分组。groups()返回所有分组组成的元组。命名分组用(?Ppattern)语法,通过group('name')获取。反向引用用\n(数字)或(?P=name)。

18

上下文管理器协议要求实现________________________两个方法。__enter__方法在进入with块时调用,其____________赋给as后的变量。__exit__方法在退出with块时调用,接收三个异常参数,返回True可以抑制异常。

19

Lock用于互斥访问,____________()获取锁,____________()释放锁,推荐使用____________语句自动管理。RLock是可重入锁,同一线程可多次获取。Semaphore是信号量,控制同时访问资源的线程数量上限。

20

RotatingFileHandler按____________轮转日志,参数____________设置最大大小,____________设置保留备份数。TimedRotatingFileHandler按时间轮转,when='midnight'每天午夜轮转。避免记录敏感信息。使用结构化格式便于分析。

参考答案
1.正确 2.正确 3.正确 4.正确 5.正确 6.正确 7.正确 8.B 9.B 10.B 11.D 12.A 13.B 14.B 15.DEBUG;INFO;WARNING 16.迭代器;True;迭代器 17.括号;0;1 18.__enter__;__exit__;返回值 19.acquire;release;with 20.大小;maxBytes;backupCount
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
下一套试卷 → Python内部机制专项测试
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码