




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
...wd......wd......wd...快速改造:根基知識1.2交互式解釋器在IDLE編輯器,在提示符后輸入help然后按回車;也可以按下F1獲得有關IDLE的幫助信息1.4數字和表達式1/2返回0,整除除法;1.0/2返回0.5,用一個或者多個包含小數點的數字參與計算。另外改變除法的執行方式:from_future_importdivision//可以實現整除,1.0//2.0返回0.0%取余數;**冪運算;>>>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長整數普通整數不能大于2147483647也不能小于-2147483648,假設更大的數,可以使用長整數。長整數結尾有個L,理論上小寫也可以,不過為了便于識別,盡可能用大寫。1.4.2十六進制和八進制0XAF返回175,十六進制;010返回8,八進制>>>0xAF175>>>01081.5變量包含字母、數字和下劃線。首字母不能是數字開頭。1.8函數Pow計算乘方:pow〔2,3〕,2**3均返回8;pow等標準函數稱為內建函數。Abs(-10)求絕對值,返回10;round〔1.0/2.0〕返回1.0,把浮點數四舍五入為最接近的整數值。>>>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函數,這種方式的import命令之后,就可以直接使用函數,而不需要使用模塊名最為前綴了。但是要注意在不同模塊引用,可能導致函數沖突。>>>frommathimportsqrt>>>sqrt(9)3.0>>>1.9.1cmath和復數nan-notanumber返回的結果Cmath即complexmath復數模塊>>>importcmath>>>cmath.sqrt(-1)1j返回的1j是個虛數,虛數以j結尾;這里沒有使用fromcmathimportsqrt,防止與math的sqrt沖突。1.10.3注釋符號:#1.11字符串,使用〞\〞可以進展轉義。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-兩個均為函數,事實上str是一種類型Str會將值轉換為合理形式的字符串。另外一種是通過repr函數,創立一個字符串。Repr(x)也可以寫作`x`實現〔注意:`是反引號〕,python3.0中已經不適用反引號了>>>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〕長字符串使用三引號;轉義的反斜杠用于行尾>>>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中內建的序列:列表,元組,字符串,unicode字符串,buffer對象和xrange對象。列表和元組的主要區別:列表可以修改,元組那么不能。內建函數返回元組。幾乎所有情況下都可以使用列表代替元組。特殊情況之一:使用元組作為字典的鍵,因為鍵不可以更改,所以不能用列表。列表的各個元素通過逗號進展分隔,寫在方括號內。>>>edward=['EdwardGumy',42]>>>john=['JohnSmith',50]>>>database=[edward,john]>>>database[['EdwardGumy',42],['JohnSmith',50]]>>>2.2通用序列操作包括:索引,分片,加,乘以及檢查某個元素是否屬于序列的成員,除此之外還有計算長度,找出最大元素和最小元素的內建函數。 迭代:依次對序列中的每個元素重復執行某些操作。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分片冒號:第一個元素包含在分片內,第二個元素不包含在分片內,是分片之后剩余局部的第一個元素編號。>>>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[:]#復制整個序列[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乘法數字X乘以一個序列會生成新的序列,原序列被重復X次>>>'PH'*3'PHPHPH'>>>[42]*3[42,42,42]>>>[1,2]*3[1,2,1,2,1,2]>>>[][]>>>[none]*3#注意N需要大寫,不然報錯。None是一個內建值,它的含義是“什么也沒有〞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長度、最小值和最大值內建函數len、min和max>>>num=[1,8,3]>>>len(num)3>>>max(num)8>>>min(num)1>>>max(2,3)3max跟min的參數并不一定是序列,而是以多個數字直接作為參數。>>>exm=['h',12,'e',2]>>>max(exm)'h'>>>exm=[12,'e',2,'h']>>>max(exm)'h'>>>max(['A',1,'1','a','z'])'z'這個有點意思了,需要以后注意查查,是根據ascii進展提取的嗎2.3列表:Python的“苦力〞討論列表不同于元組跟字符串的地方2.3.1list函數>>>ls=list("Hello")>>>ls['H','e','l','l','o']>>>''.join(ls)'Hello'>>>2.3.2基本的列表操作列表可以使用所有適用于序列的操作。而列表是可以修正的。本節介紹可以改變列表的方法:元素賦值、元素刪除、分片賦值以及列表方法〔請注意,并非所有的列表方法都真正地改變列表〕改變列表:元素賦值>>>x=[1,1,1]>>>x[1]=2>>>x[1,2,1]注意:不能為一個位置不存在的元素進展賦值。刪除元素del>>>num=[1,2,3,4]>>>delnum[2]>>>num[1,2,4]除了刪除列表中的元素,del還能用于刪除其他元素。可以用于字典元素甚至其他變量的刪除操作。分片賦值>>>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的結果一樣>>>nm[1,5]>>>nm=[1,2,3,4,5]>>>delnm[1:4]>>>nm[1,5]可以根據實際步長進展其他操作,測試的時候貌似要注意對應的位置元素個數。>>>num=[1,2,3,4,5]>>>num[1:4:2]=[8,10]>>>num[1,8,3,10,5]2.3.3列表方法方法的調用方式:對象.方法〔參數〕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方法,統計某個元素在列表中出現的次數:>>>['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#使用分片來實現一樣的結果,但是代碼的可讀性不如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'#意外發現>>>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方法可以實現一種數據構造----棧。對于棧的兩個操作〔放入和移出〕,pop跟append方法恰好相反。Python沒有入棧方法,變通使用append方法。提示:對于先進先出的隊列,可以使用insert(0,…)來代替append方法。或者,也可以繼續使用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方法用于在原位置對列表進展排序。在“原位置排序〞意味著要改變原來的列表,從而讓其中的元素能按一定的順序排列,而不是返回一個已經排序的列表。>>>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[:]#有效的復制整個列表的方法>>>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函數>>>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,然后再調用reserse方法,或者使用reverse參數。Sorted(x).reverse()這樣可以。高級排序如果希望元素按照特定的方式進展排序,可以通過compare(x,y)的方式自定義對比函數。Compare(x,y),x>y返回正數;x<y返回負數;x=y返回0〔根據你的定義〕。定義號該函數,可以提供應sort方法作為參數了。內建函數cmp提供了對比函數的默認實現方式:>>>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方法還有另外兩個參數----key和reverse。如果要使用它們,那么就要通過名字來指定。參數key與cmp類似----必須提供一個在排序過程中使用的函數。然而該函數并不是直接用來確定對象大小,而是為每個元素創立一個鍵,然后所有元素來排序。那么如果根據元素的長度進展排序,那么使用len作為鍵函數:>>>x=['3aaa','1a','4aaaa','0']>>>x.sort(key=len)>>>x['0','1a','3aaa','4aaaa']另外一個關鍵字參數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參數都可以用于sorted函數。在多數情況下,為cmp或key提供自定義函數是非常有用的。2.4元組:不可變序列用逗號分隔了一些值,即使僅有一個值,也必須有逗號。元組跟列表一樣,也是一種序列。唯一的不同是元組不能修改。〔字符串也是如此〕。創立元組的語法很簡單:使用逗號分隔一些值,那么就自動創立了元組。大局
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年八一建軍節95周年活動實施方案
- 汽車使用與維護 課件 1.3.4 汽車制動器的操作方法和使用注意事項
- 2025年甲酸鈉項目可行性研究報告
- 2025年珠光包項目可行性研究報告
- 2025年牛仔褲水洗機項目可行性研究報告
- 四川省眉山市龍正區重點達標名校2025年下學期初三語文試題中考仿真模擬考試試卷(四)含解析
- 浙江省寧波市江東區2024-2025學年三年級數學第二學期期末教學質量檢測模擬試題含解析
- 揚州市江都區實驗重點名校2024-2025學年全國初三模擬考三全國I卷物理試題含解析
- 湖北省襄陽市第七中學2024-2025學年初三階段性診斷考試化學試題含解析
- 2025春新版【二年級語文下冊】 期中復習知識點
- 新型馬路劃線機設計
- 《兒科學》課件第9章第九節 腹瀉病
- 鋼筋混凝土外文翻譯文獻
- 項目2 動車組餐車乘務作業《高鐵動車餐飲服務》教學課件
- 致遠安全技術白皮書(簡版)
- 失禁性皮炎預防及護理PPT學習課件
- 新員工入職消防安全教育培訓記錄
- 愛寶s-990p打卡機說明書
- 廠區巡查記錄表
- 醫院管理者角色定位與執行力提升小時本
- 幼小銜接工作指導手冊【完整版】
評論
0/150
提交評論