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.pswp.cn/web/43481.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43481.shtml
英文地址,請注明出處:http://en.pswp.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/…