




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章 快速改造:基礎(chǔ)知識(shí)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長(zhǎng)整數(shù)普通整數(shù)不能大于2147483647也不能小
2、于-2147483648,若更大的數(shù),可以使用長(zhǎng)整數(shù)。長(zhǎng)整數(shù)結(jié)尾有個(gè)L,理論上小寫也可以,不過(guò)為了便于識(shí)別,盡可能用大寫。十六進(jìn)制和八進(jìn)制0XAF返回175 ,十六進(jìn)制;010返回8,八進(jìn)制 0xAF175 01081.5變量包含字母、數(shù)字和下劃線。首字母不能是數(shù)字開(kāi)頭。1.8函數(shù)Pow計(jì)算乘方:pow(2,3),2*3均返回8;pow等標(biāo)準(zhǔn)函數(shù)稱為內(nèi)建函數(shù)。Abs(-10)求絕對(duì)值,返回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é)尾;這里沒(méi)有使用from cmath import sqrt,避免與math 的sqrt沖突。注釋符號(hào): #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)換為合理形式的字符串。另外一種是通過(guò)repr函數(shù),創(chuàng)建一個(gè)字符串。Repr(x)也可以寫作x實(shí)現(xiàn)(注意:是反引號(hào)),python3.0中已經(jīng)不適用反引號(hào)了 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后面輸入的字符串增加了引號(hào)不報(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長(zhǎng)字符串、原始字符串和unicode(1)長(zhǎng)字符串 使用三引號(hào);轉(zhuǎn)義的反斜
9、杠用于行尾 print hello, world!hello, world! print hello,world!hello,world! 1+2+3 +410(2)原始字符串,對(duì)于反斜線并不會(huì)特殊對(duì)待,以r開(kāi)頭,注意字符串尾部 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è)序號(hào)-即元素的位置,也被稱為索引。第一個(gè)索引為0,最后一個(gè)元素可以使用-1標(biāo)記2.1序列概覽Python包含6中內(nèi)建的序列:列表,元組,字符串,unicode字符串,buffer對(duì)象和xrange對(duì)象。列表和元組的主要區(qū)別:列表可以修改,元組則不能。內(nèi)建函數(shù)返回元組。幾乎所有情況下都可以使用列
11、表代替元組。特殊情況之一:使用元組作為字典的鍵,因?yàn)殒I不可以更改,所以不能用列表。列表的各個(gè)元素通過(guò)逗號(hào)進(jìn)行分隔,寫在方括號(hào)內(nèi)。 edward=Edward Gumy,42 john=John Smith,50 database=edward,john databaseEdward Gumy, 42, John Smith, 502.2通用序列操作包括:索引,分片,加,乘以及檢查某個(gè)元素是否屬于序列的成員,除此之外還有計(jì)算長(zhǎng)度,找出最大元素和最小元素的內(nèi)建函數(shù)。迭代:依次對(duì)序列中的每個(gè)元素重復(fù)執(zhí)行某些操作。索引從0開(kāi)始,最后一個(gè)元素可以使用-1.索引訪問(wèn)的單個(gè)元素 greeting=Hello
12、 greeting0H greeting-1o four=raw_input(Year:)3Year:2005 four5分片冒號(hào):第一個(gè)元素包含在分片內(nèi),第二個(gè)元素不包含在分片內(nèi),是分片之后剩余部分的第一個(gè)元素編號(hào)。 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)建值,它的含義是“什么也沒(mé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 長(zhǎng)度、最小值和最大值內(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é)介紹可以改變列表的方法:元素賦值、元素刪除、分片賦值以及列表方法(請(qǐng)注
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還能用于刪除其他元素??梢杂糜谧值湓厣踔疗渌兞康膭h除操作。3、 分片賦值 nm=list(perl) nmp, e, r, l nm2:=list(ar) nmp, e, a, r nm2:=list(ckly) # 可以改變成長(zhǎng)度 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í)際步長(zhǎng)進(jìn)行其他操作,測(cè)試的時(shí)候貌似要注意對(duì)應(yīng)的位置元素個(gè)數(shù)。 num=1,2,3,4,5 num1:4:2=8,10 num1, 8, 3, 10, 52.3.3 列表方法方法的調(diào)用方式: 對(duì)象.方法(參數(shù))1. append 用于在列表末尾追加新的對(duì)象,直接修改原來(lái)的列表。 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è)值。換句話說(shuō),可以用新列表擴(kuò)展原有的列表 a=1,2,3 b=
20、4,5,6 a.extend(b) #extend擴(kuò)展了原來(lái)的序列,即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 #使用分片來(lái)實(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用于將對(duì)象插入列表中 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)-棧。對(duì)于棧的兩個(gè)操作(放入和移出),pop跟append方法恰好相反。Python沒(méi)有入棧方法,變通使用append方法。提示:對(duì)于先進(jìn)先出的隊(duì)列,可以使用insert(0,)來(lái)代替append方法?;蛘?,也可以繼續(xù)使用append方法,但必
23、須使用pop(0)來(lái)代替pop().更好的解決方案是使用collection模塊中的deque對(duì)象。 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è)沒(méi)有返回值的原位置改變方法。8. reversereverse方法將列表中的元素反方向存放: x=1,2,3 x.reverse() x3, 2, 19. sortsort方法用于在原位置對(duì)列表進(jìn)行排序。在“原位置排序”意味著要改變?cè)瓉?lái)的列表,從而讓其中的元素能按一定的順序排列,而不是返回一個(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 #簡(jiǎn)單的賦值是沒(méi)有用的,僅僅讓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í)排序如果希望元素按照特定的方式進(jìn)行排序,可以通過(guò)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。如果要使用它們,那么就要通過(guò)名字來(lái)指定。參數(shù)key與cmp類似-必須提供一個(gè)在排序過(guò)程中使用的函數(shù)。然而該函數(shù)并不是直接用來(lái)確定對(duì)象大小,而是為每個(gè)元素創(chuàng)建一個(gè)鍵,然后所有元素來(lái)排序。那么如果根據(jù)元素的長(zhǎng)度進(jìn)行排序,那么使用len作為鍵函數(shù): x=3aaa,1a,4aaaa,0 x.sort(key=len) x0, 1a, 3aaa, 4aaaa另外一個(gè)關(guān)鍵字參數(shù)reverse是簡(jiǎn)單的布爾值(True或者false),用來(lái)知名列表是否進(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 元組:不可變序列用逗號(hào)分隔了一些值,即使僅有一個(gè)值,也必須有逗號(hào)。元組跟列表一樣,也是一種序列。唯一的不同是元組不能修改。(字符串也是如此)。創(chuàng)建元組的語(yǔ)法很簡(jiǎn)單:使用逗號(hào)分隔一些值,那么就自動(dòng)創(chuàng)建了元組。大部分時(shí)候,元組是通過(guò)圓括號(hào)括起來(lái)的。 1,2,3(1, 2, 3) (1,2,3) #大部分時(shí)候是通過(guò)圓括號(hào)括起來(lái)的(1, 2,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)年第一學(xué)期幼兒教學(xué)工作總結(jié)模版
- 創(chuàng)先爭(zhēng)優(yōu)個(gè)人學(xué)習(xí)心得體會(huì)模版
- 新生兒?jiǎn)渭儼捳畈《靖腥镜呐R床護(hù)理
- 社保委托代表協(xié)議
- 重力教學(xué)設(shè)計(jì)
- 上學(xué)期八年級(jí)語(yǔ)文教學(xué)工作總結(jié)模版
- 某精密模具有限公司品質(zhì)管理系統(tǒng)
- 貓咪輸液護(hù)理常規(guī)
- 部編本大小多少教學(xué)設(shè)計(jì)
- 7S管理培訓(xùn)體系精要
- 人教版二年級(jí)下冊(cè)口算題天天練1000道可打印帶答案
- 2022北京東城六年級(jí)畢業(yè)考英語(yǔ)試題含答案
- 部編版三年級(jí)語(yǔ)文下冊(cè)口語(yǔ)交際:勸告 課件
- 《藥物分析與檢驗(yàn)技術(shù)》課件-異煙肼中游離肼的檢查方法
- 手術(shù)室的健康教育
- 海水的淡化技術(shù)及應(yīng)用
- 食堂餐飲服務(wù)方案
- 中職學(xué)校設(shè)計(jì)說(shuō)明
- 醫(yī)保政策下物價(jià)培訓(xùn)課件
- 加油站安全風(fēng)險(xiǎn)分級(jí)管控和隱患排查治理雙重預(yù)防機(jī)制運(yùn)行手冊(cè)
- 攻博計(jì)劃書模版
評(píng)論
0/150
提交評(píng)論