Python面试宝典第10题:精选选择题

题目1

在以下函数中,b和a的关系是___。

def add_one_to_list(lst):lst.append(1)return lsta = [1, 2, 3]
b = add_one_to_list(a)

A. b是a的浅拷贝

B. b和a是同一个列表对象

C. b是a的深拷贝

D. b是a的一个子列表

题目2

以下函数的作用是___。

def operate_string(s):return s[::-1]

A. 将字符串s转换为大写

B. 计算字符串s的长度

C. 反转字符串s中的字符顺序

D. 删除字符串s中的空格

题目3

执行下面的代码后,nums的值是___。

nums = [1, 2, 7, 9, 8, 6]
nums.sort(reverse=True)

A. [1, 2, 6, 7, 8, 9]

B. [9, 8, 7, 6, 2, 1]

C. [6, 7, 8, 9, 2, 1]

D. [6, 8, 9, 7, 2, 1]

题目4

阅读下面的代码,对于fibonacci(5),下列说法正确的是___。

def fibonacci(n, memo={}):if n <= 1:return nelif n not in memo:memo[n] = fibonacci(n-1) + fibonacci(n-2)return memo[n]

A. fibonacci(1)会计算两次

B. fibonacci(2)会计算三次

C. fibonacci(1)和fibonacci(2)均只会计算一次

D. 时间复杂度为O(n^2)

题目5

执行下面的代码后,输出是___。

class MyClass:def __init__(self, value):self.value = valuedef __str__(self):return str(self.value)obj = MyClass(10)
print(str(obj))

A. "<__main__.MyClass object at 0x...>"

B. "MyClass Object"

C. "10"

D. 报错,缺少__repr__方法

题目6

执行下面的代码后,输出是___。

def example():x = 10def nested():nonlocal xx = 20nested()return xprint(example())

A. 10

B. 20

C. 报错,因为nonlocal关键字不能正确引用x

D. None

题目7

阅读下面的代码,关于weak_ref()调用的说法正确的是___。

import weakrefclass MyClass:passobj = MyClass()
weak_ref = weakref.ref(obj)del obj

A. 返回原对象

B. 返回None,因为原对象已被删除

C. 抛出ReferenceError

D. 引发MemoryError

题目8

阅读下面的代码,如何在不修改decorated_function的情况下,临时禁用装饰器的功能?说法正确的是___。

def advanced_decorator(func):def wrapper(*args, **kwargs):print("Wrapper preprocessing")result = func(*args, **kwargs)print("Wrapper postprocessing")return resultreturn wrapper@advanced_decorator
def decorated_function(x):print(f"Inside function: {x}")

A. 无法实现,一旦装饰就无法临时禁用

B. 通过decorated_function.__wrapped__(*args)调用原始函数

C. 通过设置全局变量控制装饰器逻辑

D. 使用functools.wraps取消装饰效果

题目9

阅读下面的代码,说法正确的是___。

class SingletonMeta(type):_instances = {}def __call__(cls, *args, **kwargs):if cls not in cls._instances:cls._instances[cls] = super().__call__(*args, **kwargs)return cls._instances[cls]class Singleton(metaclass=SingletonMeta):def __init__(self, value):self.value = values1 = Singleton(10)
s2 = Singleton(20)

A. s1 和 s2 是两个不同的对象

B. s1 和 s2 的 value 属性都是 20

C. s1 和 s2 是同一个对象,且 value 属性为 10

D. s1 和 s2 是同一个对象,且 value 属性为 20

题目10

阅读下面的代码,说法错误的是___。

from functools import lru_cache@lru_cache(maxsize=None)
def expensive_calculation(x):# 假设这是一个非常耗时的计算return x * x

A. lru_cache可以显著提高对同一输入重复调用函数的效率

B. maxsize=None意味着缓存大小没有限制

C. 如果内存不足,Python会自动从LRU缓存中移除最近最少使用的条目

D. expensive_calculation现在是一个纯函数,其行为不受外部状态影响

答案

1、答案: B。因为列表是可变对象,通过函数修改列表会直接影响原始对象。

2、答案: C。s[::-1]是Python中切片操作的一种形式,用于从开始到结束反向取出字符串中的字符,从而实现反转。

3、答案: B。sort(reverse=True)按照降序排列列表元素。

4、答案: C。通过记忆化存储已计算过的斐波那契数,避免了重复计算,降低了时间复杂度。

