b9a0python程序設(shè)計(jì)復(fù)習(xí)_第1頁
b9a0python程序設(shè)計(jì)復(fù)習(xí)_第2頁
b9a0python程序設(shè)計(jì)復(fù)習(xí)_第3頁
b9a0python程序設(shè)計(jì)復(fù)習(xí)_第4頁
b9a0python程序設(shè)計(jì)復(fù)習(xí)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python程序設(shè)計(jì)復(fù)習(xí)考試時(shí)間地點(diǎn)COMP110042.01

Python程序設(shè)計(jì)時(shí)間:6月4日晚上20:15-21:45地點(diǎn):H4504考試考試方式:閉卷考試題型選擇題程序改錯(cuò)程序填空編程題第1章基礎(chǔ)知識(shí):對(duì)象模型1.4 Python基礎(chǔ)知識(shí)Python對(duì)象:任何數(shù)據(jù)都是對(duì)象ID:該對(duì)象的唯一標(biāo)識(shí),內(nèi)部表示方式,用戶一般不用關(guān)心其具體取值Type:對(duì)象的類型,決定了其取值范圍以及支持的運(yùn)算Value:對(duì)象的取值,mutable和immutable對(duì)象(變量)名字:表示對(duì)于某個(gè)對(duì)象的引用(reference)name與object之間的綁定一般通過賦值語句來完成name可以屬于不同的命名空間namespace(模塊、函數(shù))所謂name的類型實(shí)際上指的是name所指向的對(duì)象的類型:無需預(yù)先聲明name的類型名字出現(xiàn)在RHS表示引用該名字指向?qū)ο蟮闹得殖霈F(xiàn)在LHS表示將RHS計(jì)算后得到的對(duì)象與名字綁定起來解釋器會(huì)自動(dòng)回收那些不再有名字綁定的對(duì)象可以通過del語句解除名字與對(duì)象的綁定第1章基礎(chǔ)知識(shí):合法的變量名什么是一個(gè)合法的變量名?必須以字母或下劃線開頭,其后的字符可以是字母、下劃線或數(shù)字以下劃線開頭的變量在Python中有特殊含義變量名中不能有空格以及標(biāo)點(diǎn)符號(hào)(括號(hào)、引號(hào)、逗號(hào)、斜線、反 斜線、冒號(hào)、句號(hào)、問號(hào)等)英文字母的大小寫敏感,例如student和Student是不同的變量一些特殊的標(biāo)識(shí)符保留為Python關(guān)鍵字,不能用作變量名第1章基礎(chǔ)知識(shí):數(shù)字類型與運(yùn)算數(shù)字:整數(shù)(int)、浮點(diǎn)數(shù)(float)、復(fù)數(shù)(complex)、布爾(bool)算術(shù)運(yùn)算符:除法運(yùn)算:/:浮點(diǎn)除法或真除法,結(jié)果為浮點(diǎn)數(shù)//:整除法,如果都為整數(shù),則結(jié)果為整數(shù),如果其中有浮點(diǎn)數(shù)則結(jié)果為浮點(diǎn)數(shù)取余(求模)運(yùn)算:可用于判斷是否整除,與//結(jié)合在一起來獲得整數(shù)的各位數(shù)字冪運(yùn)算:**除/運(yùn)算外,兩個(gè)不同數(shù)字類型之間的運(yùn)算進(jìn)行類型提升,int

float

complex比較運(yùn)算符: <

<=

==

!= >

>=比較運(yùn)算符可以連用:

x

<y

<

z, x<y

>

z內(nèi)置數(shù)學(xué)函數(shù):divmod、max、min、sum等math模塊:sqrt、log等第1章基礎(chǔ)知識(shí):輸入輸出輸入輸出:input(prompt):注意返回的是str,可能需要通過int/float等轉(zhuǎn)換為數(shù)字類型的對(duì)象print(value1,value2,…,sep='',end='\n',file=sys.stdout):注意sep和end的含義第1章基礎(chǔ)知識(shí):模塊模塊導(dǎo)入:import

