Python基礎和高級【抽取復習】

1.Python 的深拷貝和淺拷貝有什么區別?

淺拷貝【ls.copy()】:
將列表的不可變對象【值】復制一份,同時引用其中的可變對象【列表】,共用一個內存地址
深拷貝【ls=copy.deepcopy(list)】:
完全的復制原可變對象,生成新的可變對象,兩個對象互相獨立

2.列表和元組的區別是什么?

 1. 列表
概念:有序序列,使用[ ]定義,元素之間用,隔開有序序列
增刪改操作:可以增刪改列表的任意元素不可變元素;2. 元組
概念:使用( )定義,元素之間用,隔開
增刪改操作:- 元素項不可更改;- 元組中可變有序序列可以更改;- 不能刪除元素項,只能刪除整個元組

3.什么是迭代器,什么是生成器?在一個生成器用 yield 返回的中途把 yield 換成 return 是否可行?

迭代器:符合迭代器協議的對象,實現__iter__和__next__兩個方法,前者表示迭代器本身,后者表示迭代器的下一個元素【例:斐波那契數列】,是用來訪問的
生成器:是一個特殊的迭代器,按需動態生成值【惰性求值】,避免一次性生成大量數據占用大量內存,只有使用yield關鍵字時才會返回一個值,并且程序暫停執行,直至下一次迭代【狀態保持】
生成器本身就是一個迭代器,調用使用yield關鍵字的函數,返回的是一個生成器對象,此時函數還沒有執行,通過一個for循環,調用__next__方法時才會返回函數的值。在此過程中,yield會分段生成值。
而普通函數中使用return,返回的是該函數的結果,并且return用于終止函數,中途將yield改為return會導致生成器提前終止

4.lambda 的作用和適用場景是什么?

lambda函數就是沒有名字的,只能使用一次的臨時函數,一個函數體只有一條語句和一個返回值,用于實現簡單功能。
lambda 返回值:表達式
適用場景:
- 簡單計算
。搭配高階函數map() reduce() filter()
- 拓展常用高階函數:
。map應用到一個序列的每個元素,返回迭代器
ret=list(map(lambda x:x+2,ls))reduce對序列進行累計
ret=reduce(lambda x,y:x*y,ls)filter遍歷序列中的元素,根據條件篩選,返回迭代器
ret=list(filter(lambda x:x%2==0,ls))

5.Python 和 Java 的多線程有什么區別?

Python線程執行受GIL限制,是單核執行;而Java可以多核并行執行
Python線程的創建方式是依賴threading模塊;而Java是依賴Runnable接口或Thread類
Python的線程同步是使用Lock、Semaphore等同步原語;而Java是使用synchronized等關鍵字
Python線程池的創建通過concurrent.futures.ThreadPoolExecutor或multiprocessing.pool.ThreadPool實現;而Java通過ExecutorService接口及Executors工廠類創建線程池
Python線程適用場景是I/O密集型任務;而Java則適用于I/O密集型任務和CPU密集型任務

6.Python 的裝飾器是什么?請舉例說明其作用。

- 裝飾器本質上是一種特殊的嵌套函數【在一個函數內部又定義了另一個函數】
它接收一個函數【被裝飾的函數】作為參數,返回一個新的函數【裝飾后的函數】
裝飾器最大的作用就是可以讓我們在不改變被裝飾函數的情況下,給被裝飾函數添加新的功能。
# 定義裝飾器
def disc(func):def inner():print('我是生活在一個小樹苗下的小草')func()print('我是小樹苗龐的石頭')return inner# 被裝飾函數
def func():print('我是一棵小樹苗')func=disc(func)
func()

7.如何加載一個文本文件并獲取其中最長的英文單詞?

編程思路:
- 打開文件獲取數據【with open('path','r',encoding='utf-8') as file:- 清洗數據【去除非英文字符,分割為單詞】
- 比較單詞長度【直接用max(單詞列表,key=len)或使用len()函數遍歷比較】
import redef find_longest_english_word(file_path):# 打開文件并讀取內容with open(file_path, 'r', encoding='utf-8') as file:content = file.read()# 清洗數據:移除所有非英文字母字符,并轉換為小寫cleaned_content = re.sub(r'[^a-zA-Z]', ' ', content).lower()# 將文本分割成單詞列表(連續的英文字母視為一個單詞)words = cleaned_content.split()# 過濾出僅包含英文字母的單詞(確保沒有殘留的非字母字符)english_words = [word for word in words if word.isalpha()]# 處理空文件的情況if not english_words:return None# 使用max函數找到最長的單詞longest_word = max(english_words, key=len)return longest_word# 使用示例
if __name__ == "__main__":file_path = "example.txt"  # 替換為實際文件路徑longest_word = find_longest_english_word(file_path)if longest_word:print(f"最長的英文單詞是: {longest_word},長度為 {len(longest_word)}")else:print("文件中未找到英文單詞。")

8.is 和 == 的區別是什么?

is:判斷兩個對象是否指向同一內存地址
一般判斷對象是否是:NoneTrueFalse
==:判斷兩個值是否相等

