python測試總結

測試題的基礎知識點總結

1.循環求和
for循環步長(range(2,101,2)
while循環+條件判斷(i%2==0
生成器表達式(sum(i for i in range )
所以:sum(range(1,101,2))(奇數和)和sum+=1(應加i

2.字符串切片
拼接:"Py"+"thon"[1:3]"Py"+"th"="Python"
切片規則:[start:end]前閉后開

3.列表排序
A.sort(reverse=True):降序排列輸出[8,5,2,1]

4.變量作用域
局部變量在函數結束后銷毀

5.遞歸函數
遞歸計算:recursive(5)=5*recursive(4)//2
最終輸出5
過程:5*(4*(3*(2*(1*1//2)//2)//2)//2

6.列表創建
正確:列表推導式[x for x in range(1,6)]
字符串轉列表:list('12345')['1','2','3','4','5'](需再轉int
所以list range(應為list(range(1,6))

7.異常類型
索引越界:[1,2,3][3]
除零錯誤:1/0
參數錯誤:len('abc',11)len只接受1參數)
類型錯誤:len(None)None無長度)

8.列表推導式嵌套循環
[x*y for x in list 1 for y in list[2]→笛卡爾積

9.斐波那契遞歸
func(4)=func(3)+func(2)=(func(2)+func(1))+(func(1)+func(0))=(1+1)+(1+0)=3
終止條件是n<=1時返回n

10.全局變量
global x是聲明全局變量
bar()中調用foo()修改全局x
最后輸出15

11.條件判斷
ifx:x可為任意對象(空值False,非空True)

12.對象引用
a=[1,2]b=[1,2]是兩個獨立對象

13.列表方法
remove(item)按值刪除元素
按索引刪除用pop(index)dellist[index]

14.列表切片

15.分支結構
特點:多個elifelse在最后、僅執行一個分支,前兩項和最后一項

16.類型轉換

17.遞歸終止條件
缺少終止條件會無限遞歸:deff(n): return n*f(n1)(無n==0判斷)
直接調用自身:deff(n): return f(n)

18.循環控制
break:跳出循環
continue:跳過本次迭代
return:跳出函數(間接跳出循環)

19.切片規則
list[1:3]返回索引1到2的元素→錯誤(索引3不包含)

20.變量作用域
函數內部變量默認局部→錯誤(需global聲明全局變量)

21.列表元素類型
列表可混合類型→正確(如[1,"a",True]

22.is==
is比較內存地址,==比較值

23.字符串不可變
字符串創建后不可修改(修改需創建新字符串)

24.動態類型
Python變量無需聲明類型

25.列表元素訪問
索引list[index]list.pop(index)

26.列表操作
合法:+(拼接)、*(重復)、索引訪問
非法:``(列表不支持減法)

27.基本數據類型
正確:floatstr
錯誤:array(非基礎類型)、“數據類型”(無效)

28.變量本質
變量是對象的引用
不可變對象(如元組)無法修改

29.遞歸生成列表
func(3)=func(2)+[3]=(func(1)+[2])+[3]=([1]+[2])+[3]=[1,2,3]

30.遞歸特性
必須有終止條件;可能導致棧溢出;可轉化為循環

31.作用域規則
全局變量函數內可直接訪問;global修改全局變量;局部變量函數外不可訪問

32.列表原地修改
原地修改方法:append(),extend(),insert()
非原地:lst=lst+[1](創建新列表)

33.局部變量優先級
func()x是局部變量
輸出[3,4,5](局部)和[1,2](全局)

34.局部變量聲明順序
func()print(x)x=20
所以出現UnboundLocalError(未定義)

35.多重賦值
c,d,a,b=d,b,a,c等價于c=4,d=2,a=1,b=3

36.嵌套列表扁平化
遍歷子列表并合并 flatten([[1,2],[3,4]])→[1,2,3,4]

37.函數參數傳遞
列表傳參時,lst=lst+[4]創建新對象 original不變,modified[1,2,3,4]

38.列表副本
double()返回新列表 nums不變,result[2,4,6]

46.多返回值
函數返回元組(a+b,a*b) sum=7,product=12

47.函數特性
函數可以無參數

48.階乘遞歸
factorial(3)=3*factorial(2)=3*2*factorial(1)=3*2*1*1=6

49.列表可變性
函數內修改列表影響原對象 my_list變為[1,2,3,4]

50.嵌套列表生成
二維列表:[[i+j for j in range(2)] for i in range(3)] 輸出 [[0,1],[1,2],[2,3]]

51.循環中修改列表
pop(i)后列表長度變化所以i只在非刪除時遞增,輸出[1,3,5]

52.列表交集去重
求交集并去重:intersect(a,b)=[2,3,4] 所以sum=9

53.字符串反轉
split()切分單詞,insert(0,word)倒序插入,輸出"learn to fun is Python"

54.字典計數
統計元音頻率,e出現4次(Hello和test),o出現3次,總和7

55.字符串處理邏輯
i%2==0,輸出"hello world this is a test"

56.棧操作模擬
peek輸出棧頂,依次輸出2,2,4所以棧最終為[1,2,4]sum=7

57.嵌套列表計數
遞歸統計嵌套列表中2的出現次數→結果為4

58.字典合并
合并字典并累加相同鍵,merged={'a':1,'b':5,'c':4}1+5+4=10

59.等差數列判斷
檢查相鄰元素差是否為1 [5,6,7,8]

60.累加和列表
cumulative_sum([3,1,4,1,5])→[3,4,8,9,14]

61.字符計數
統計字母頻率→'a'出現5次(abracadabra),'z'未出現→結果5

62.模塊知識
math模塊無round()方法(Python內置函數)→錯誤說法

63.迭代器協議
可迭代對象,如列表,需用iter()轉迭代器才支持next()

64.字典淺拷貝
b=a.copy()創建副本,所以修改b不影響a,a[1]仍為'a'

65.集合操作異常
s.remove(2)返回Nones.discard(None)無效,所以s={1,3}

這次考試徹底暴露了我在變量作用域上的認知漏洞,明明背熟了global關鍵字,實戰時還是分不清函數里修改的到底該是全局變量還是局部;數據結構操作更是重災區,列表切片總手滑多切一位,字典合并時傻傻分不清賦值和淺拷貝的區別,集合運算差點把&|搞反。流程控制雖然基礎,但for循環里刪列表元素直接導致索引崩盤,if-elif-else分支不能漏寫。最頭疼的是遞歸函數,終止條件如果少一行就無限循環,還差點忘了遞歸層數太深會爆棧。我現在終于懂了:寫代碼不是拼手速,而是得時刻警惕邊界異常,索引len-1,改容器前先問自己會不會影響循環。所以下次刷題前,我決定先畫三張圖:作用域、對象引用、遞歸調用樹。

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

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

相關文章

識別和分類惡意軟件樣本的工具YARA

YARA 是一個用于識別和分類惡意軟件樣本的工具,廣泛應用于惡意軟件分析、威脅情報、入侵檢測等領域。它通過編寫規則(YARA Rules)來匹配文件中的特定字符串、十六進制模式、正則表達式等特征。 一、YARA 的基本使用方法 1. 安裝 YARA Linux(Ubuntu/Debian) sudo apt-ge…

GaussDB 約束的語法

1 約束的作用約束是作用于數據表中列上的規則&#xff0c;用于限制表中數據的類型。約束的存在保證了數據庫中數據的精確性和可靠性。約束有列級和表級之分&#xff0c;列級約束作用于單一的列&#xff0c;而表級約束作用于整張數據表。下面是 GaussDB SQL 中常用的約束。NOT …

SecurityContextHolder 管理安全上下文的核心組件詳解

SecurityContextHolder 管理安全上下文的核心組件詳解在 Spring Security 中&#xff0c;SecurityContextHolder 是??安全上下文&#xff08;Security Context&#xff09;的核心存儲容器??&#xff0c;其核心作用是??在當前線程中保存當前用戶的認證信息&#xff08;如用…

c++詳解系列(引用指針)

目錄 1.什么是引用 2.引用的定義 3.引用的特性 4.引用的使用 4.1引用傳參 4.2傳引用返回 5.const引用&#xff08;在引用的定義前用const修飾&#xff09; 5.1對于引用 5.2對于指針 6.引用&指針 總結 1.什么是引用 引用就是給變量起別名&#xff0c;一個變量可以…

深度學習loss總結(二)

對于目前深度學習主流任務學習,loss的設置至關重要。下面就不同任務的loss設置進行如下總結: (1)目標檢測 2D/3D目標檢測中的 Loss(損失函數)是訓練模型時優化目標的核心,通常包括位置、類別、尺寸、方向等多個方面。以下是目前 常見的 2D 和 3D 目標檢測 Loss 分類與…

【Linux網絡】netstat 的 -anptu 各個參數各自表示什么意思?

netstat 是一個網絡統計工具&#xff0c;它可以顯示網絡連接、路由表、接口統計、偽裝連接和多播成員資格。在 netstat 命令中&#xff0c;不同的參數可以用來定制輸出的內容。 你提到的 -anptu 參數組合各自的功能如下&#xff1a; -a (all): 顯示所有活動的連接和監聽端口。它…

[硬件電路-115]:模擬電路 - 信號處理電路 - 功能放大器工作分類、工作原理、常見芯片

功能放大器是以特定功能為核心的集成化放大電路&#xff0c;通過將運算放大器與外圍電阻、電容等元件集成在單一芯片中&#xff0c;實現標準化、高性能的信號放大功能。其核心優勢在于簡化設計流程、提升系統穩定性&#xff0c;并針對特定應用場景優化性能參數。以下從定義、分…

雙網卡UDP廣播通信機制詳解

UDP廣播通信機制詳解 一、通信流程分析 發送階段 通過Client.Bind(192.168.0.3, 60000)將UDP套接字綁定到指定網卡和端口設置RemoteHost "255.255.255.255"實現全網段廣播數據流向&#xff1a;192.168.0.3:60000 → 255.255.255.255:50000 接收階段 設備響應數據應返…

從遮擋難題到精準測量:激光頻率梳技術如何實現深孔 3D 輪廓的 2um 級重復精度?

一、深孔 3D 輪廓測量的遮擋困境深孔結構&#xff08;如航空發動機燃油噴嘴孔、模具冷卻孔&#xff09;因孔深大&#xff08;常超 100mm&#xff09;、深徑比高&#xff08;&#xff1e;10:1&#xff09;&#xff0c;其 3D 輪廓測量長期受限于光學遮擋難題。傳統光學測量技術&a…

.NET 依賴注入(DI)全面解析

文章目錄一、依賴注入核心原理1. 控制反轉(IoC)與DI關系2. .NET DI核心組件二、服務生命周期1. 三種生命周期類型三、DI容器實現原理1. 服務注冊流程2. 服務解析流程四、高級實現方法1. 工廠模式注冊2. 泛型服務注冊3. 多實現解決方案五、ASP.NET Core中的DI集成1. 控制器注入2…

K8S部署ELK(二):部署Kafka消息隊列

目錄 1. Kafka 簡介 1.1 Kafka 核心概念 &#xff08;1&#xff09;消息系統 vs. 流處理平臺 &#xff08;2&#xff09;核心組件 1.2 Kafka 核心特性 &#xff08;1&#xff09;高吞吐 & 低延遲 &#xff08;2&#xff09;持久化存儲 &#xff08;3&#xff09;分…

Rust進階-part1-智能指針概述-box指針

Rust進階[part1]_智能指針概述&box指針 智能指針概述 在Rust中,智能指針是一類特殊的數據結構,它們不僅像普通指針一樣可以引用數據,還帶有額外的元數據和功能。與普通指針不同,智能指針通常使用結構體實現,并且會實現 Deref 和 Drop 等特定的trait,以提供更強大的…

C++擴展 --- 并發支持庫(補充1)

C擴展 --- 并發支持庫&#xff08;下&#xff09;https://blog.csdn.net/Small_entreprene/article/details/149606406?fromshareblogdetail&sharetypeblogdetail&sharerId149606406&sharereferPC&sharesourceSmall_entreprene&sharefromfrom_link atom…

在Three.js中導入和添加自定義網格的最佳實踐 - 綜合指南

探索在Three.js中導入和添加自定義網格的最佳實踐。本指南涵蓋增強 3D 項目的技術、技巧和實際示例。 添加圖片注釋&#xff0c;不超過 140 字&#xff08;可選&#xff09; 強烈建議使用 GLTF 格式來集成 3D 幾何體&#xff0c;提供簡化的流程&#xff0c;并固有地支持動畫、…

Redis知識點(1)

目錄 Redis Redis和MySQL的區別 Redis的高可用方案 Redis可以用來做什么 Redis的數據類型 字符串 列表 哈希 集合 有序集合 Bitmap Redis為什么快呢&#xff1f; I/O多路復用 說說select,poll,epoll,kqueue,IOCP的區別 Redis為什么早期選擇單線程&#xff1f; …

使用iptables封禁惡意ip異常請求

查看后端日志發現一IP&#xff08;103.76.250.29&#xff09;頻繁請求不存在的資源路徑??&#xff08;如 /api/v1/guest/comm/config、/theme/default/assets/compoments.js 等&#xff09;&#xff0c;并伴隨對根路徑 / 的正常訪問。這種行為的可能性包括惡意掃描、自動化工…

BehaviorTree.Ros2 編譯教程

1. 源碼下載 git clone https://github.com/BehaviorTree/BehaviorTree.ROS2.git2. 編譯過程 源碼中有3個項目: btcpp_ros2_interfacesbtcpp_ros2_interfacesbtcpp_ros2_samples 2.1 編譯btcpp_ros2_interfaces: colcon --packages-select btcpp_ros2_interfaces2.2 編譯 …

AR智能巡檢系統:制造業設備管理的效率革新

隨著工業4.0和數字化轉型的加速&#xff0c;設備管理在制造業、能源、交通等關鍵領域的重要性愈發凸顯。傳統設備巡檢依賴人工記錄和紙質報告&#xff0c;不僅效率低下&#xff0c;還容易因人為疏忽導致數據錯誤或安全隱患。然而&#xff0c;增強現實&#xff08;AR www.teamhe…

破解海外倉客戶響應難題:自動化系統是關鍵

在跨境電商蓬勃發展的當下&#xff0c;海外倉作為連接賣家與終端消費者的重要樞紐&#xff0c;其服務效率直接影響著賣家的運營成果。其中&#xff0c;即時客戶響應一直是行業痛點&#xff0c;尤其對中小型海外倉而言&#xff0c;單純依靠人力維持全天候服務意味著高昂的成本壓…

PyTorch基礎——張量計算

文章目錄PyTorch基礎——張量計算1 什么是張量計算&#xff1f;2 基本算術運算2.1 加法運算2.1.2 torch.add2.1.3 a.add(b) 與 a.add_(b)a.add(b) 方法a.add_(b) 方法核心區別2.2 減法運算2.2.1 toch.sub()2.2.2 a.sub(b) 和a.sub_(b)a.sub(b) 方法a.sub_(b) 方法核心區別使用建…