module

[asalias]如果該module首次導(dǎo)入,尋找模塊源文件,加載模塊,創(chuàng)建模塊對(duì)象module或者alias與該模塊對(duì)應(yīng)的模塊對(duì)象綁定from

moduleimport

obj

[as

alias]:

從模塊中導(dǎo)入特定的對(duì)象,即obj與對(duì)象綁定from

module

import

*模塊的

name

屬性:作為script運(yùn)行時(shí),

name

等于'

main

'否則被import時(shí),

name

為模塊的名字第2章Python序列:序列概述無序和有序:set、dict為無序序列l(wèi)ist、tuple、str為有序序列:可以通過下標(biāo)、切片等來訪問序列中的元素str的元素為單個(gè)字符,而list、tuple、set、dict的元素可以是其它

python對(duì)象set要求其元素為可hashable的不可變對(duì)象dict要求其key為可hashable的不可變對(duì)象可變和不可變:list、set、dict為可變序列tuple、str為不可變序列,其中tuple為元素不可添加、刪除、修改,但是其元素所指向的對(duì)象本身的值可以修改第2章Python序列:序列創(chuàng)建list、tuple、dict、set各個(gè)序列的定義方式構(gòu)造函數(shù)的方法:list([iterable])、tuple、dict、set其中dict傳遞的參數(shù)為iterable時(shí)要求每個(gè)元素必須包括兩個(gè)子元素dict(**kwargs)也可以采用關(guān)鍵字參數(shù),參數(shù)名作為key,值作為value序列中的元素作為key,值缺省為Nonedict.fromkeys(seq[,value]):Literal:分別為[]、()、{}、{}元素中間用,分割考慮到()也可用于表達(dá)式,如果只有一個(gè)元素時(shí),添加逗號(hào),即(1,)dict和set都采用{},因此空set不能用literal定義,而是set()dict的每個(gè)元素用key:value的形式表示,key可以是任意immutable對(duì)象,要求唯一即可,value可以是任意python對(duì)象第2章Python序列:rangerange(stop):range(start,stop[,step])返回一個(gè)range對(duì)象,可產(chǎn)生一系列的整數(shù),從start(缺省為0) 開始,直到stop為止(不包括),step為步長,缺省為1第2章Python序列:下標(biāo)和切片有序?qū)ο蟮南聵?biāo):下標(biāo)從0開始,到len(s)-1為止負(fù)數(shù)下標(biāo)從-1開始到–len(s)為止,與正數(shù)下標(biāo)的關(guān)系為加上len(s)切片訪問:start:stop:step

start為哪個(gè)下標(biāo)開始,缺省為0,stop為到哪個(gè)下標(biāo)為止(但不包括該下標(biāo)),缺省為長度,step為步長,缺省為1start和stop都可以采用正數(shù)或者負(fù)數(shù)下標(biāo),注意不在合法下標(biāo)范圍時(shí)分別等同于0或者len(s)step為負(fù)時(shí),表示從start對(duì)應(yīng)的元素開始往前,直到stop為止切片出現(xiàn)在RHS時(shí)表示返回的是原列表的相應(yīng)元素組成的新的序列對(duì)象,比如new_lst=lst[:]可以使用切片來原地修改列表內(nèi)容01234[0,5)1020304050len(s)=5-5-4-3-2-1[-5,0)第2章Python序列:有序序列的操作有序序列支持:下標(biāo)和切片成員關(guān)系判斷:in not

inindex和count,返回元素在序列中的下標(biāo)和出現(xiàn)次數(shù),在不存在時(shí)會(huì) 拋出ValueError運(yùn)算符:?+

創(chuàng)建新的序列,兩個(gè)序列元素合并?+=原地合并序列*