9.range 是什么?

- Python的一個內置函數,用于生成不可變的整數序列
- 參數:range(start,stop,step)
.開始【包含】
.結束【不包含】
.步長【可以為負值,此時start必須大于stop才是有效的】

10.給你一個數字序列,怎么求其中的質數?

質數:大于1且只能被1和本身整除
ls=[1,3,5,7,9]
判斷思路:
- n<=1  小于等于1不是質數
- n==2  2是質數,其他偶數都不是質數
- n>2    奇數,檢查從3到n的算數平方根能否整除
- 遍歷列表執行上面三步操作
【注意】:
- 如果序列很長,可以使用迭代器獲取列表內的值,節省內存
- 對于超大規模序列,可以考慮使用多進程/多線程加速判斷

11.怎么改變 list 的類型,比如如何把一個列表變成一個集合或者一個元組?

在python中直接使用內置函數轉換就可以
list_set=set(list)【會自動去重】
list_tuple=tuple(list)

12.知道 reduce 函數嗎?其作用是什么?

reduce函數是一種高階函數
作用:對序列進行累計,這里的累計可以是加減乘除
ls=[1,2,3,4,5]
reduce(lambda x,y:x*y,ls)=1*2*3*4*5=120

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92003.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92003.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92003.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TinyPiXOS組件開發(一):開發規范、組件開發方法介紹,快速上手組件開發,創造各種有趣的UI組件!

本文將通過實現一個點擊切換進度的電量指示燈組件和exampleGUI組件庫介紹如何基于TinyPiXOS開發新組件。主要內容包括組件開發規范、自定義組件開發和組件庫開發三部分。 組件開發規范 命名規范 采用tp開頭命名組件類&#xff0c;名稱具備易讀性。 目錄規范 頭文件放置 in…

主流熔斷方案選型指南

主流熔斷方案選型1. Netflix Hystrix (經典但已停止維護)適用場景&#xff1a;傳統Spring Cloud項目&#xff0c;需要快速集成熔斷功能優點&#xff1a;成熟穩定&#xff0c;社區資源豐富與Spring Cloud Netflix套件無縫集成提供熔斷、降級、隔離等完整功能缺點&#xff1a;已停…

Django中get()與filter()對比

在 Django 中&#xff0c;get() 和 filter() 是 QuerySet API 中用于檢索數據的兩個核心方法&#xff0c;它們的功能和使用場景有明顯區別。以下是詳細對比&#xff1a; 1. 核心區別特性get()filter()返回值單個對象&#xff08;模型實例&#xff09;查詢集&#xff08;QuerySe…

MySQL鎖(一) 概述與分類

1.1 MySQL鎖的由來 客戶端發往 MySQL 的一條條 SQL 語句&#xff0c;實際上都可以理解成一個個單獨的事務&#xff08;一條sql語句默認就是一個事務&#xff09;。而事務是基于數據庫連接的&#xff0c;每個數據庫連接在 MySQL 中&#xff0c;又會用一條工作線程來維護&#x…

PyTorch里的張量及張量的操作

張量的簡介 張量是多重線性映射在給定基下的坐標表示&#xff0c;可視為向量和矩陣的泛化。 0 維張量&#xff1a;標量&#xff08;如 5&#xff09;1 維張量&#xff1a;向量&#xff08;如 [1, 2, 3]&#xff09;2 維張量&#xff1a;矩陣&#xff08;如 [[1, 2], [3, 4]]&…

向量數據庫Faiss vs Qdrant全面對比

Faiss vs Qdrant 全面對比表 向量數據庫是一種相對較新的方式,用于與來自不透明機器學習模型(如深度學習架構)派生的抽象數據表示進行交互。這些表示通常被稱為向量或嵌入(embeddings),它們是用于訓練機器學習模型完成諸如情感分析、語音識別、目標檢測等任務的數據的壓…

2025年AIR SCI1區TOP,縮減因子分數階蜣螂優化算法FORDBO,深度解析+性能實測

目錄1.摘要2.蜣螂優化算法DBO原理3.改進策略4.結果展示5.參考文獻6.代碼獲取7.算法輔導應用定制讀者交流1.摘要 傳統DBO存在探索與開發能力失衡、求解精度低以及易陷入局部最優等問題。因此&#xff0c;本文提出了帶有縮減因子分數階蜣螂優化算法&#xff08;FORDBO&#xff0…

爬蟲逆向之JS混淆案例(全國招標公告公示搜索引擎 type__1017逆向)

案例https://ctbpsp.com/#/ 截至2025.07.19可用 定位加密位置 加密位置&#xff1a; 定位方式&#xff0c;XHR&#xff0c;跟棧 跟棧 QL打斷點&#xff0c;重新斷住 分析為&#xff0c;一個函數傳入四個參數 var QL QI[d9(Nv.mQ)](QJ, Qh, Qv, this[d9(Nv.m9)][0xa1a * …

Hive常用命令總結

