




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、we-lisg a e s -irH-a y gliscv yuta.y F u uu iiaivee esue一 e - 1. . e we - f ae-c cT eea- a - ei- ci-ac cr cvtiar. - je . v - i-Accdig to cty d-ili ne and muic palo.aizainDe1amet r-ur-es"0dly hed "mplme nt imp eat on i ndepedet Cmmss on agai ns corruton g ude ies eectve stegte nig e d .s co
2、nstucton- tpc dim ocatc .e mana- scloeconacthouggtadwrkacua,contolceckdsticStadng c.mmi-e e1ad tepesnaimpllmetainipedetCmmsson” nst nnsShangexssof.”,ipth cared ou ccitcsm ad sel ciial urher . rec.i on dieci on ad mer- efec enhancednpolitcsofc0nsione-andinitatvefimsegoodof rung mae. refre te m-“ te ,
3、 a-su-sslcttdavews, cmbe d, reatd te"idngPython完全新手教程作者:taowen, billriceLesson 1準備好學習 Python 的環(huán)境下載的地址是:為了大家的方便,我在校內作了 copy :http:/tool/compiler&IDE/Python-232-1.exelinux版本的我就不說了,因為如果你能夠使用linux并安裝好說明你可以一切自己搞定的。運行環(huán)境可以是linux或者是windows :1、linuxredhat的linux安裝上去之后一定會有pytho
4、n的(必須的組件),在命令行中輸入 python回車。這樣就可以進入一個>>>的提示符2、windows安裝好了 python 之后,在開始菜單里面找到Python2.3->IDLE,運行也會進入一個有>>>提示符的窗口開始嘗試Python1、輸入:welcome = "Hello!"回車然后又回到了 >>>2、輸入:print welcome回車然后就可以看到你自己輸入的問候了。Lesson 2 搞定環(huán)境之后的前行Python有一個交互式的命令行,大家已經看到了吧。所以可以比較方便的學習和嘗試,不用 新建-存檔-
5、編譯-調試 ”,非常適合快速的嘗試。一開始從變量開始(其實說變量,更準確的是對象,Python中什么都可以理解為對象)。變量welcome = "hello!"welcome就是變量名,字符串就是變量的類型,hello!就是變量的內容,""表示這個變量是字符串,""中間的是字符串的內容。熟悉其他語言的人,特別是編譯類型的語言,覺得沒有變量的聲明很奇怪。在python中用 賦值來表示我要這么一個變量,即使你不知道要放什么內容,只是要先弄一個地方來放你的東西,也要這么寫:store =""不過這個還是說明了store是
6、字符串,因為""的緣故。Accdig tocty .、"ne an. m-ic palo.aizainiee1amet rrqurrmes.t0ddy hed "mplme nt imp eat on i n.epe.et Cmmss on agai ns .orr.ton g ude ies eectve "egte nig e .s .onst-cton" tpc .dmocatc le, mana-"cloe conac t h.gt a. wrk a cua, contol ce ck .sti c Stadng c
7、.mmi-e ea. tepe-al im pllmetaini-pe.et Cmmss on” ns n- Shang exss of p” . i -pth care. ouci1csm a. “ ciicl urher . rec.i on .ieci on a. mer- efec enance. n p011cs of con an. initatve firm ” go.of rung mae. Bfre te m-“ te , aae -s1slcttd a view s, ccmbe., reatd te"idnghave a try代碼:復制到剪貼板tmp_stor
8、age =""welcome = "hello!"tmp_storage = welcome print tmp_storage你會發(fā)現同樣的問候出現了。字符串字符串是用""標記的,但是用”也可以(不要說你看不出一個是雙引號,一個是單引號), 兩者之間是有一丁點區(qū)別,不過你可以不用理會。其實是差不多的。字符串有很多自己的操作,最常用的是這樣的:代碼:復制到剪貼板welcome = "hello"you = "world!"print welcome+you運行之后就會發(fā)現她輸出了hellowor
9、ld!。更多變量變量還有幾種類型。數字符串列表字典文件勿庸置疑,這些都是非常非常常用的。對于數字就不用講了那就是:代碼:復制到剪貼板radius = 10pi = 3.14area = pi*radius*2print "the area is", area下次講列表和字典Lesson 3 Python中的數學結構數學中你學什么東西最多遍?我想根據我的一點淺薄經驗( I I雖然我是數學系的),學 得最多的是集合,無論什么數學書都從集合開始講起。 然后講函數呢,又必然把映射再講一 遍??梢哉f,集合和映射是數學中最基本的結構了。Python對于數據結構非常明智的內置了兩個,回想
10、我寫C的程序,往往是一開始就是用母人山十臼芾struct拼一個鏈表出來(I I重復方動)。Python 中提供了列表(list )和子典(diet ) 兩種數據結構。他們分別對應的原型是集合和映射。 這個你應該明白了, 只是表示方法有一 點不一樣而已。列表列表的英文名是list嘛,所以我取一個名字叫代碼:復制到剪貼板my_list =這個就產生了一個空的列表。然后給它賦值my_list = 1,2print my_listmy_list.append(3)print my_list非常容易明白的。append前面加了一個點,這個表示append是my_list方法。我實在不想又去給你解釋什么是
11、對象,什么是成員方法,然后扯出一大段出來。list是可以索引的:print my_list1不過你最許會不明白為什么是2,而不是顯示的是1。因為索引從0開始,要輸出第一個元素:print my_list0字典代碼:復制到剪貼板contact = 這個產生了一個空字典,contact 。然后往里面填充內容:代碼:復制到剪貼板contact=contact"name"="taowen"contact"phone"=Accdig tocty .、"ne an. m-ic palo.aizainiee1amet rrqurrmes.
12、t0ddy hed "mplme nt imp eat on i n.epe.et Cmmss on agains .orr.ton g ude ies eectve "egte nig e .s .onst-cton" tpc .dmocatc le, mana-"cloe conac t h.gt a. wrk a cua , contol ce ck .sti c Stad ng c.mmi-e ea. tepe-al im pllmetaini-pe.et Cmmss on” ns n- Shang exss of p” . i -pth car
13、e. ouci1csma. “ ciicl urher . rec.i on .ieci on a. mer- efec enance. n p011cs of con an. initatve firm ” go.of rung mae. Bfre te m-“ te , aae -s1slcttd a view s, ccmbe ., reatd te"idngname就是你查字典的時候要查找的單詞,taowen就是查到的內容。不過你現在不是查,而是在寫這個字典。同理添加了phone這個詞條?,F在添加好了,看看 contact的內容,怎么查看?自己想辦法吧。如果你悟性夠,就會發(fā)現
14、python很多操作是通用的,既然能夠print 1, print "", printmy_list ,那么其他數據類型的變量就沒有理由不能用了。結合列表和字典代碼:復制到剪貼板contact_list=contact1=contact1'name'='taowen'contact1'phone'=contact_list.append(contact1)contact2=contact2'name'='god'contact2'phone'=contact_list.appen
15、d(contact2)呵呵,夠復雜的吧。你可以想出我為什么要用兩個contact字典呢?Lesson 4用不同的方式來操作 Python到現在為止,我們用的都是交互式的命令行來操作的,的卻是很方便,是吧?不過,復雜一些的情況就不那么好使了,來換一種方式來操作Python在IDLE中點擊File->New Window ,出現一個新窗口(對于 linux下,你要用vim 或者 emacs或者pico把文本的源文件寫好了)。為了方便,先點擊File->Save ,填入my_try.py 這樣能夠讓編輯器知道在編輯python的源文件,會把你輸入的代碼進行一點上色的處理。填入下面的代碼:
16、代碼:復制到剪貼板i = 5 n = 0 while i>0:n = n + ii = i - 1 print n你會發(fā)現輸入:之后,自動會給縮進。而且也沒有在python中發(fā)現和C/C+中類似的標記也沒有pascal中的begin end;,其實縮進就是 python 中表示一段代碼的從屬關系 的標記方法。表示 n=n+1 和i=i-1這兩句都是while的。程序的運行邏輯應該不用解釋we-lisg a e s -irH-a y gliscv yuta.y F u uu iiaivee esue一 e - 1. . e we - f ae-c cT eea- a - ei- ci-ac
17、 cr cvtiar. - je . v - i-si e gaai ea-me eee-a e l - eee-e e-g -l-ef-i-e-l a e sl- eae-1sw-l- a-aa-esa- -eea-.e e - g-u-le ex- e- a a l -l f- fa a ass fv le su s -ie - - -ag Bf - e-i -h a i-ak eslee1te-a了吧。就是運行5+4+3+2+1 的結果。運行代碼按F5,可能提示你沒有存盤,照著辦就是了。發(fā)揮你的能力,計算從 1到10的所有偶數的和(提示,可能沒有你想象的那么智能)。Lesson 5 Py
18、thon中的輸入與判斷健全的程序大凡都需要輸入的功能,所以要學習一下簡單的輸入:輸入要使用的是raw_input 或者input函數,區(qū)別是raw_input直接把你的輸入作為字符串返回,而input則在raw_input的基礎上把字符串轉換為數字返回(如果你輸入$#$怎么辦?自己試試看)。我們就利用這兩個輸入函數來作一些有趣的事情。代碼:復制到剪貼板your_name = raw_input("please input your name:")hint = "welcome! %s" % your_nameprint hint不簡單吧,還有呢。s表示在
19、這個位置插入一個字符串,表示把后面提供的參數推'入前面的字符串中,所以推的結果是把%s推出去了,把your_name給填入那個地方了。printf 知道吧,C中的printf就是一樣的嘛。代碼:復制到剪貼板inputed_num = 0while 1:inputed_num = input("input a number between 1 and 10n")if inputed_num >= 10:passelif inputed_num < 1:passelse:breakprint "hehe, don't follow, won
20、't out"pass就是pass 了,過了嘛,什么都不干了。break就是跳出這個 while 1(無窮循環(huán),1總是真的,while總是執(zhí)行)。n是換行,不會全部忘光了吧。Lesson 6 Python 余興節(jié)目代碼:復制到剪貼板from Tkinter import *root = Tk()w = Label(root, text="Hello, world!")Accdig tocty .、"ne an. m-ic palo.aizainiee1amet rrqurrmes.t0ddy hed "mplme nt imp eat
21、on i n.epe.et Cmmss on agai ns .orr.ton g ude ies eectve "egte nig e .s .onst-cton" tpc .dmocatc le, mana-"cloe conac t h.gt a. wrk a cua, contol ce ck .sti c Stadng c.mmi-e ea. tepe-al im pllmetaini-pe.et Cmmss on” ns n- Shang exss of p” . i -pth care. ouci1csm a. “ ciicl urher . rec
22、.i on .ieci on a. mer- efec enance. n p011cs of con an. initatve firm ” go.of rung mae. Bfre te m-“ te , aae -s1slcttd a view s, ccmbe., reatd te"idngw.pack()root.mainloop()呵呵,一次太超前了一點,不過也不是解釋不清楚。我干脆也不解釋了吧。給大家增進一點興趣。還是解釋一下fromt Tkinter import *是引入一個模塊,這個模塊用來創(chuàng)建GUI (Graphic User Interface )窗口Tk()
23、創(chuàng)建了一個主窗口Label()創(chuàng)建一個標簽Label的第一個參數是root表明Label是在這個主窗口中的。w.pack()是指用缺省的方式把Label放置在主窗口中root.main100Po開始了一個循環(huán),是等待你的輸入的循環(huán)。Lesson 7 Python基本語法要素齊動員現在的目的是盡量想出一個用的東西僅限于內置的變量類型和語句的一個綜合的例子,我想還是那個聯系人表的例子吧代碼:復制到剪貼板# 呵呵,還忘記了講注釋# 第一個算是完整的程序# #contact = contact_list =while 1:contact'name' = raw_input("
24、please input name:")contact'phone' = raw_input("please input phone number:")contact_list.append(contact.copy()go_on = raw_input("continue?n")if go_on = "yes":passelif go_on = "no":breakelse:print "you didn't say non"i = 1for contact
25、in contact_list:print "%d: name=%s" % (i, contact'name')print "%d: phone=%s" % (i, contact'phone')i = i + 1首先是回憶一下字符串字符串既能夠用"”也能夠用”。然后是很有特色的 操作,起到格式化字符串的作用,前面 僅僅在字符串中有一個 s ,現在有d和$兩個,分別代表插入十進制數值和字符串 于*標記的位置處。然后是列表列表是順序的序列,用append在后面附加,也能構用索引值索引。所以我們完全可以用一個變量保存
26、len(contact_list)得到的長度,然后一個個的遍歷,不過這里展示了另外一種非常方便的方法。而且值得注意的是append()中的參數,我使用了contact.copy(),你可以嘗試著把copy()給去掉,觀察結果你就知道了所謂的append是怎么干的了,特別是你對指針之類的東西很有感覺的話(但是在 Python中是沒有指針這個概念的)再來看看字典字典是鍵(key )和值(value )的對應組合成的無序的序列。所以你存的時候要指明鍵 (name或者phone ),而且取的時候也是一樣的。接下來是判斷if是很好用的,=表示判斷兩個是否相等,=表示把右邊的賦給左邊的。而且可以直接判斷字
27、符串是否相等,這個太方便了,如果你曾經用過strcpy()的話,就知道了。 elif是表示else if的意思,如果if不滿足就判斷elif的條件是否滿足,最后是到else中去。循環(huán)是個主體while和for都是循環(huán)。不過這里while就沒什么說的了,又是很經典的 while 1 ,死循環(huán), 然后必須在里面用 break來跳出。for和C中的for是不一1的,for in才是一個完整的語 句,指的是從一個能夠逐一取值的序列中(比如 list), 一個一個的取出值賦給for后面指定的變量中,直到取空,循環(huán)結束。其實回想一般用C中的for的經歷,也大體如此。而且你還可以用for i in rang
28、e(1,100)來指定一個范圍從多少到多少??梢哉ffoNn充分體現了 python的體貼周到,用起來很直觀,不會繞彎。接下來就是運行了,大家慢慢調試吧。下次可能是講異常處理,因為我覺得在深入到使用各種高級的要素之前,先要學會怎么去處理異常。最常見的異常應該是input(),然后你給出的輸入是一個無法轉換為數字的字符串了,那么我們就要來處理它。Lesson 8 Python中的錯誤檢測寫程序什么最重要?完成功能最重要。但是程序中難免要有用戶的輸入, 對于這些寫的時候未可預知的因素中間可能出現的錯誤,一般稱作異常。對于異常情況的處理, 不同語言有不同的做法,比如檢查函數的返回值之類的,但是那種辦法
29、會把代碼弄成一團漿糊。Python在這個方面是比較先進的,我們從一個例子來看看:代碼:復制到剪貼板print input()Accdig tocty .、"ne an. m-ic palo.aizainiee1amet rrqurrmes.t0ddy hed "mplme nt imp eat on i n.epe.et Cmmss on agai ns .orr.ton g ude ies eectve "egte nig e .s .onst-cton" tpc .dmocatc le, mana-"cloe conac t h.gt a.
30、 wrk a cua, contol ce ck .sti c Stadng c.mmi-e ea. tepe-al im pllmetaini-pe.et Cmmss on” ns n- Shang exss of p” . i -pth care. ouci1csm a. “ ciicl urher . rec.i on .ieci on a. mer- efec enance. n p011cs of con an. initatve firm ” go.of rung mae. Bfre te m-“ te , aae -s1slcttd a view s, ccmbe., reatd
31、 te"idng呵呵,看不同吧。其實input是輸入,print是輸出。也就是把輸入的東西立即輸出。但是 這個和代碼:復制到剪貼板print raw_input()有什么不同呢?不同的地方是,input()會在raw_input() 接收了字符串”的輸入之后進行一些處理,比如 你是輸入1+2 ,然后輸出的就是 3 了,而raw_input就是原原本本的1+2的輸出了。用代碼表示就是代碼:復制到剪貼板eval(raw_input()eval是求表達式的值,任何一個簡單的python表達式,就像1+2這樣的作為字符串送入, 就能把值從eval處理之后取出來?,F在你實驗一下"sd
32、fsdf ”之后,你會發(fā)現提示你引用:Traceback (most recent call last):File "<pyshell#4>", line 1, in -toplevel- input()File "<string>", line 0, in -toplevelNameError: name 'sdfsdf' is not defined如果輸入其他稀奇古怪的字符串還可能有其他的出錯提示,我們現在要做的就是捕捉這種由用戶輸入引起的錯誤。這么來作:代碼:復制到剪貼板try:print input()e
33、xcept:print 'there is an error in your input'這下你無論怎么輸入都不會有什么其他的提示了,就是自己設定的print語句作為提示?,F在把try except的組合去掉,回到 print input()你再嘗試一下:1/0這個顯然是一個錯誤,被零除的錯誤。那么專門來捕捉一下這個錯誤:代碼:復制到剪貼板try:print input()except ZeroDivisionError:print 'can not be divided by zero這下你能夠捕捉到被零除的錯誤了。然后你再嘗試其他的輸入,可能錯誤就沒有被捕捉了。 所
34、以再補上:代碼:復制到剪貼板try:print input()except ZeroDivisionError:print 'can not be divided by zero'except:print 'there is an error in your input'注意,捕捉所有錯誤的 except必須放在所有的except的最后一位。明白了? OK還有更多的能夠捕捉的錯誤,自己查手冊吧(暫時看不了手冊沒關系,慢慢來嘛)。以后還 能夠自己raise (引發(fā))異常呢。不過那都是比較高級的應用了,對于出錯處理從一開始就 有這個印象,并牢記在心中對于以后寫大一些
35、的軟件很有好處。Lesson 9 走向模塊化的第一步大規(guī)模的程序設計需要你把一個大的程序拆分成n個模塊。然后把模塊進行組合,交互成為一個完整的程序。你不可能像現在這樣,從頂寫到尾。那么我們從函數開始。代碼:復制到剪貼板def square(x):return x*2print square(5)簡單吧,這個是我看過的函數定義中最簡潔的。 def表示這個開始定義一個函數,x是參數, 參數是不需要類型的,因為 python 是不需要明確指出類型的。 return 是返回值,返回的 值插入到調用函數的地方。再復雜一些代碼:復制到剪貼板def multiply(a, b):return a*bAccd
36、ig tocty .、"ne an. m-ic palo.aizainiee1amet rrqurrmes.t0ddy hed "mplme nt imp eat on i n.epe.et Cmmss on agai ns .orr.ton g ude ies eectve "egte nig e .s .onst-cton" tpc .dmocatc le, mana-"cloe conac t h.gt a. wrk a cua, contol ce ck .sti c Stadng c.mmi-e ea. tepe-al im pllm
37、etaini-pe.et Cmmss on” ns n- Shang exss of p” . i -pth care. ouci1csm a. “ ciicl urher . rec.i on .ieci on a. mer- efec enance. n p011cs of con an. initatve firm ” go.of rung mae. Bfre te m-“ te , aae -s1slcttd a view s, ccmbe., reatd te"idngprint multiply(1,2)這是兩個參數的函數。那么返回兩個值呢?代碼:復制到剪貼板def sw
38、ap(a, b):return (b,a)print swap(1,2)呵呵,其實這里返回的并不是兩個值,而是一個值。怎么說呢。 (b, a)就是一個東西,是一 個元組(turple ),你可以用這樣的方式成生一個元組,并使用它。元組是基本的變量類型:代碼:復制到剪貼板my_turple = (1,2, 3)my_list = for i in my_turple: my_list.append(i)print my_list其實元組和列表非常像,但是列表的長度是可以變化的,而且成員是可以改變的。但是元組是什么都不能變的,是只讀的。對于高級一點的話題:傳遞進來的參數是否可以被修改,這個問題取決
39、于你傳遞了什么近來。 如果是數字或者字符串,是不能夠改變的,但是如果是這樣的:代碼:復制到剪貼板def test_func(list_be_passed):list_be_passed0 = 'towin'my_list = 'taowen'print my_listtest_func(my_list) print my_list就能夠改變傳遞近來的參數了,所以處理的時候要小心,必要的時候 copy 一下再傳遞。函數簡單吧,但是很好用的。想起 C中的函數那么那么多麻煩,真是感慨萬千啊。下面是應該講GUI編程呢,還是面向對象呢?思考一下Lesson 10 Pyth
40、on的文件操作文件操作.是一個語言和外界聯系的主要方法.現在以txt為例簡單的講一下.sie gaai ea-me eee-ae l - eee-e e- g - l-ef-i-e-l a e sl-eae-1sw- -l - a-aa-e s a - -eea-.e e -g-u -le ex- e-aa l-l f- faa ass fvle su s-ie - -ag Bf - e-i -h a i-ak eslee1te-a首先是建立關聯假設在存在以下文件c:a.txt代碼:復制到剪貼板This is line #1This is line #2This is line #3END代碼
41、:復制到剪貼板>>> xxx = file('c:a.txt', 'r')關鍵字的第一部分,是文件路徑及名稱。注意這里面,路徑需要用第二部分,是對文件的模式或者叫權限,一般有以下 3種"r" (read) , "w" (write) 和 "a"(append).之后,就可以利用xxx_content = infile.read()xxx_content = infile.readlines()來讀取文件內容了代碼:復制到剪貼板>>> xxx = file('c
42、:a.txt', 'r')>>> xxx_content = xxx.read()>>> print xxx_contentThis is line #1This is line #2This is line #3END>>> xxx.close()>>>>>> infile = file('c:a.txt', 'r')>>> xxx = file('c:a.txt', 'r')>>>
43、; for xxx_line in xxx.readlines():Accdig tocty .、"ne an. m-ic palo.aizainiee1amet rrqurrmes.t0ddy hed "mplme nt imp eat on i n.epe.et Cmmss on agai ns .orr.ton g ude ies eectve "egte nig e .s .onst-cton" tpc .dmocatc le, mana-"cloe conac t h.gt a. wrk a cua, contol ce ck .st
44、i c Stadng c.mmi-e ea. tepe-al im pllmetaini-pe.et Cmmss on” ns n- Shang exss of p” . i -pth care. ouci1csm a. “ ciicl urher . rec.i on .ieci on a. mer- efec enance. n p011cs of con an. initatve firm ” go.of rung mae. Bfre te m-“ te , aae -s1slcttd a view s, ccmbe., reatd te"idngprint 'Line
45、:', xxx_lineLine: This is line #1Line: This is line #2Line: This is line #3Line: END>>> xxx.close()>>>然后是文件的寫入代碼:復制到剪貼板>>> xxx=file('c:test.txt','w')>>> xxx.write('billrice')>>> xxx.write('testtest')>>> xxx.wri
46、te('entern')>>> xxx.writelines('billrice','ricerice')>>> xxx.close()>>>>>> xxx=file('c:test.txt','r')>>> content=xxx.read()>>> print contentbillricetesttestenterbillricericerice>>>需要注意的是.在xxx.close
47、() 之前,c盤下面只有一個空空的test.txt , xxx.close() 的作用相當于最后的存盤。Lesson 11走向模塊化的第二步函數上面還能是什么呢?內嵌函數 A_A ,其實python 是支持的。不過用起來會讓你吐血 的,LGB名稱查找規(guī)則。(寒)。 python 是面向對象的,對于面向對象的支持挺好玩 的。代碼:復制到剪貼板class person:def _init_(self): = 'taowen'self.id =def say_id(self):print "%s's id is %d" % (self.n
48、ame, self.id)me = person()me.say_id()比較復雜了吧。如果不熟悉面向對象的概念的,可能會覺得暈。我來解釋一下。所謂面向對 象是把數據和操作數據的函數放到同一個類中去,然后用類來創(chuàng)建對象,操作的時候能夠比較方便(很不精確的說法,任何一個OO局手都可以把我罵得屁都不是 L_J)。類類是class關鍵來定義的。class person: 就是說定義一個類,名字叫 person 。對象對象是用類來產生的。所以 me就是對象,產生的辦法就是像調用函數一樣,person(),而且()中是能夠放參數的,什么時候要參數,看下面的初始化函數"初始化函數類可以有自己的初
49、始化函數,每次類被創(chuàng)建的時候(調用 person()這樣的語句的時候), 都會調用它。這個在 C+中的名稱是構造函數。 _init_ 是必須的名字,你不能用其他名 字來當初始化函數。但是你可以沒有初始化函數。類的數據類的數據是所有類產生的對象共享的數據。這里沒有用到類的數據,要寫的話是這樣:代碼:復制到剪貼板class person:school = 'bit'def _init_(self): = 'taowen'self.id =def say_id(self):print "%s's id is %d" % (
50、, self.id)me = person()me.say_id()print me.school對象的數據roje c work, cade s, res s ct ona nd other aspe cs of a ta of 19, fute deie d the “ in, en ha*, t he petie . - and eleCVeness of . i calc IfeGood for ts meei ng were q e. the Sa ndi ng Ccmmitee ofte muni“"any Ccmmiee, muiCpal Seceay
51、 Genera Ta .“,t heC*C.mm- on for discipieinspect on Sa ndi ng C.mmiag Xu, Ja ng JXue DpUy Drector of te personnel offCe and other leading cmrades pree nt guidace alws us to wamappause for their wecme a. tha nksw I fist Dstc Commtee member of the 20XX team annual -meat, meei i g m.ementat on of the c
52、recve measues, wel a s member of the e-a.of my own report gui for the m theipemen! C.mmonagats crrupti on saeme n"v s a i d cmades ct csm. Fist annual paly on the20XX team, Member of otc lie a ctin pa nmpiemetai on, 20xx, di stcAccdig to cty .、" ne an. m-ic palo.aizainiee1amet rrqurrmes.t0
53、ddy hed "mplme nt imp eat on i n.epe.et Cmmss on agai ns .orr.ton g ude ies eectve "egte nig e .s .onst-cton" tpc .dmocatc le, mana-"cloe conac t h.gt a. wrk a cua , contol ce ck .sti c Stad ng c.mmi-e ea. tepe-al im pllmetaini-pe.etCmmsson” ns n- Shang exss of p” . i -pth care.
54、ou ci1csm a. “ ciicl urher . rec.i on .ieci on a. mer- efec enance.np011cs of con an.initatvefirm”go.ofrungmae. Bfre te m-“ te , aae -s1slcttd a view s, ccmbe ., reatd te"idng對象的數據是用self.變量名 =。來生成的。這里就是對象的數據。對象的數據和類的數據不同,因為對象之間的數據是互不共享的,而類的數據是被所有由類生成的對象共享的。對象的函數(類的函數)兩個沒有區(qū)別,是類的就是對象的。其實
55、就是類的(我說的是底層實現,不過不用管,如果 關心怎么實現的,等我寫 Hacking OO 吧,還沒影呢)。say_id就是對象的函數,你能夠 調用它。每個對象的函數都需要一個self參數,表示color這個對象/color。為什么使用面向對象編程除去讓人覺得你比較專業(yè)外,當然由切實的好處。比較淺顯的是你能夠表達一定的層次關系,類與類之間能夠有包含和繼承的關系(當然你現在還不會。)。而且對象能夠把數據和 操作數據的函數放在一起,能夠比較清晰。雖然有所謂的數據隱藏的概念,但是在python中其實就是一個 不要直接調用對象中的數據的約定,而要用一個函數作為中轉。其實不懂面向對象很正常,其實有的時候
56、就是要在用的中間感悟的。什么時候把用函數編程用牛了,用出個道道來了,說不定你已經感覺到了什么是面向對象編程。另外:所謂什么OO,都是一些認為規(guī)定,不用語法支持,只要心中有這個想法(什么想法?自己悟啊 I h ,就能夠 寫出OO的代碼,不管你用的是什么語言,什么語法。Lesson 12 python to exe about py2exe本文講述如何將一個python源代碼編譯成一個exe. 我會的只是最初步最基本的.實際上那個py2exe似乎有著更強大的功能1 :下載安裝 py2exe.from2 :假設你寫好了一個python 程序.guess_nu
57、mber.py 存在了下面3 :再寫一個setup.py.也存在下面 內容如下代碼:復制到剪貼板# setup.pyfrom distutils.core import setupimport py2exesetup(name="guess_number",scripts="guess_number.py",)we-lisg a e s -irH-a y gliscv yuta.y F u uu iiaivee esue一 e - 1. . e we - f ae-c cT eea- a - ei- ci-ac cr cvtiar. - je . v - i-其中name和scripts是需要你到時候具體修改的.4:找到windows 的dos模式(命令提示符).或者自己做個快捷方式也可以.C:Python23>C:Python23>python setup.py py2exe構造就開始了 .幾秒鐘以后.在你的C:Python23就會出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 印刷機械行業(yè)智能化市場消費者需求變化趨勢分析考核試卷
- 紡織品售后服務滿意度分析考核試卷
- 財務風險管理與資金安全策略考核試卷
- 光纜在電力系統(tǒng)分布式發(fā)電控制中的應用考核試卷
- 航道養(yǎng)護工程案例分析考核試卷
- 農產品市場綠色通道建設考核試卷
- 部編人教版三年級語文上冊閱讀理解專項水平練習
- 2025年中國IPL光子嫩膚儀數據監(jiān)測研究報告
- 2025年中國LED柔性燈條數據監(jiān)測報告
- 2025年中國60度錐磨頭數據監(jiān)測報告
- 寶媽日常心理護理
- 2025年社會學概論測試題含答案(附解析)
- 2025-2030年環(huán)境工程產業(yè)深度調研及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年事業(yè)單位公開招聘考試(E類)《綜合應用能力西醫(yī)臨床》試卷真題及完整解析
- 2025年中國AI翻譯行業(yè)市場全景分析及前景機遇研判報告
- 2025-2030中國酶聯免疫吸附測定(ELISA)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025年內蒙古眾達人力資源公司招聘題庫帶答案分析
- 水利工程隱患排查課件
- T/CEPPEA 5023-2023風光儲充一體化充電站設計規(guī)范
- 八五普法自查自評情況報告
- 2025三季度四川經準檢驗檢測集團股份限公司招聘48人易考易錯模擬試題(共500題)試卷后附參考答案
評論
0/150
提交評論