其中一個(gè)參數(shù)為整數(shù),表示重復(fù)序列的元素比較運(yùn)算:同種類型的對(duì)象的比較,但注意數(shù)字類型可以進(jìn)行類型提升:1<1.45不是所有的對(duì)象都支持比較,比如complex、dict不支持序列的比較為對(duì)應(yīng)元素的比較,直到確定關(guān)系為止:

(2,3)

<

(2,4,5) (2,4)

<(2,4,5)第2章Python序列:有序序列的常用內(nèi)置函數(shù)reversed(iterable):逆序后的新的listsorted(iterable,reverse=False,key=None):排序后返回新的listlen(iterable)、max(iterable)、min(iterable):長度,最大值,最小 值sum(iterable):數(shù)值元素的和enumerate(iterable[,start]):返回枚舉對(duì)象,每次返回包含下標(biāo)和 值的元組zip(iter1,iter2…):

返回zip對(duì)象,每次返回各個(gè)可迭代對(duì)象中對(duì)應(yīng) 的相同位置的各個(gè)元素組成的元組第2章Python序列:列表的常用操作list.clear():清空所有元素list.append(x)和list.extend(L):注意這兩者的區(qū)別list.insert(index,x)list.remove(x),

list.pop([index]):del

list, del

list[index] del

list[slice]list.reverse()和list.sort():原地逆序和排序操作,與內(nèi)置函數(shù)

reversed和sorted的區(qū)別第2章Python序列:列表解析式和生成式[表達(dá)式

for

變量

in列表] 或者

[表達(dá)式

for變量

in

列表

if

條件]對(duì)列表中的每個(gè)元素,在滿足條件的情況下,計(jì)算表達(dá)式的值作為新列表的元素表達(dá)式可以包括函數(shù)調(diào)用等[x**2

for

x

inrange(10)][weapon.strip()

for

weapon

in

freshfruit][(x,y,z)

for

z

in

range(100)

for

y

in

range(1,z)

for

x

in

range(1,y)

if

x*x+

y*y==

z*z]第2章Python序列:序列解包LHS