一、數據庫操作 -- 創建數據庫&#xff08;默認路徑&#xff09; CREATE DATABASE IF NOT EXISTS myhive;-- 指定路徑創建數據庫 CREATE DATABASE myhive2 LOCATION /myhive2;-- 查看數據庫信息 DESC DATABASE myhive;-- 刪除數據庫&#xff08;強制刪除表&#xff09; DROP DA…

Spring整合MyBatis詳解

Spring整合MyBatis詳解一、整合優勢與核心思路1.1 整合優勢1.2 核心整合思路二、環境搭建與依賴配置2.1 開發環境2.2 Maven依賴配置三、整合配置&#xff08;核心步驟&#xff09;3.1 數據庫配置文件&#xff08;db.properties&#xff09;3.2 Spring配置文件&#xff08;sprin…

Windows CMD(命令提示符)中最常用的命令匯總和實戰示例

CMD命令匯總 下面是 Windows CMD&#xff08;命令提示符&#xff09;中最常用的命令匯總&#xff0c;共 30 個&#xff0c;包含說明和典型代碼示例&#xff0c;適合日常開發、系統操作、文件管理、網絡診斷等場景。一、文件與目錄操作&#xff08;最常用&#xff09;命令說明示…

嵌入式硬件篇---舵機(示波器)

舵機是一種高精度的角度控制執行器件&#xff0c;廣泛應用于機器人、航模、自動化設備等領域。其核心特點是能通過控制信號精準定位到特定角度&#xff08;通常范圍為 0-180&#xff0c;部分可到 360 連續旋轉&#xff09;。常見的舵機類型可根據結構、控制方式、用途等維度劃分…

嵌入式硬件篇---按鍵

按鍵是電子系統中最基礎的人機交互部件&#xff0c;通過機械或電子方式實現電路通斷或狀態切換。根據結構和工作原理的不同&#xff0c;常見按鍵可分為機械按鍵、薄膜按鍵、觸摸按鍵等&#xff0c;以下詳細介紹其工作原理、應用場景及電路特點&#xff1a;一、機械按鍵&#xf…

試用SAP BTP 06:AI服務-Data Attribute Recommendation

創建實例 方法一&#xff1a;BTP主控室-子賬戶-服務市場 輸入實例配置信息&#xff0c;下一步 不用參數&#xff0c;下一步 審核實例&#xff0c;點擊創建 實例創建完成后&#xff0c;創建服務鍵值 輸入鍵值名稱&#xff0c;點擊 創建 方法二&#xff08;建議&#xff09;&…

訓詁學中的“形音義互求”對NLP、知識圖譜、注意力機制的啟示

一、訓詁學與現代人工智能結合的學術價值與技術潛力1. ??訓詁學的核心優勢與AI語義分析的契合點??訓詁學作為中國傳統學術中研究古代文獻語義的核心學科&#xff0c;其方法論和理論框架對自然語言處理&#xff08;NLP&#xff09;的深層語義分析具有深刻的啟發性和技術補充…

http基礎一

1. HTTP是什么&#xff1f; HTTP&#xff08;超文本傳輸協議&#xff0c;HyperText Transfer Protocol&#xff09;是一種用于從萬維網服務器傳輸超文本到本地瀏覽器的協議。它是無狀態的客戶端-服務器協議&#xff0c;通常在Web瀏覽器和Web服務器之間用于傳輸網頁、圖片、視頻…

西門子 S7-1500 系列 PLC CPU 選型全指南:從類型到實戰

在西門子 S7-1500 系列 PLC 的系統構建中&#xff0c;CPU 作為核心控制單元&#xff0c;其選型直接決定了自動化系統的性能、功能擴展性和適用場景。本文將系統解析 S7-1500 系列 CPU 的類型劃分、核心參數、典型型號功能及選型流程&#xff0c;助你精準匹配工業控制需求。一、…

PaddleOCR 與 PaddleX 調試

PaddleOCR 與 PaddleX 調試1.安裝1.1 環境準備1.2用Conda創建虛擬環境2.測試2.1發票測試2.2 手寫漢字識別3.PaddleOCR 與 PaddleX 對比3.1 基于 PaddleX 部署 OCR 服務1.安裝 PP OCR 文檔 1.1 環境準備 根據自己操作系統按網上指導安裝 ccache ccache --version是否已安裝 …

imx6ull-系統移植篇11——U-Boot 移植(下)

目錄 前言 移植過程 添加開發板默認配置文件 添加開發板對應的頭文件 添加開發板對應的板級文件夾 修改Makefile 文件 修改imximage.cfg 文件 修改Kconfig 文件 修改MAINTAINERS 文件 修改 U-Boot 圖形界面配置文件 編譯 uboot LCD 驅動修改 修改源文件 修改頭文…

30天打牢數模基礎-模擬退火算法講解

二、完整Python代碼 import random import mathdef rastrigin(x, y):"""二維Rastrigin函數&#xff08;目標函數&#xff0c;需最小化&#xff09;參數&#xff1a;x: 自變量xy: 自變量y返回&#xff1a;函數值f(x,y)"""return 20 x**2 y**2 …