【計算機二級Python】客觀題(總結版)
二級備賽系列博文
【計算機二級Python】客觀題(總結版)
【計算機二級Python】主觀題(總結版)
【計算機二級Python】易忘知識點總結
【計算機二級Python】階段性總結版
一、數(shù)據(jù)結構的相關知識點
算法
算法具有可行性、確定性、有窮性的基本特征;
算法是指解題方-而完整的描述;
算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止
算法的復雜度主要包括時間復雜度和空間復雜度;
算法的時間復雜度是指執(zhí)行算法所需要的計算工作量(執(zhí)行過程中所需要的基本運算次數(shù))
算法的空間復雜度是指執(zhí)行這個算法所需要的內(nèi)存空間
算法的基本要素包括數(shù)據(jù)對象的運算和操作及算法的控制結構
簡單插入排序和選擇排序法在最壞的情況下需要比較n(n-1)/2次
快速排序法比冒泡排序法的速度快
冒泡排序法是通過相鄰數(shù)據(jù)元素的交換逐步將線性表變成有序
希爾排序法屬于插入類排序法
算法是解題方-而完整的描述
算法分析的目的是:分析算法的效率以求改進
二叉樹
在深度為x的滿二叉樹中,葉子結點的個數(shù)為 2 x ? 1 2^{x-1} 2x?1個
在深度為7的滿二叉樹中,結點個數(shù)總共是 2 7 ? 1 {2^7-1} 27?1
設一顆完全二叉樹共有699個結點,則該節(jié)點的葉子節(jié)點數(shù)是350(N+1/2)
二叉樹包含度為0的結點、度為1的結點、度為2的結點(度為0的節(jié)點總是比度為2的結點多一個,度為1的節(jié)點=全部節(jié)點-度為1的-度為2的)
二叉樹的前序遍歷是指先訪問根節(jié)點 -> 遍歷左子樹 -> 遍歷右子樹
二叉樹的遍歷可以分為三種:前序遍歷、中序遍歷、后序遍歷
后序遍歷二叉樹的過程是一個遞歸的過程
二叉樹的遍歷是指不重復地訪問二叉樹中的所有結點
二叉樹是一種非線性結構
二叉樹具有兩個特點:非空二叉樹只有一個根結點;每一個結點最多有兩棵子樹,且分別稱為該結點的左子樹與右子樹
數(shù)據(jù)結構
數(shù)據(jù)結構指相互有關聯(lián)的數(shù)據(jù)元素的集合
在數(shù)據(jù)結構中,從邏輯上可以把數(shù)據(jù)結構分成????????????????????????????????????????????????????????????????????????????????????????????????線性結構和非線性結構
數(shù)據(jù)的邏輯結構反應數(shù)據(jù)之間的對應關系,與存儲結構并不是一一對應的
用樹形結構表示實體之間聯(lián)系的模型是:層次模型
循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定
數(shù)據(jù)的邏輯結構是反映數(shù)據(jù)元素之間邏輯關系的數(shù)據(jù)結構
對長度為n的線性表進行順序查找,在最壞的情況下所需要的比較次數(shù)是n
只有一個根節(jié)點的數(shù)據(jù)結構不一定是線性結構
查找是指在一個給定的數(shù)據(jù)結構中查找某個特定的元素
二分查找只適用于順序存儲的有序表
如果采用鏈式存儲結構的有序線性表,只能用順序查找
線性數(shù)據(jù)結構:線性表、隊列、棧!
二叉樹不是線性數(shù)據(jù)結構
隊列是先進先出的線性表,而棧是先進后出的線性表,兩個的共同點是:只允許在端點處插入和刪除數(shù)據(jù)
歸并排序是要求內(nèi)存量最大的
數(shù)據(jù)的邏輯結構是與所使用的計算機無關的
順序存儲結構是隨機存取的存儲結構
鏈式存儲結構是順序存取的存儲結構
在單鏈表中,增加表頭節(jié)點的目的是:方便運算的實現(xiàn)
已知數(shù)據(jù)表A中每個元素距其位置不遠,為節(jié)省時間,宜采用的算法是:直接插入排序
用鏈表表示線性表的優(yōu)點是:????????????????????????????????????????????????????????????????????????????????????????????????便于插入和刪除操作
關系模型采用二維表來表示
表框架由N個命名的屬性組成,每個屬性有一個取值范圍稱為值域
二維表由表框架及表的元組組成
數(shù)據(jù)是現(xiàn)實世界符號的抽象,數(shù)據(jù)模型是數(shù)據(jù)特征的抽象
數(shù)據(jù)模型描述的內(nèi)容有三個部分:數(shù)據(jù)結構、數(shù)據(jù)操作和數(shù)據(jù)約束
程序設計
結構化程序設計的原則是:逐步求精->自頂向下->模塊化
與信息隱蔽的概念直接相關的概念是 - 模塊獨立性
為了使模塊盡可能獨立,模塊的內(nèi)聚程度要盡量高,且各模塊間的耦合程度要盡量弱
數(shù)據(jù)獨立性是數(shù)據(jù)與程序間的互不依賴性
數(shù)據(jù)流圖(DFD)是結構化方法的需求分析工具
在黑盒測試中,測試用例的主要根據(jù)是-程序外部功能
結構化程序設計主要強調(diào)的是:程序的易讀性
結構分析常用的是:判定樹、數(shù)據(jù)字典、數(shù)據(jù)流圖,沒有PAD圖
源代碼的文檔化包括:符號命名要有意義、正確的程序注釋、良好的視覺組織
在結構化設計方法中,生成的結構圖中,帶有箭頭的連線表示:模塊之間的調(diào)用關系
在面向?qū)ο蟮某绦蛟O計中,各個對象之間相對獨立,相互依賴性小
面向?qū)ο?/p>
繼承是指類之間共享屬性和操作的機制
Python 3.x 解釋器內(nèi)部采用完全面向?qū)ο蟮姆绞綄崿F(xiàn)
面向?qū)ο蠓椒ㄅc人類習慣的思維方法一致
面向?qū)ο蠓椒芍赜眯院?/p>
對象是屬性和方法的封裝體
對象間的通信靠消息傳遞
操作是對象的動態(tài)性屬性
軟件工程
軟件工程是應用于計算機軟件的定義、開發(fā)和維護的一整套方案、工具、文檔和實踐標準和工序
軟件設計包括軟件的結構、數(shù)據(jù)接口和過程設計
過程設計包括:系統(tǒng)結構部件轉(zhuǎn)換成軟件的過程描述
系統(tǒng)結構部件轉(zhuǎn)換成軟件的過程描述
軟件是程序、數(shù)據(jù)與相關文檔的集合
軟件工程的主要思想是強調(diào)軟件開發(fā)過程中需要應用工程化原則
軟件工程設計工具:程序流程圖、N-S、PAD、HIPO、判定表、PDL(偽碼)
軟件危機體現(xiàn)在三個方面:生產(chǎn)率低、質(zhì)量難以控制、成本不斷提高
軟件測試的主要目的是發(fā)現(xiàn)程序中的錯誤
軟件生命周期中開發(fā)階段任務是:詳細設計、軟件測試、概要設計
軟件調(diào)試的關鍵在于腿短程序內(nèi)部的錯誤位置和原因
軟件調(diào)試可以分為靜態(tài)調(diào)試和動態(tài)調(diào)試
軟件調(diào)試的主要方法有強行排錯法、回溯法、原因排除法
軟件交付使用后還需要進行維護
需求分析階段的任務是:需求規(guī)格說明書評審、確定軟件系統(tǒng)的功能需求、性能需求
在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是:需求設計
軟件測試實施步驟中包括:單元測試、確認測試和集成測試
用于檢測軟件產(chǎn)品是否符合需求定義的是:確認測試
軟件生命周期是指軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程
數(shù)據(jù)庫
數(shù)據(jù)庫技術的根本目標是要解決數(shù)據(jù)共享的問題
數(shù)據(jù)庫系統(tǒng)的核心是:數(shù)據(jù)庫管理系統(tǒng)
在數(shù)據(jù)庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示的階段是:概念設計階段
數(shù)據(jù)庫設計的四個階段按順序為:概念設計、需求分析、邏輯設計、物理設計
概念設計過程:由底向上、自頂向下、由內(nèi)向外
數(shù)據(jù)庫設計可以采用生命周期法
數(shù)據(jù)庫設計是數(shù)據(jù)庫應用的核心
數(shù)據(jù)庫設計的基本任務是根據(jù)用戶對象的信息需求、處理需求和數(shù)據(jù)庫的支持環(huán)境設計出數(shù)據(jù)模式
當對關系R和S進行自然連接時,要求R和S含有一個或者多個共有的:屬性
能夠給出數(shù)據(jù)庫物理存儲結構與物理存取方法的是:內(nèi)模式
在數(shù)據(jù)庫中,索引屬于:內(nèi)模式
數(shù)據(jù)庫設計中,反應用戶對數(shù)據(jù)要求的模式是:外模式
描述單個用戶使用的數(shù)據(jù)視圖是:外模式
數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余
數(shù)據(jù)庫設計內(nèi)容的兩個方面包括:概念設計和邏輯設計
關系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關系運算是????????????????????????????????????????????????????????????????????????????????????????????????:選擇、投影、連接
設關系R是4元關系,關系S是一個5元關系,關系T是R與S的笛卡兒積,即T=R×S,則T是9元關系
數(shù)據(jù)庫處理的最小單位是:數(shù)據(jù)項
數(shù)據(jù)庫是一個結構化的數(shù)據(jù)集合
文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)主要區(qū)別的:數(shù)據(jù)庫系統(tǒng)具有特定的數(shù)據(jù)模型
數(shù)據(jù)庫描述內(nèi)容:數(shù)據(jù)操作、數(shù)據(jù)結構、數(shù)據(jù)約束
層次型、網(wǎng)狀型和關系型數(shù)據(jù)庫劃分的原則是:數(shù)據(jù)之間的聯(lián)系方式
在一個關系中,如果存在多個屬性(或?qū)傩越M)都能用來唯一標識該關系的元組,且其任何子集都不具有這一特性。該關系的這些屬性(或?qū)傩越M)被定義為候選碼
某個數(shù)據(jù)約束規(guī)則為:設屬性A是關系R的主屬性,則屬性A不能取空值。則該數(shù)據(jù)約束規(guī)則的名稱是:實體完整性規(guī)則
將E-R圖轉(zhuǎn)換為關系模式時,可以表示實體與聯(lián)系的是關系
在E-Rt圖中,用來表示聯(lián)系的圖形是:菱形
屬于概念數(shù)據(jù)模型的是:關系
數(shù)據(jù)模型按不同應用層次分為三種類型:概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型和物理數(shù)據(jù)模型
DML是數(shù)據(jù)操縱語言
DDL是數(shù)據(jù)定義語言
DCL是數(shù)據(jù)控制語言
對數(shù)據(jù)庫進行規(guī)劃、設計、維護、監(jiān)視等管理工作的人員稱為數(shù)據(jù)庫管理員
數(shù)據(jù)庫管理員對多個應用的數(shù)據(jù)需求作全面規(guī)劃、設計與集成
數(shù)據(jù)庫管理員需要完成數(shù)據(jù)庫維護,完成對數(shù)據(jù)庫中數(shù)據(jù)的安全性、完整性、并發(fā)性控制及系統(tǒng)恢復、數(shù)據(jù)定期轉(zhuǎn)存等工作
其他
關系表中的每一橫行成為元組
PFD圖中用箭頭表示控制流
二、python相關
編程語言基礎
靜態(tài)語言采用編譯方式執(zhí)行,腳本語言采用解釋方式執(zhí)行;
編譯是將源代碼轉(zhuǎn)換成目標代碼的過程;
解釋是將源代碼逐條轉(zhuǎn)換成目標代碼同時逐條運行目標代碼的過程;
C語言是靜態(tài)語言,Python語言是腳本語言
python語言特點:黏性擴展、平臺無關、強制可讀
python變量的命名特點:隨時命名、隨時賦值、隨時使用
三種基本數(shù)字類型:整數(shù)類型、浮點數(shù)類型、復數(shù)類型
程序設計的基本結構:順序、分支、循環(huán)
注意變量的命名不能以數(shù)字開頭;變量名中不允許出現(xiàn)特殊符號例如*!等
python發(fā)生異常后經(jīng)過適當?shù)奶幚砜梢岳^續(xù)運行而不崩潰;
異常語句可以與 else 和 finally 保留字配合使用
局部變量為組合數(shù)據(jù)類型且未創(chuàng)建,等同于全局變量
局部變量和全局變量是不同的變量,但可以使用global保留字在函數(shù)內(nèi)部使用全局變量
局部變量是函數(shù)內(nèi)部的占位符,與全局變量可能重名但不同
假設函數(shù)中不包括global保留字,對于改變參數(shù)值的方法:參數(shù)是list類型時,改變原參數(shù)的值;參數(shù)是int類型時,不改變原參數(shù)的值;參數(shù)是組合類型(可變對象)時,改變原參數(shù)的值
程序設計基礎
max是python的內(nèi)置函數(shù),所以應該這樣用print(max(listV)),而這樣用是錯的print(listV.max())
執(zhí)行 eval(“Hello”) 和執(zhí)行 eval(" ‘Hello’ ") 得到不相同的結果,前者是錯誤的
fo.write(",".join(ls)+ "\n")數(shù)據(jù)之間用逗號分隔開,最后加一個換行
浮點數(shù)0.0和證書0具有相同的值,硬件執(zhí)行單元,計算機指令處理方法和數(shù)據(jù)類型均不同
關于random.uniform(a,b)的作用:生成一個[a, b]之間的隨機小數(shù)
range(1,4):是1~3
sorted(a,reverse = True)降序排列
python小知識
復數(shù)的虛數(shù)部分通過后綴“J”或者“j”來表示
組合數(shù)據(jù)類型可以分為 3 類:序列類型、集合類型和映射類型
python的索引下標從0開始
列表的切片[n??k] 從n到m,步長為k
Python 語言要求所有浮點數(shù)必須帶有小數(shù)部分
x**y表示x的y次冪,其中,y也可以是整數(shù)
x // y x與y之整數(shù)商,即:不大于x與y之商的最大整數(shù)
python的字符編碼均采用Unicode編碼
chr(x) 和 ord(x) 函數(shù)用于在單字符和 Unicode 編碼值之間進行轉(zhuǎn)換
字符串比較規(guī)則:從第一個字符開始,一一比較編碼大小,當一個字符串全部字符和另一個字符串前部分字符相同時,長度長的字符串為大
關于函數(shù)的可變參數(shù),可變參數(shù)*args傳入函數(shù)時存儲的類型是tuple
f = lambda x,y:x+y 執(zhí)行后,f的類型為function
保留字(后面附有所有的保留字表)
python的33個保留字
do不是python的保留字
Python 使用 def 保留字定義一個函數(shù)
序列類型
序列類型是一維元素向量,元素之間存在先后關系,通過序號訪問
str、tuple 和 list 類型都屬于序列類型
列表類型用以表示一維和二維數(shù)據(jù)
字典
字典是集合類型的延續(xù),各個元素并沒有順序之分
字典是可以存儲可變數(shù)量鍵值對的數(shù)據(jù)結構,鍵和值可以是任意數(shù)據(jù)類型
字典的主要用法是通過索引符號來實現(xiàn)查找與特定鍵對應的值
若想保持一個集合中元素的順序,需要使用列表,而不是元組
字典要求鍵值對中的鍵是不可改變變量類型,所以d = {[1,2]:1, [3,4]:3}不能建立字典
d.get(key, default)根據(jù)鍵信息查找并返回值信息,如果key存在則返回相應值,否則返回default
與其他組合類型一樣,字典可以遍歷循環(huán)對其元素進行遍歷for < 變量名> in < 字典名>的語法格式;其中for循環(huán)返回的變量名是字典的索引值。如果需要獲得鍵對應的值,可以在語句塊中通過get()方法獲得:
for k in d: print(" 字典的鍵和值分別是:{} 和{}".format(k, d.get(k)))
1
2
文件
考題概覽
當文件以文本文件方式打開時,讀寫按照字符串方式,采用當前計算機使用的編碼或指定編碼;
當文件以二進制文件方式打開時,讀寫按照字節(jié)流方式
writetext函數(shù)不是 Python 對文件的寫操作方法.
高維數(shù)據(jù)有鍵值對類型的數(shù)據(jù)構成,采用對象方式組織;
二維數(shù)據(jù)采用表格方式組織,對應于數(shù)學中的矩陣;
一維數(shù)據(jù)采用線性方式組織,對應于數(shù)學中的數(shù)組和集合等概念
文本文件可以看成是由行組成的組合類型,因此,可以使用遍歷循環(huán)逐行遍歷文件
如果一個文本文件從網(wǎng)絡中獲得,增加encoding參數(shù),指定編碼方式打開;如果python程序生成了一個文件,并再次打開,則不需要指定encoding參數(shù)。
操作相關
創(chuàng)建寫模式’x’
覆蓋寫模式w
只讀模式r
追加寫模式a
f.read()是最常用的一次性讀入文件的函數(shù),其結果是一個字符串;
f.readlines()也是一次性讀入文件的函數(shù),其結果是一個列表
f.write(s) 向文件寫入一個字符串或字節(jié)流(要顯式的使用’\n’對寫入文本進行分
行)
f.writelines(lines)將一個元素為字符串的列表寫入文件
f.seek(offset) 改變當前文件操作指針的位置 0-開頭 2-結尾
CSV文件
CSV文件采用純文本格式,通過單一編碼表示字符
以行為單位,開頭不留空行
每行表示一個一維數(shù)據(jù),多行表示多維數(shù)據(jù)
以逗號分隔每列數(shù)據(jù),列數(shù)據(jù)為空也要保留逗號
整個CSV文件是一個二維數(shù)據(jù)
CSV文件格式是一種通用的文件格式,應用于程序之間轉(zhuǎn)移表格數(shù)據(jù)
CSV文件的每一行是一維數(shù)據(jù),可以使用Python中的列表類型表示
time標準庫
time.strftime()函數(shù)是時間格式化最有效的方法,幾乎可以以任何通用格式輸出時間。該方法利用一個格式字符串,對時間格式進行表達
time.perf_counter()返回一個CPU級別的精確時間計數(shù)值,單位是秒。由于這個計數(shù)值起點不確定,連續(xù)調(diào)用才有意義
time.sleep(5) 推遲調(diào)用線程的運行,單位為秒
第三方庫
考題概覽
數(shù)據(jù)分析的相關第三方庫:numpy;scipy;pandas
python用于界面開發(fā)的第三方庫有:pygtk、pyqt、wxpython
數(shù)據(jù)分析的第三方庫有:numpy、pandas
數(shù)據(jù)可視化方向的第三方庫有:mayavi2
適用于web開發(fā)的第三方庫有:pyramid、flask、Django
網(wǎng)絡爬蟲的第三方庫有:scrapy
jieba
三種模式:精確模式、全模式、搜索引擎模式
jieba.cut(s)是精確模式,返回一個可迭代的數(shù)據(jù)類型;
jieba.lcut(s)是精確模式,返回列表類型;沒有冗余度;
jieba.lcut(s, cut_all = True)用于全模式,返回的是列表;冗余度最大
jieba.lcut_for_search(s)用于搜索引擎模式(首先執(zhí)行精確模式,然后再對其中長詞繼續(xù)切分),返回的是列表;傾向于尋找短詞語;具有一定的冗余度,但是比全模式冗余度小
jieba.add_word()函數(shù),用來向jieba詞庫增加新的單詞
Python 數(shù)據(jù)庫 數(shù)據(jù)結構
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。