=RHSLHS為對(duì)象引用,變量或者下標(biāo)切片描述的多個(gè)list元素LHS允許出現(xiàn)*seq,但只允許出現(xiàn)一次該引用前后的變量一一對(duì)應(yīng)賦值后,剩余的變量轉(zhuǎn)變?yōu)閘ist然后賦予該引用RHS可以是任何可迭代對(duì)象,包括tuple、list、dict、range、str等,逐個(gè)取該序列的元素賦予左邊對(duì)應(yīng)位置的對(duì)象引用除*seq以外的LHS的變量引用與RHS的元素必須一一對(duì)應(yīng)。與eval結(jié)合在一起進(jìn)行輸入:a,b,c=eval(input('Please

inputa,b,c'))a,b,c=[1,2,3]a,*b,c=range(1,7)for

index,value

inenumerate(dList):print('%d:%s'%(index,value))第2章Python序列:字典d.get(key[,default]):key不存在時(shí)返回0字典元素的添加與修改:d[key]=valued.update(another)字典元素的刪除:del

d[key]popitem,pop,clear等字典元素的讀取:d[key]以鍵作為下標(biāo)可以訪問字典元素,若鍵不存在則拋出異 常KeyErrord[key]

=

d.get(key,0)+

1if

key

ind:d[key]

+=

1else:d[key]

=

1try:d[key]

+=

1except

KeyError:d[key]

=

1第2章Python序列:字典的迭代keys():返回可迭代對(duì)象,元素為字典中的所有keyvalues():元素為所有valueitems():元素為(key,value)元組iter(d)

or for

key

in

d:

等價(jià)于iter(d.keys()):元素為所有key第2章Python序列:set集合的特性:不重復(fù)且無序,元素必須為不可變對(duì)象?

==

!=

in notin len

….第3章選擇與循環(huán):條件表達(dá)式任何表達(dá)式都是條件表達(dá)式,可用于選擇和循環(huán)結(jié)構(gòu)中不能包含賦值類語句條件表達(dá)式的真值判斷:False:值為0、None、空序列對(duì)象(長度為0)True:非0、非空對(duì)象邏輯運(yùn)算符:and

or not,注意短路邏輯and:返回第一個(gè)假(None、空或者數(shù)值0)的表達(dá)式或者最后一個(gè)表 達(dá)式or:返回第一個(gè)真(非None、非空或者非0)的表達(dá)式或者最后一 個(gè)表達(dá)式第3章選擇與循環(huán):選擇結(jié)構(gòu)if

expr:statement1elif

expr2:

#前面條件不滿足時(shí)

statement2elif

expr3:statement3else:statement_else選擇結(jié)構(gòu)的嵌套,注意縮進(jìn)第3章選擇與循環(huán):循環(huán)結(jié)構(gòu)break和continue語句的含義else在什么情況下執(zhí)行,沒有break時(shí)兩個(gè)循環(huán)之間的改寫理解和掌握循環(huán)嵌套while條件表達(dá)式:循環(huán)體if

條件表達(dá)式1:

break #可選#

Exit

loop

now,

skip

else

if

presentif

條件表達(dá)式2:

continue #

可選#

Go

to

top

of

loop

nowelse: #可選#

Run

if

we

didn't

hit

a

'break'else子句for

target

in

iterable:

#

Assign

iterable

items

totarget循環(huán)體if

條件表達(dá)式1:

break#可選#

Exit

loop

now,

skip

else

if

presentif

條件表達(dá)式2:

continue#可選#go

to

top

of

loop

nowelse: #可選else子句#If

we

didn't

hit

a

'break'第3章選擇與循環(huán)問題求解:首先確定步驟將每個(gè)步驟轉(zhuǎn)變?yōu)閜ython代碼對(duì)于多分支情況:確定條件表達(dá)式以及相應(yīng)分支對(duì)于要執(zhí)行多次情況:采用循環(huán)結(jié)構(gòu)確定循環(huán)結(jié)束條件: for

或者

whileexpr確定循環(huán)中止條件:break確定循環(huán)繼續(xù)條件:continue第4章字符串與正則表達(dá)式str

literal:單引號(hào)、雙引號(hào)、三單雙引號(hào)(可以跨越多行)字符轉(zhuǎn)義:\n\t

\\

\'原始字符串r'c:\user\xxx\sample.txt'字符串運(yùn)算:

+

*

%%和format方法需要了解常用字符串相關(guān)內(nèi)置函數(shù):chr、ordint/float/str第4章字符串與正則表達(dá)式:方法通用序列方法:下標(biāo)、切片、in、len、sorted、reversed、enumerate、zip去空白字符:

strip([chars])

lstrip([chars])

rstrip([chars])字符串類型判斷:

isdigit isalpha

isspace islower

isupper大小寫轉(zhuǎn)換:lower

upper測(cè)試和查找:startswith(prefix)

endswith(prefix)count(sub) index(sub)

rindex(sub)find(sub)

rfind(sub):注意find和index的區(qū)別,是否拋出異常拆分和組合:

split() rsplit(

)

split(sep)

join(iterable)填充和對(duì)齊: center

ljust

rjust(width[,fillchar])翻譯和轉(zhuǎn)換第4章字符串與正則表達(dá)式:正則表達(dá)式的元字符集:

^$

*

+?|{}[](

)字符類:

[xyz]

[^xyz]

[a-z][^m-z]預(yù)定義字符類:.\d\D

\w

\W

\s\S邊界匹配符:^$ \b

\B重復(fù)限定符:

?*

+

{n}

{n,}

{n,m}分組符()

\1

\name選擇符|第5章函數(shù)設(shè)計(jì)與使用def

func(…): 生成函數(shù)對(duì)象,賦值給func實(shí)參與形參的定義和匹配形參:位置形參、缺省值形參、可變長度形參、僅關(guān)鍵字傳遞的形參實(shí)參:位置實(shí)參、關(guān)鍵字實(shí)參順序:都是位置形式在前首先匹配位置實(shí)參,然后是關(guān)鍵字實(shí)參,接下來剩下的位置實(shí)參收集到可變長度位置形參tuple,剩下的關(guān)鍵字實(shí)參收集到可變長度dict形參,最后是缺省值形參函數(shù)調(diào)用采用pass

by

assignment的傳遞機(jī)制:形參=實(shí)參形參指向?qū)崊⑺傅耐粋€(gè)對(duì)象缺省值形參:指向保存在函數(shù)對(duì)象的

