版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
...wd......wd......wd...快速改造:根基知識1.2交互式解釋器在IDLE編輯器,在提示符后輸入help然后按回車;也可以按下F1獲得有關(guān)IDLE的幫助信息1.4數(shù)字和表達式1/2返回0,整除除法;1.0/2返回0.5,用一個或者多個包含小數(shù)點的數(shù)字參與計算。另外改變除法的執(zhí)行方式:from_future_importdivision//可以實現(xiàn)整除,1.0//2.0返回0.0%取余數(shù);**冪運算;>>>1/20>>>1.0/20.5>>>1.0//2.00.0>>>10%31>>>9**(1/2)1>>>9**(1.0/2)3.0>>>2.75%0.50.25>>>-9%43>>>-3%21>>>-3/2-21.4.1長整數(shù)普通整數(shù)不能大于2147483647也不能小于-2147483648,假設(shè)更大的數(shù),可以使用長整數(shù)。長整數(shù)結(jié)尾有個L,理論上小寫也可以,不過為了便于識別,盡可能用大寫。1.4.2十六進制和八進制0XAF返回175,十六進制;010返回8,八進制>>>0xAF175>>>01081.5變量包含字母、數(shù)字和下劃線。首字母不能是數(shù)字開頭。1.8函數(shù)Pow計算乘方:pow〔2,3〕,2**3均返回8;pow等標準函數(shù)稱為內(nèi)建函數(shù)。Abs(-10)求絕對值,返回10;round〔1.0/2.0〕返回1.0,把浮點數(shù)四舍五入為最接近的整數(shù)值。>>>pow(2,3)8>>>2**38>>>abs(-10)10>>>round(1.0/2.0)1.0>>>round(8.06,2)8.06>>>round(8.06,1)8.11.9模塊import>>>importmath>>>math.floor(8.8)向下取整8.0>>>math.ceil(8.8)向上取整9.0>>>int(math.ceil(32.1))33>>>int(32.9)32>>>flo=math.floor>>>flo(33.9)33.0使用了from模塊import函數(shù),這種方式的import命令之后,就可以直接使用函數(shù),而不需要使用模塊名最為前綴了。但是要注意在不同模塊引用,可能導(dǎo)致函數(shù)沖突。>>>frommathimportsqrt>>>sqrt(9)3.0>>>1.9.1cmath和復(fù)數(shù)nan-notanumber返回的結(jié)果Cmath即complexmath復(fù)數(shù)模塊>>>importcmath>>>cmath.sqrt(-1)1j返回的1j是個虛數(shù),虛數(shù)以j結(jié)尾;這里沒有使用fromcmathimportsqrt,防止與math的sqrt沖突。1.10.3注釋符號:#1.11字符串,使用〞\〞可以進展轉(zhuǎn)義。1.11.2拼接字符串>>>'Hello,''World''Hello,World'>>>'Hello,''World''Hello,World'>>>'Hello,'+'World''Hello,World'>>>'Hello,'+5Traceback(mostrecentcalllast):File"<pyshell#43>",line1,in<module>'Hello,'+5TypeError:cannotconcatenate'str'and'int'objects>>>需要保證兩邊是一樣的字符串,而有其他格式要報錯的1.11.3字符串表示str和repr-兩個均為函數(shù),事實上str是一種類型Str會將值轉(zhuǎn)換為合理形式的字符串。另外一種是通過repr函數(shù),創(chuàng)立一個字符串。Repr(x)也可以寫作`x`實現(xiàn)〔注意:`是反引號〕,python3.0中已經(jīng)不適用反引號了>>>print'hello,world'hello,world>>>printrepr('hello,world')'hello,world'>>>printstr('hello,world')hello,world>>>print1000L1000>>>1000L1000L>>>printrepr(1000L)1000L>>>printstr(1000L)1000>>>tmp=42>>>print'Thenumberis:'+tmpTraceback(mostrecentcalllast):File"<pyshell#55>",line1,in<module>print'Thenumberis:'+tmpTypeError:cannotconcatenate'str'and'int'objects>>>print'Thenumberis:'+`tmp`Thenumberis:42>>>print'Thenumberis:'+str(tmp)Thenumberis:42>>>print'Thenumberis:'+repr(tmp)Thenumberis:421.11.4input和raw_input的對比>>>name=input("What'syourname:")What'syourname:GumbyTraceback(mostrecentcalllast):File"<pyshell#60>",line1,in<module>name=input("What'syourname:")File"<string>",line1,in<module>NameError:name'Gumby'isnotdefined>>>name=input("What'syourname:")What'syourname:'Gumby'后面輸入的字符串增加了引號不報錯。>>>input('Enteranumber:')Enteranumber:33>>>name=input("What'syourname:")What'syourname:'Gumby'>>>raw_input("What'syourname:")What'syourname:Gumby'Gumby'>>>raw_input("What'syourname:")What'syourname:Gumby'Gumby'>>>raw_input('Enteranumber:')Enteranumber:3'3'>>>1.11.5長字符串、原始字符串和unicode〔1〕長字符串使用三引號;轉(zhuǎn)義的反斜杠用于行尾>>>print'hello,\world!'hello,world!>>>print'''hello,world!'''hello,world!>>>1+2+3\+410〔2〕原始字符串,對于反斜線并不會特殊對待,以r開頭,注意字符串尾部>>>print'c:\nowhere'c:owhere>>>printr'c:\nowhere'SyntaxError:invalidsyntax>>>print'c:\nowhere'c:owhere>>>printr'c:\nowhere'c:\nowhere>>>printr"Thisisillegal\"SyntaxError:EOLwhilescanningstringliteral>>>printr"Thisisillegal\\"Thisisillegal\\>>>printr"Thisisillegal""\\"Thisisillegal\〔3〕Unicode在字符串前增加前綴U>>>printu'hello,world'hello,world列表和元組序列中的每個元素被分配一個序號--即元素的位置,也被稱為索引。第一個索引為‘0’,最后一個元素可以使用-1標記2.1序列概覽Python包含6中內(nèi)建的序列:列表,元組,字符串,unicode字符串,buffer對象和xrange對象。列表和元組的主要區(qū)別:列表可以修改,元組那么不能。內(nèi)建函數(shù)返回元組。幾乎所有情況下都可以使用列表代替元組。特殊情況之一:使用元組作為字典的鍵,因為鍵不可以更改,所以不能用列表。列表的各個元素通過逗號進展分隔,寫在方括號內(nèi)。>>>edward=['EdwardGumy',42]>>>john=['JohnSmith',50]>>>database=[edward,john]>>>database[['EdwardGumy',42],['JohnSmith',50]]>>>2.2通用序列操作包括:索引,分片,加,乘以及檢查某個元素是否屬于序列的成員,除此之外還有計算長度,找出最大元素和最小元素的內(nèi)建函數(shù)。 迭代:依次對序列中的每個元素重復(fù)執(zhí)行某些操作。2.2.1索引從0開場,最后一個元素可以使用-1.索引訪問的單個元素>>>greeting="Hello">>>greeting[0]'H'>>>greeting[-1]'o'>>>four=raw_input('Year:')[3]Year:2005>>>four'5'2.2.2分片冒號:第一個元素包含在分片內(nèi),第二個元素不包含在分片內(nèi),是分片之后剩余局部的第一個元素編號。>>>num=[1,2,3,4,5,6,7,8,9,10]>>>num[3:6][4,5,6]>>>num[0:1][1]>>>num[7:10]#索引10指向第11個元素,這個元素不存在。[8,9,10]>>>num[-3:-1][8,9]>>>num[-3:0][]>>>num[-3:][8,9,10]>>>num[7:][8,9,10]>>>num[:3][1,2,3]>>>num[:]#復(fù)制整個序列[1,2,3,4,5,6,7,8,9,10]>>>num[0:10:2][1,3,5,7,9]>>>num[3:6:3][4]>>>num[::4][1,5,9]>>>num[8:3:-1][9,8,7,6,5]>>>num[10:0:-2][10,8,6,4,2]>>>num[0:10:-2][]>>>num[::-2][10,8,6,4,2]>>>num[5:0:-2][6,4,2]>>>num[:5:-2][10,8]>>>num[5::-2][6,4,2]>>>2.2.3序列相加兩種一樣類型的序列才能進展鏈接操作>>>[1,2,3]+[4,5,6][1,2,3,4,5,6]>>>'hello,'+'world''hello,world'>>>'hello,'+[1,2]Traceback(mostrecentcalllast):File"<pyshell#122>",line1,in<module>'hello,'+[1,2]TypeError:cannotconcatenate'str'and'list'objects>>>2.2.4乘法數(shù)字X乘以一個序列會生成新的序列,原序列被重復(fù)X次>>>'PH'*3'PHPHPH'>>>[42]*3[42,42,42]>>>[1,2]*3[1,2,1,2,1,2]>>>[][]>>>[none]*3#注意N需要大寫,不然報錯。None是一個內(nèi)建值,它的含義是“什么也沒有〞Traceback(mostrecentcalllast):File"<pyshell#128>",line1,in<module>[none]*3NameError:name'none'isnotdefined>>>[None]*3[None,None,None]>>>2.2.5成員資格in檢查一個值是否在一個序列中。條件為真返回True,條件未假返回False>>>pw="abc">>>'a'inpwTrue>>>'x'inpwFalse>>>database=[['John',42],['Smith',36]]>>>['john',42]indatabase#大小寫,要注意False>>>['John',42]indatabaseTrue>>>num=[1,2,3,4,5]>>>[1,2]innumFalse>>>[1]innumFalse>>>1innumTrue2.2.6長度、最小值和最大值內(nèi)建函數(shù)len、min和max>>>num=[1,8,3]>>>len(num)3>>>max(num)8>>>min(num)1>>>max(2,3)3max跟min的參數(shù)并不一定是序列,而是以多個數(shù)字直接作為參數(shù)。>>>exm=['h',12,'e',2]>>>max(exm)'h'>>>exm=[12,'e',2,'h']>>>max(exm)'h'>>>max(['A',1,'1','a','z'])'z'這個有點意思了,需要以后注意查查,是根據(jù)ascii進展提取的嗎2.3列表:Python的“苦力〞討論列表不同于元組跟字符串的地方2.3.1list函數(shù)>>>ls=list("Hello")>>>ls['H','e','l','l','o']>>>''.join(ls)'Hello'>>>2.3.2基本的列表操作列表可以使用所有適用于序列的操作。而列表是可以修正的。本節(jié)介紹可以改變列表的方法:元素賦值、元素刪除、分片賦值以及列表方法〔請注意,并非所有的列表方法都真正地改變列表〕改變列表:元素賦值>>>x=[1,1,1]>>>x[1]=2>>>x[1,2,1]注意:不能為一個位置不存在的元素進展賦值。刪除元素del>>>num=[1,2,3,4]>>>delnum[2]>>>num[1,2,4]除了刪除列表中的元素,del還能用于刪除其他元素??梢杂糜谧值湓厣踔疗渌兞康膭h除操作。分片賦值>>>nm=list('perl')>>>nm['p','e','r','l']>>>nm[2:]=list("ar")>>>nm['p','e','a','r']>>>nm[2:]=list("ckly")#可以改變成長度>>>nm['p','e','c','k','l','y']>>>nm=[1,5]>>>nm[1:1]=[2,3,4]#插入行的元素>>>nm[1,2,3,4,5]>>>nm[1:4]=[]#刪除一段元素,與del的結(jié)果一樣>>>nm[1,5]>>>nm=[1,2,3,4,5]>>>delnm[1:4]>>>nm[1,5]可以根據(jù)實際步長進展其他操作,測試的時候貌似要注意對應(yīng)的位置元素個數(shù)。>>>num=[1,2,3,4,5]>>>num[1:4:2]=[8,10]>>>num[1,8,3,10,5]2.3.3列表方法方法的調(diào)用方式:對象.方法〔參數(shù)〕append用于在列表末尾追加新的對象,直接修改原來的列表。>>>lst=[1,2,3]>>>lst.append(4)>>>lst[1,2,3,4]>>>lst=[1,2,3]>>>lst.append(4,5)Traceback(mostrecentcalllast):File"<pyshell#209>",line1,in<module>lst.append(4,5)TypeError:append()takesexactlyoneargument(2given)>>>lst.append([4,5])>>>lst[1,2,3,[4,5]]count方法,統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù):>>>['to','be','or','not','to','be'].count('to')2>>>x=[[1,2],1,1,[2,1,[1,2]]]>>>x.count([1,2])1extendextend方法可以在列表的末尾一次性追加另一個序列中的多個值。換句話說,可以用新列表擴展原有的列表>>>a=[1,2,3]>>>b=[4,5,6]>>>a.extend(b)#extend擴展了原來的序列,即a>>>a[1,2,3,4,5,6]>>>a+b#鏈接操作,僅僅返回一個全新的列表[1,2,3,4,5,6,4,5,6]>>>a[1,2,3,4,5,6]>>>a[len(a):]=b#使用分片來實現(xiàn)一樣的結(jié)果,但是代碼的可讀性不如extend。>>>a[1,2,3,4,5,6,4,5,6]>>>a=a+b#此鏈接方法的效率要比extend方法低>>>a[1,2,3,4,5,6,4,5,6,4,5,6]indexindex方法用于從列表中找出某個值第一個匹配項的索引位置。>>>phase=['We','are','hero','!']>>>phase.index('hero')2>>>phase.index('ero')Traceback(mostrecentcalllast):File"<pyshell#15>",line1,in<module>phase.index('ero')ValueError:'ero'isnotinlistinsert用于將對象插入列表中>>>num=[1,2,3,4,5,6,7]>>>num.insert(3,'four')>>>num[1,2,3,'four',4,5,6,7]>>>>>>num=[1,2,3,4,5,6,7]>>>num[3:3]='four'#意外發(fā)現(xiàn)>>>num[1,2,3,'f','o','u','r',4,5,6,7]>>>num=[1,2,3,4,5,6,7]>>>num[3:3]=['four']#可以分片處理,依然是可讀性不如insert>>>num[1,2,3,'four',4,5,6,7]poppop方法會移出列表中的一個元素〔默認是最后一個〕,并且返回該元素的值。pop方法是唯一一個既能修改列表又返回元素值〔除了None〕的列表方法。使用pop方法可以實現(xiàn)一種數(shù)據(jù)構(gòu)造----棧。對于棧的兩個操作〔放入和移出〕,pop跟append方法恰好相反。Python沒有入棧方法,變通使用append方法。提示:對于先進先出的隊列,可以使用insert(0,…)來代替append方法?;蛘?,也可以繼續(xù)使用append方法,但必須使用pop(0)來代替pop().更好的解決方案是使用collection模塊中的deque對象。>>>x=[1,2,3]>>>x.pop()3>>>x[1,2]>>>x.pop(0)1>>>x[2]>>>x=[1,2,3]>>>x.append(x.pop())>>>x[1,2,3]>>>removeremove方法用于移出列表中某個值的第一個匹配項:>>>x=['to','be','or','not','to','be']>>>x.remove('be')>>>x['to','or','not','to','be']>>>x.remove('bee')Traceback(mostrecentcalllast):File"<pyshell#37>",line1,in<module>x.remove('bee')ValueError:list.remove(x):xnotinlist注意:remove是一個沒有返回值的原位置改變方法。reversereverse方法將列表中的元素反方向存放:>>>x=[1,2,3]>>>x.reverse()>>>x[3,2,1]sortsort方法用于在原位置對列表進展排序。在“原位置排序〞意味著要改變原來的列表,從而讓其中的元素能按一定的順序排列,而不是返回一個已經(jīng)排序的列表。>>>x=[4,6,2,1,7,9]>>>x.sort()>>>x[1,2,4,6,7,9]***************************>>>x=[4,6,2,1,7,9]>>>y=x.sort()#因為sort方法修改了x缺返回了空值>>>printyNone>>>x[1,2,4,6,7,9]****************************>>>x=[4,6,2,1,7,9]>>>y=x[:]#有效的復(fù)制整個列表的方法>>>y.sort()>>>x[4,6,2,1,7,9]>>>y[1,2,4,6,7,9]***************************>>>x=[4,6,2,1,7,9]>>>y=x#簡單的賦值是沒有用的,僅僅讓x跟y都指向同一個列表。>>>y.sort()>>>x[1,2,4,6,7,9]>>>y[1,2,4,6,7,9]>>>另外一種獲取已排序的列表的方法是,使用sorted函數(shù)>>>x=[4,6,2,1,7,9]>>>y=sorted(x)>>>y[1,2,4,6,7,9]>>>x[4,6,2,1,7,9]>>>sorted('Python')#sorted可以用于任何序列,卻總是返回一個列表。['P','h','n','o','t','y']如果要把一些元素按照相反的順序排列,可以先使用sort或者sorted,然后再調(diào)用reserse方法,或者使用reverse參數(shù)。Sorted(x).reverse()這樣可以。高級排序如果希望元素按照特定的方式進展排序,可以通過compare(x,y)的方式自定義對比函數(shù)。Compare(x,y),x>y返回正數(shù);x<y返回負數(shù);x=y返回0〔根據(jù)你的定義〕。定義號該函數(shù),可以提供應(yīng)sort方法作為參數(shù)了。內(nèi)建函數(shù)cmp提供了對比函數(shù)的默認實現(xiàn)方式:>>>cmp(42,32)1>>>cmp(99,100)-1>>>cmp(10,10)0>>>num=[5,2,9,7]>>>num.sort(cmp)>>>num[2,5,7,9]>>>cmp(42,32)1>>>num=[5,2,9,7]>>>num.sort(cmp)>>>num[2,5,7,9]Sort方法還有另外兩個參數(shù)----key和reverse。如果要使用它們,那么就要通過名字來指定。參數(shù)key與cmp類似----必須提供一個在排序過程中使用的函數(shù)。然而該函數(shù)并不是直接用來確定對象大小,而是為每個元素創(chuàng)立一個鍵,然后所有元素來排序。那么如果根據(jù)元素的長度進展排序,那么使用len作為鍵函數(shù):>>>x=['3aaa','1a','4aaaa','0']>>>x.sort(key=len)>>>x['0','1a','3aaa','4aaaa']另外一個關(guān)鍵字參數(shù)reverse是簡單的布爾值(True或者false),用來知名列表是否進展反向排序。>>>num=[5,2,9,7]>>>num.sort()>>>num[2,5,7,9]>>>num.sort(reverse=True)>>>num[9,7,5,2]>>>cmp,key,reverse參數(shù)都可以用于sorted函數(shù)。在多數(shù)情況下,為cmp或key提供自定義函數(shù)是非常有用的。2.4元組:不可變序列用逗號分隔了一些值,即使僅有一個值,也必須有逗號。元組跟列表一樣,也是一種序列。唯一的不同是元組不能修改?!沧址彩侨绱恕?。創(chuàng)立元組的語法很簡單:使用逗號分隔一些值,那么就自動創(chuàng)立了元組。大局
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外貿(mào)水杯采購合同范例
- 印度合同范例
- 簡易商業(yè)合同范例
- 采購及安裝合同范例
- 衣服加工合同范例
- 玩具包場合同范例
- 關(guān)于增資合同范例
- 雇傭合同范例寫
- 售賣活動板房合同范例
- 2025年海南貨運從業(yè)資格證考試題及答案
- 氣體充裝安全操作規(guī)程
- 【特應(yīng)性皮炎的研究進展3400字(論文)】
- 2021年9月時政題庫(附答案)
- 海天味業(yè)產(chǎn)品介紹
- 減重手術(shù)全流程
- GB/T 20200-2022α-烯基磺酸鈉
- 光伏電池組件跟蹤光源的PLC控制課件
- 模擬集成電路設(shè)計魏廷存課后參考答案
- 資質(zhì)掛靠協(xié)議書
- 高速公路改擴建工程路基拼接技術(shù)
- 七人學生小品《如此課堂》劇本臺詞手稿
評論
0/150
提交評論