5、答案: C。通过定义str方法,当对象被转换为字符串时,会返回自定义的字符串表示,这里是对象的value值"10"。

6、答案: B。nonlocal关键字用于标记一个变量是外部嵌套作用域(非全局)中的变量,因此内部函数可以修改外部函数的局部变量x。

7、答案: B。weakref.ref创建的是弱引用,当对象被垃圾回收后,弱引用不会阻止对象被销毁,访问该弱引用会返回None。

8、答案: B。Python的装饰器在应用时会保留原始函数对象作为wrapped属性,可以直接通过这个属性调用未装饰的函数版本。

9、答案: D。尽管s1初始化时传入了10,但由于SingletonMeta元类的实现,s2的创建覆盖了之前实例的value属性,使得最后的实例(s1和s2相同)的value为20。

10、答案: C。虽然LRU缓存设计用于在达到最大容量时移除最不常用的条目,但是如果没有指定maxsize或将其设置为None,则实际上不会限制缓存大小,可能导致内存使用无限制增长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/43481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++多态的实现原理

静态多态&#xff08;编译期&#xff09; 函数重载&#xff1a; 允许在同一个作用域中声明多个功能类似的同名函数函数的参数列表不同&#xff08;参数个数&#xff0c;参数类型&#xff0c;参数顺序&#xff09;注意&#xff1a;不能通过函数返回值区分&#xff08;name man…

(补充)IDEA项目结构

文章目录 前言一、pycharm中Python项目结构二、IDEA中的java项目结构设计总结前言 本文主要介绍一下pycharm和IDEA里面的项目结构的使用方法 一、pycharm中Python项目结构 之前我们在pycharm做过python项目,项目结构很清晰,还是比较灵活的。 一般项目里面就是 数据驱动、数…

【JavaSE】程序逻辑控制

目录 1. 顺序结构 2. 分支结构 2.1 if语句 2.1.1 语法格式1 2.1.2 语法格式2 2.1.3 语法格式3 2.1.4 练习 2.1.5 注意事项 2.2 switch 语句 3. 循环结构 3.1 while循环 3.1.1 语法格式 3.1.2 代码示例 3.1.3 注意事项 3.2 break 3.3 continue 3.4 for循环 …

scratch3编程05-画笔绘制圆及与圆相关的图形

目录 一&#xff0c;圆 1&#xff0c;空心圆 2&#xff0c;实心圆 3&#xff0c;嵌套在一起的圆 4&#xff0c;圆环 二&#xff0c;五角星 1&#xff0c;空心五角星 1&#xff09;思路 2&#xff09;完整的程序 2&#xff0c;实心五角星 1&#xff09;思路 2&…

C# 预处理器指令

C# 预处理器指令 概述 C# 预处理器指令是编译器在编译代码之前处理的指令。这些指令用于控制编译过程,包括条件编译、编译指令的定义和取消等。预处理器指令以 # 开头,不包含在代码的执行逻辑中,仅在编译阶段起作用。 常用的预处理器指令 1. #define 和 #undef #define…

RK3568笔记三十三: helloworld 驱动测试

若该文为原创文章&#xff0c;转载请注明原文出处。 报着学习态度&#xff0c;接下来学习驱动是如何使用的&#xff0c;从简单的helloworld驱动学习起。 开始编写第一个驱动程序—helloworld 驱动。 一、环境 1、开发板&#xff1a;正点原子的ATK-DLRK3568 2、系统&#xf…

d3dcompiler_43.dll文件是什么?如何快速有效的解决d3dcompiler_43.dll文件丢失问题

dcompiler_43.dll 是一个Windows系统中的系统文件&#xff0c;属于DirectX软件的一部分。这个dcompiler_43.dll&#xff08;动态链接库&#xff09;文件主要用于处理与3D图形编程有关的任务&#xff0c;是运行许多游戏和高级图形程序必需的组件之一。那么如果电脑丢失d3dcompil…

香蕉派BPI-Wifi6迷你路由器公开发售

Banana Pi BPI-Wifi6 Mini 公开发售。 Banana Pi BPI-Wifi6 Mini 开源路由器采用Triductor TR6560 TR5220 wifi SOC设计&#xff0c;是一款迷你尺寸的wifi6路由器解决方案。内置高性能双核ARM Cortec A9处理器用于WIFI报文转发或智能业务处理&#xff0c;内置高性能LSW和硬件N…

[NeetCode150] String Encode and Decode

