




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第一章 快速改造:基礎(chǔ)知識1.2交互式解釋器在IDLE編輯器,在提示符后輸入help然后按回車;也可以按下F1獲得有關(guān)IDLE的幫助信息1.4數(shù)字和表達(dá)式1/2返回0,整除除法;1.0/2返回0.5,用一個(gè)或者多個(gè)包含小數(shù)點(diǎn)的數(shù)字參與計(jì)算。另外改變除法的執(zhí)行方式:from_future_import division/可以實(shí)現(xiàn)整除,1.0/2.0返回0.0%取余數(shù); *冪運(yùn)算; 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-2長整數(shù)普通整數(shù)不能大于2147483647也不能小
2、于-2147483648,若更大的數(shù),可以使用長整數(shù)。長整數(shù)結(jié)尾有個(gè)L,理論上小寫也可以,不過為了便于識別,盡可能用大寫。十六進(jìn)制和八進(jìn)制0XAF返回175 ,十六進(jìn)制;010返回8,八進(jìn)制 0xAF175 01081.5變量包含字母、數(shù)字和下劃線。首字母不能是數(shù)字開頭。1.8函數(shù)Pow計(jì)算乘方:pow(2,3),2*3均返回8;pow等標(biāo)準(zhǔn)函數(shù)稱為內(nèi)建函數(shù)。Abs(-10)求絕對值,返回10;round(1.0/2.0)返回1.0,把浮點(diǎn)數(shù)四舍五入為最接近的整數(shù)值。 pow(2,3)8 2*38 abs(-10)10 round(1.0/2.0)1.0 round(8.06,2)8.06 r
3、ound(8.06,1)8.11.9模塊 import import math 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ù)沖突。 from math import sqrt sqrt(9)3.01.9.1 cmath和復(fù)數(shù) nan-not a number返回的結(jié)
4、果Cmath即complex math復(fù)數(shù)模塊 import cmath cmath.sqrt(-1)1j 返回的1j是個(gè)虛數(shù),虛數(shù)以j結(jié)尾;這里沒有使用from cmath import sqrt,避免與math 的sqrt沖突。注釋符號: #1.11字符串,使用”可以進(jìn)行轉(zhuǎn)義。拼接字符串 Hello, WorldHello, World Hello, WorldHello,World Hello, +WorldHello, World Hello, +5Traceback (most recent call last): File , line 1, in Hello, +5TypeErr
5、or: cannot concatenate str and int objects需要保證兩邊是一樣的字符串,而有其他格式要報(bào)錯(cuò)的字符串表示str和repr-兩個(gè)均為函數(shù),事實(shí)上str是一種類型Str會(huì)將值轉(zhuǎn)換為合理形式的字符串。另外一種是通過repr函數(shù),創(chuàng)建一個(gè)字符串。Repr(x)也可以寫作x實(shí)現(xiàn)(注意:是反引號),python3.0中已經(jīng)不適用反引號了 print hello,worldhello,world print repr(hello,world)hello,world print str(hello,world)hello,world print 1000L1000 100
6、0L1000L print repr(1000L)1000L print str(1000L)1000 tmp=42 print The number is:+tmpTraceback (most recent call last): File , line 1, in print The number is:+tmpTypeError: cannot concatenate str and int objects print The number is:+tmpThe number is:42 print The number is:+str(tmp)The number is:42 pri
7、nt The number is:+repr(tmp)The number is:421.11.4 input和raw_input的比較 name=input(Whats your name:)Whats your name:GumbyTraceback (most recent call last): File , line 1, in name=input(Whats your name:) File , line 1, in NameError: name Gumby is not defined name=input(Whats your name:)Whats your name:G
8、umby后面輸入的字符串增加了引號不報(bào)錯(cuò)。 input(Enter a number:)Enter a number:33 name=input(Whats your name:)Whats your name:Gumby raw_input(Whats your name:)Whats your name:GumbyGumby raw_input(Whats your name:)Whats your name:GumbyGumby raw_input(Enter a number:)Enter a number:33長字符串、原始字符串和unicode(1)長字符串 使用三引號;轉(zhuǎn)義的反斜
9、杠用于行尾 print hello, world!hello, world! print hello,world!hello,world! 1+2+3 +410(2)原始字符串,對于反斜線并不會(huì)特殊對待,以r開頭,注意字符串尾部 print c:nowherec:owhere print r c:nowhereSyntaxError: invalid syntax print c:nowherec:owhere print rc:nowherec:nowhere print rThis is illegalSyntaxError: EOL while scanning string liter
10、al print rThis is illegalThis is illegal print rThis is illegal This is illegal(3)Unicode在字符串前增加前綴U print uhello, worldhello, world第二章 列表和元組序列中的每個(gè)元素被分配一個(gè)序號-即元素的位置,也被稱為索引。第一個(gè)索引為0,最后一個(gè)元素可以使用-1標(biāo)記2.1序列概覽Python包含6中內(nèi)建的序列:列表,元組,字符串,unicode字符串,buffer對象和xrange對象。列表和元組的主要區(qū)別:列表可以修改,元組則不能。內(nèi)建函數(shù)返回元組。幾乎所有情況下都可以使用列
11、表代替元組。特殊情況之一:使用元組作為字典的鍵,因?yàn)殒I不可以更改,所以不能用列表。列表的各個(gè)元素通過逗號進(jìn)行分隔,寫在方括號內(nèi)。 edward=Edward Gumy,42 john=John Smith,50 database=edward,john databaseEdward Gumy, 42, John Smith, 502.2通用序列操作包括:索引,分片,加,乘以及檢查某個(gè)元素是否屬于序列的成員,除此之外還有計(jì)算長度,找出最大元素和最小元素的內(nèi)建函數(shù)。迭代:依次對序列中的每個(gè)元素重復(fù)執(zhí)行某些操作。索引從0開始,最后一個(gè)元素可以使用-1.索引訪問的單個(gè)元素 greeting=Hello
12、 greeting0H greeting-1o four=raw_input(Year:)3Year:2005 four5分片冒號:第一個(gè)元素包含在分片內(nèi),第二個(gè)元素不包含在分片內(nèi),是分片之后剩余部分的第一個(gè)元素編號。 num=1,2,3,4,5,6,7,8,9,10 num3:64, 5, 6 num0:11 num7:10 #索引10指向第11個(gè)元素,這個(gè)元素不存在。8, 9, 10 num-3:-18, 9 num-3:0 num-3:8, 9, 10 num7:8, 9, 10 num:31, 2, 3 num: #復(fù)制整個(gè)序列1, 2, 3, 4, 5, 6, 7, 8, 9, 10
13、 num0:10:21, 3, 5, 7, 9 num3:6:34 num:41, 5, 9 num8:3:-19, 8, 7, 6, 5 num10:0:-210, 8, 6, 4, 2 num0:10:-2 num:-210, 8, 6, 4, 2 num5:0:-26, 4, 2 num:5:-210, 8 num5:-26, 4, 2序列相加兩種相同類型的序列才能進(jìn)行鏈接操作 1,2,3+4,5,61, 2, 3, 4, 5, 6 hello, +worldhello, world hello, +1,2Traceback (most recent call last): File ,
14、 line 1, in hello, +1,2TypeError: cannot concatenate str and list objects乘法數(shù)字X乘以一個(gè)序列會(huì)生成新的序列,原序列被重復(fù)X次 PH*3PHPHPH 42*342, 42, 42 1,2*31, 2, 1, 2, 1, 2 none*3 #注意N需要大寫,不然報(bào)錯(cuò)。None是一個(gè)內(nèi)建值,它的含義是“什么也沒有” Traceback (most recent call last): File , line 1, in none*3NameError: name none is not defined None*3None,
15、 None, None成員資格 in檢查一個(gè)值是否在一個(gè)序列中。條件為真返回True,條件未假返回False pw=abc a in pwTrue x in pwFalse database=John,42,Smith,36 john,42 in database # 大小寫,要注意False John,42 in databaseTrue num=1,2,3,4,5 1,2 in numFalse 1 in numFalse 1 in numTrue2.2.6 長度、最小值和最大值內(nèi)建函數(shù)len、min和max num=1,8,3 len(num)3 max(num)8 min(num)1
16、max(2,3)3max 跟min的參數(shù)并不一定是序列,而是以多個(gè)數(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這個(gè)有點(diǎn)意思了,需要以后注意查查,是根據(jù)ascii進(jìn)行提取的嗎?2.3 列表:Python的“苦力”討論列表不同于元組跟字符串的地方2.3.1 list函數(shù) ls=list(Hello) lsH, e, l, l, o .join(ls)Hello 基本的列表操作列表可以使用所有適用于序列的操作。而列表是可以修正的。本節(jié)介紹可以改變列表的方法:元素賦值、元素刪除、分片賦值以及列表方法(請注
17、意,并非所有的列表方法都真正地改變列表)1、 改變列表:元素賦值 x=1,1,1 x1=2 x1, 2, 1注意:不能為一個(gè)位置不存在的元素進(jìn)行賦值。2、 刪除元素 del num=1,2,3,4 del num2 num1, 2, 4除了刪除列表中的元素,del還能用于刪除其他元素。可以用于字典元素甚至其他變量的刪除操作。3、 分片賦值 nm=list(perl) nmp, e, r, l nm2:=list(ar) nmp, e, a, r nm2:=list(ckly) # 可以改變成長度 nmp, e, c, k, l, y nm=1,5 nm1:1=2,3,4 # 插入行的元素 nm
18、1, 2, 3, 4, 5 nm1:4= # 刪除一段元素,與del的結(jié)果一樣 nm1, 5 nm=1,2,3,4,5 del nm1:4 nm1, 5可以根據(jù)實(shí)際步長進(jìn)行其他操作,測試的時(shí)候貌似要注意對應(yīng)的位置元素個(gè)數(shù)。 num=1,2,3,4,5 num1:4:2=8,10 num1, 8, 3, 10, 52.3.3 列表方法方法的調(diào)用方式: 對象.方法(參數(shù))1. append 用于在列表末尾追加新的對象,直接修改原來的列表。 lst=1,2,3 lst.append(4) lst1, 2, 3, 4 lst=1,2,3 lst.append(4,5)Traceback (most r
19、ecent call last): File , line 1, in lst.append(4,5)TypeError: append() takes exactly one argument (2 given) lst.append(4,5) lst1, 2, 3, 4, 52. count 方法,統(tǒng)計(jì)某個(gè)元素在列表中出現(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)13. extendextend方法可以在列表的末尾一次性追加另一個(gè)序列中的多個(gè)值。換句話說,可以用新列表擴(kuò)展原有的列表 a=1,2,3 b=
20、4,5,6 a.extend(b) #extend擴(kuò)展了原來的序列,即a a1, 2, 3, 4, 5, 6 a+b #鏈接操作,僅僅返回一個(gè)全新的列表1, 2, 3, 4, 5, 6, 4, 5, 6 a1, 2, 3, 4, 5, 6 alen(a):=b #使用分片來實(shí)現(xiàn)相同的結(jié)果,但是代碼的可讀性不如extend。 a1, 2, 3, 4, 5, 6, 4, 5, 6 a=a+b #此鏈接方法的效率要比extend方法低 a1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 64. indexindex方法用于從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置。 phase=We,
21、are,hero,! phase.index(hero)2 phase.index(ero)Traceback (most recent call last): File , line 1, in phase.index(ero)ValueError: ero is not in list5. insert用于將對象插入列表中 num=1,2,3,4,5,6,7 num.insert(3,four) num1, 2, 3, four, 4, 5, 6, 7 num=1,2,3,4,5,6,7 num3:3=four #意外發(fā)現(xiàn) num1, 2, 3, f, o, u, r, 4, 5, 6,
22、7 num=1,2,3,4,5,6,7 num3:3=four #可以分片處理,依然是可讀性不如insert num1, 2, 3, four, 4, 5, 6, 76. poppop方法會(huì)移出列表中的一個(gè)元素(默認(rèn)是最后一個(gè)),并且返回該元素的值。pop方法是唯一一個(gè)既能修改列表又返回元素值(除了None)的列表方法。使用pop方法可以實(shí)現(xiàn)一種數(shù)據(jù)結(jié)構(gòu)-棧。對于棧的兩個(gè)操作(放入和移出),pop跟append方法恰好相反。Python沒有入棧方法,變通使用append方法。提示:對于先進(jìn)先出的隊(duì)列,可以使用insert(0,)來代替append方法?;蛘?,也可以繼續(xù)使用append方法,但必
23、須使用pop(0)來代替pop().更好的解決方案是使用collection模塊中的deque對象。 x=1,2,3 x.pop()3 x1, 2 x.pop(0)1 x2 x=1,2,3 x.append(x.pop() x1, 2, 37. removeremove方法用于移出列表中某個(gè)值的第一個(gè)匹配項(xiàng): x=to,be,or,not,to,be x.remove(be) xto, or, not, to, be x.remove(bee)Traceback (most recent call last): File , line 1, in x.remove(bee)ValueError
24、: list.remove(x): x not in list注意:remove是一個(gè)沒有返回值的原位置改變方法。8. reversereverse方法將列表中的元素反方向存放: x=1,2,3 x.reverse() x3, 2, 19. sortsort方法用于在原位置對列表進(jìn)行排序。在“原位置排序”意味著要改變原來的列表,從而讓其中的元素能按一定的順序排列,而不是返回一個(gè)已經(jīng)排序的列表副本。 x=4,6,2,1,7,9 x.sort() x1, 2, 4, 6, 7, 9* x=4,6,2,1,7,9 y=x.sort() #因?yàn)閟ort方法修改了x缺返回了空值 print yNone
25、x1, 2, 4, 6, 7, 9* x=4,6,2,1,7,9 y=x: #有效的復(fù)制整個(gè)列表的方法 y.sort() x4, 6, 2, 1, 7, 9 y1, 2, 4, 6, 7, 9* x=4,6,2,1,7,9 y=x #簡單的賦值是沒有用的,僅僅讓x跟y都指向同一個(gè)列表。 y.sort() x1, 2, 4, 6, 7, 9 y1, 2, 4, 6, 7, 9另外一種獲取已排序的列表副本的方法是,使用sorted函數(shù) x=4,6,2,1,7,9 y=sorted(x) y1, 2, 4, 6, 7, 9 x4, 6, 2, 1, 7, 9 sorted(Python) #sort
26、ed可以用于任何序列,卻總是返回一個(gè)列表。P, h, n, o, t, y如果要把一些元素按照相反的順序排列,可以先使用sort或者sorted,然后再調(diào)用reserse方法,或者使用reverse參數(shù)。Sorted(x).reverse()這樣可以。10. 高級排序如果希望元素按照特定的方式進(jìn)行排序,可以通過compare(x,y)的方式自定義比較函數(shù)。Compare(x,y),xy 返回正數(shù);x cmp(42,32)1 cmp(99,100)-1 cmp(10,10)0 num=5,2,9,7 num.sort(cmp) num2, 5, 7, 9 cmp(42,32)1 num=5,2,
27、9,7 num.sort(cmp) num2, 5, 7, 9Sort方法還有另外兩個(gè)參數(shù)-key和reverse。如果要使用它們,那么就要通過名字來指定。參數(shù)key與cmp類似-必須提供一個(gè)在排序過程中使用的函數(shù)。然而該函數(shù)并不是直接用來確定對象大小,而是為每個(gè)元素創(chuàng)建一個(gè)鍵,然后所有元素來排序。那么如果根據(jù)元素的長度進(jìn)行排序,那么使用len作為鍵函數(shù): x=3aaa,1a,4aaaa,0 x.sort(key=len) x0, 1a, 3aaa, 4aaaa另外一個(gè)關(guān)鍵字參數(shù)reverse是簡單的布爾值(True或者false),用來知名列表是否進(jìn)行反向排序。 num=5,2,9,7 num.sort() num2, 5, 7, 9 num.sort(reverse=True) num9, 7, 5, 2cmp,key,reverse參數(shù)都可以用于sorted函數(shù)。在多數(shù)情況下,為cmp或key提供自定義函數(shù)是非常有用的。2.4 元組:不可變序列用逗號分隔了一些值,即使僅有一個(gè)值,也必須有逗號。元組跟列表一樣,也是一種序列。唯一的不同是元組不能修改。(字符串也是如此)。創(chuàng)建元組的語法很簡單:使用逗號分隔一些值,那么就自動(dòng)創(chuàng)建了元組。大部分時(shí)候,元組是通過圓括號括起來的。 1,2,3(1, 2, 3) (1,2,3) #大部分時(shí)候是通過圓括號括起來的(1, 2,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 一致行動(dòng)人協(xié)議書范本
- 建房補(bǔ)償合同協(xié)議書范本
- 2025年商品化色漿項(xiàng)目建議書
- 2025年航天器結(jié)構(gòu)系統(tǒng)合作協(xié)議書
- 直播流量分成與藝人經(jīng)紀(jì)服務(wù)合作協(xié)議
- 社區(qū)圖書館社區(qū)文化活動(dòng)策劃與管理委托協(xié)議
- Web前端開發(fā)技術(shù)項(xiàng)目教程(HTML5 CSS3 JavaScript)(微課版) 課件 6.3任務(wù)引入 制作與美化水平導(dǎo)航欄
- 智能建筑環(huán)境監(jiān)測系統(tǒng)施工、驗(yàn)收與能耗優(yōu)化服務(wù)協(xié)議
- 極限運(yùn)動(dòng)旅游線路開發(fā)與風(fēng)險(xiǎn)管理合同
- 國際水準(zhǔn)儀租賃及海外工程項(xiàng)目預(yù)算控制合同
- 最新-臨時(shí)救助申請審核審批表模板
- 《有效溝通》PPT課件-(2)
- 藍(lán)色大氣商務(wù)商業(yè)計(jì)劃書PPT模板
- 青春紅綠燈教學(xué)設(shè)計(jì)中小學(xué)心理健康心理游戲腳本
- 蘇教版二年級(下冊)科學(xué)全冊單元測試卷含期中期末(有答案)
- 《城鎮(zhèn)土地使用稅納稅申報(bào)表》
- 三年級數(shù)學(xué)下冊口算脫式豎式練習(xí)題
- 17025實(shí)驗(yàn)室體系
- 大榆樹溝防洪治理工程初步設(shè)計(jì)報(bào)告
- 8D報(bào)告培訓(xùn)教材(共30頁).ppt
- 屋面及防水工程工程量計(jì)算PPT課件
評論
0/150
提交評論