defaults

屬性中的同一對(duì)象return語句,沒有時(shí)相當(dāng)于return

None函數(shù)體的第一行為字符串表達(dá)式時(shí)會(huì)被保存在函數(shù)對(duì)象的

doc

屬性中第5章函數(shù)設(shè)計(jì)與使用:參數(shù)傳遞的序列解包調(diào)用時(shí)實(shí)參進(jìn)行序列解包:*seq:

seq的元素變?yōu)槲恢脤?shí)參**dict:

dict的元素變?yōu)殛P(guān)鍵字實(shí)參, key1

=

value1,

key2=value2第5章函數(shù)設(shè)計(jì)與使用:變量作用域命名空間(namespace)是名字(變量)和對(duì)象的映射,python采用dict來實(shí)現(xiàn)全局命名空間指的是在模塊內(nèi)部定義但是不在函數(shù)內(nèi)部定義的名字空間局部命名空間指的是在函數(shù)內(nèi)部定義的名字空間允許嵌套函數(shù),但不作要求一個(gè)變量(名字)如何加入到某個(gè)名字空間?只有定義(賦值)、global和nonlocal(不作要求)才會(huì)建立或者改變變量的作用域(namespace)賦值語句在訪問變量之后不會(huì)影響變量的名字空間的改變第5章函數(shù)設(shè)計(jì)與使用:變量作用域名字與對(duì)象的綁定采用late

binding,即調(diào)用時(shí)才綁定非全局的自由變量在外層函數(shù)返回時(shí)綁定,不作要求名字的命名空間(作用域)搜索:LEGB規(guī)則掌握LG規(guī)則就可以,即首先搜索函數(shù)內(nèi)部的本地命名空間,如果沒有則搜索全局的命名空間第7章:文件操作:打開和關(guān)閉f

=

open(file,

mode='r',

buffering=-1,

encoding=None)file:如果有目錄部分時(shí)可采用raw

stringmode:不包括時(shí)缺省為打開文本文件讀rwxa:

取其中一種模式tb+:可選的tb:文本和二進(jìn)制模式?+:讀寫模式f.close():關(guān)閉文件釋放資源文件操作的三種模式:open +

process

+

closeopen

+

try: process

+

finally:+

closewith

open

as

handler:

+process,系統(tǒng)自動(dòng)close釋放資源第7章:文件操作:讀寫read、readline和readlines的區(qū)別:read指定長度或者全部讀取到strreadline:讀取一行到str(換行符包括在內(nèi))readlines:讀取所有行,返回字符串列表write、writelineswrite:寫字符串writelines:字符串列表中的每個(gè)字符串寫入,注意中間不會(huì)添加換行符第8章異常處理結(jié)構(gòu)與程序調(diào)試異常:導(dǎo)致程序運(yùn)行出錯(cuò)而跳出正??刂屏鳟惓L幚恚翰东@異常,進(jìn)行相應(yīng)的處理常用的異常類:StopIterationZeroDivisionError: 除數(shù)為0NameErrorSyntaxErrorIndexErrorValueErrorKeyErrorAssertionErrorEOFError:輸入結(jié)束時(shí)觸發(fā)異常處理結(jié)構(gòu)了解出現(xiàn)異常時(shí)哪些代

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論