String Encode and Decode Design an algorithm to encode a list of strings to a single string. The encoded string is then decoded back to the original list of strings. Please implement encode and decode Example 1: Input: [“neet”,“code”,“love”,“you…

ubuntu 上vscode +cmake的debug调试配置方法

在ubuntu配置pcl点云库以及opencv库的时候&#xff0c;需要在CMakeLists.txt中加入相应的代码。配置完成后&#xff0c;无法调试&#xff0c;与在windows上体验vs studio差别有点大。 找了好多调试debug配置方法&#xff0c;最终能用的有几种&#xff0c;但是有一种特别好用&a…

ubuntu部署minio集群

minio集群介绍 官方文档&#xff1a;https://min.io/docs/minio/linux/operations/install-deploy-manage/deploy-minio-multi-node-multi-drive.html 本方案采用在多节点多驱动器 (MNMD) 或“分布式”配置部署 MinIO。 MNMD 部署提供企业级性能、可用​​性和可扩展性&#…

jmeter-beanshell学习4-beanshell截取字符串

再写个简单点的东西&#xff0c;截取字符串&#xff0c;参数化文件统一用csv&#xff0c;然后还要用excel打开&#xff0c;如果是数字很容易格式就乱了。有同事是用双引号把数字引起来&#xff0c;报文里就不用加引号了&#xff0c;但是这样beanshell处理起来&#xff0c;好像容…

Facebook社交平台的未来发展趋势分析

随着科技和社交需求的不断演变&#xff0c;Facebook作为全球最大的社交平台之一&#xff0c;其未来发展的趋势备受关注。从技术创新到社会影响&#xff0c;Facebook正在经历着前所未有的变化和挑战。本文将探讨Facebook未来发展的几个关键趋势&#xff0c;并分析其可能的影响和…

[Linux][Shell][Shell变量]详细讲解

目录 1.本地变量2.变量定义3.取出变量值4.特殊变量5.特殊状态变量6.shell内置的变量命令1.echo2.eval3.exec 7.截取字符串8.特殊shell扩展变量处理1.语法2.应用场景 1.本地变量 定义Shell变量&#xff0c;变量名不需要加$本地变量只在⽤户当前shell⽣存期中有效 2.变量定义 变…

SpringBoot防止重复提交 AOP+自定义注解+redis

1.什么是重复提交呢 在Web开发中&#xff0c;重复提交&#xff08;也称为双重提交或重复表单提交&#xff09;是指用户在没有明确意图的情况下&#xff0c;多次提交同一表单的情况。这可能是由于用户多次点击提交按钮、表单提交过程中的网络延迟导致用户重复点击、或者由于浏览…

双向全桥隔离dc-dc变换器(DAB)

DAB(dual active bridge) 双向全桥隔离dc-dc变换器&#xff08;DAB&#xff09;和Buck/Boost不同&#xff0c;该变换器通过交流电感进行功率传输&#xff0c;其调制和控制不适合直接借鉴已有的研究。 调制挑战&#xff1a;开关网络相对复杂&#xff0c;调制自由度较多&#x…

揭秘SQL Server数据库选项:性能与行为的调控者

揭秘SQL Server数据库选项&#xff1a;性能与行为的调控者 在SQL Server的世界中&#xff0c;数据库选项是那些可以调整以优化数据库性能和行为的设置。它们是数据库管理员和开发者的得力助手&#xff0c;通过精细调控&#xff0c;可以显著提升数据库的响应速度和资源利用率。…

MySQL MVCC

总结自小林coding&#xff0c;bojiangzhou 脏读、不可重复读、幻读 说的都是并发读取的问题&#xff0c;最简单的方式就是给记录加一把锁&#xff0c;不管是更新、读取记录都需要竞争到这把锁之后才能操作。但这种方式的并发性能可想而知会有多么低。 于是 InnoDB 就设计了MVC…

C#——二进制流序列化和反序列化

C#二进制流序列化和反序列化 在C#中&#xff0c;可以使用BinaryFormatter来进行二进制的序列化和反序列化。 首先&#xff0c;定义一个可序列化的类 [Serializable] public class MyObject {public int IntProperty { get; set; }public string StringProperty { get; set; …

ubuntu 上配置开机自动启动ssh

一般安装了就会自动启动。但是各种rc.local, cron都测试了一下&#xff0c;还是这个systemd有效 使用 systemd 服务 创建文件 sudo nano /etc/systemd/system/custom-ssh.service [Unit] DescriptionStart SSH service at boot Afternetwork.target[Service] ExecStart/usr/…