版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除Python 的特點(diǎn) 1. 簡潔 Python 是一種代表簡潔思想的語言;2. 易學(xué) Python 有極其簡潔的語法;3. 免費(fèi)、開源Python 是 FLOSS (自由 /開放源碼軟件)之一;4. 高層語言使用 Python 編寫程序時(shí)無需考慮如何治理程序使用的內(nèi)存一類的底層細(xì)節(jié);5. 可移植性Python 已被移植到許多平臺(tái),這些平臺(tái)包括 AROS 、AS/400、Linux 、Windows 、FreeBSD、Macintosh 、Solaris、OS/2、Amiga 、BeOS、OS/390、z/OS、Palm OS、QNX 、VMS 、Ps
2、ion、Acom RISC OS 、 VxWorks 、PlayStation、 Sharp Zaurus、Windows CE 甚至仍有 PocketPC;6. 說明性可以直接從源代碼運(yùn)行;在運(yùn)算機(jī)內(nèi)部,成運(yùn)算機(jī)使用的機(jī)器語言;7. 面對對象python 說明器把源代碼轉(zhuǎn)換為字節(jié)碼的中間形式,然后再把它翻譯Python 既支持面對過程編程也支持面對對象編程;8. 可擴(kuò)展性部分程序可以使用其他語言編寫,如 c/c+;9. 可嵌入型 可以把 Python 嵌入到 c/c+ 程序中,從而供應(yīng)腳本功能;10. 豐富的庫只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除Python 標(biāo)準(zhǔn)庫的確
3、很巨大;它可以幫忙你處理各種工作,包括正就表達(dá)式、文檔生成、單元測試、線程、數(shù)據(jù)庫、網(wǎng)頁瀏覽器、CGI 、FTP、GUI (圖形用戶界面)、Tk 和其他與系統(tǒng)有關(guān)的電子郵件、 XML 、XML-RPC 、 HTML 、WAV 文件、密碼系統(tǒng)、操作;- 分割線 -以下是 Python 的基本語法 - 一、基本概念1. python 中數(shù)有四種類型:整數(shù)、長整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù);整數(shù),如 1 長整數(shù) 是比較大的整數(shù)浮點(diǎn)數(shù) 如 1.23、3E-2 復(fù)數(shù) 如 1 + 2j 、 1.1 + 2.2j 2. 字符串(字符的序列)python 中單引號(hào)和雙引號(hào)使用完全相同;使用三引號(hào) 或 可以指定一個(gè)多行字符
4、串;轉(zhuǎn)義符 通過在字符串前加r 或 R; 如 rthis is a line with n 就n 會(huì)顯示,并不是換行;自然字符串,python 答應(yīng)處理 unicode 字符串,加前綴 字符串是不行變的;u 或 U, 如 uthis is an unicode string ;按字面意義級(jí)聯(lián)字符串,如this is string會(huì)被自動(dòng)轉(zhuǎn)換為this is string ;3. 標(biāo)識(shí)符的命名第一個(gè)字符必需是字母表中字母或下劃線 _;標(biāo)識(shí)符的其他的部分有字母、數(shù)字和下劃線組成;標(biāo)識(shí)符對大小寫敏銳;4. 對象 python 程序中用到的任何“ 東西” 都成為“ 對象” ;5. 規(guī)律行和物理行物理行
5、是我們在編寫程序時(shí)看到的,規(guī)律行就是 python 看到的;python 中分號(hào) ;標(biāo)識(shí)一個(gè)規(guī)律行的終止,但是實(shí)際中一般每個(gè)物理行只寫一個(gè)規(guī)律行,可以防止使用分號(hào);多個(gè)物理行中可以寫一個(gè)規(guī)律行,如下:s = peter is writing this article 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除上面 的使用被稱為明確的行連接,又如:print peter 6. 縮進(jìn)空白在 python 是特別重要的,行首的空白是最重要的,又稱為縮進(jìn);行首的空白(空格和制表符)用來打算規(guī)律行的縮進(jìn)層次,從而打算語句分組;這意味著同一層次的語句必需有相同的縮進(jìn),每一組這樣的語句稱為一
6、個(gè)塊;留意:不要混合使用空格和制表符來縮進(jìn),由于在跨過不同的平臺(tái)時(shí)無法正常工作;二、運(yùn)算符與表達(dá)式1. 運(yùn)算符與其用法運(yùn)算符 名稱 說明 例子+ 加 兩個(gè)對象相加 3 + 5 得到 8;a + b得到 ab;- 減 得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù)-5.2 得到一個(gè)負(fù)數(shù);50 - 24 得到 26;* 乘 兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)如干次的字符串 2 * 3 得到 6;la * 3 得到 lalala ;* 冪返回 x 的 y 次冪3 * 4 得到 81(即 3 * 3 * 3 * 3 )/ 除 x 除以 y 4/3 得到 1(整數(shù)的除法得到整數(shù)結(jié)果);4.0/3 或 4/3.0 得到 1.3
7、333333333333333 / 取整除 返回商的整數(shù)部分 4 / 3.0 得到 1.0 % 取模 返回除法的余數(shù) 8%3 得到 2;-25.5%2.25 得到 1.5 左移 把一個(gè)數(shù)的比特向左移肯定數(shù)目(每個(gè)數(shù)在內(nèi)存中都表示為比特或二進(jìn)制數(shù)字,即 0 和 1) 2 右移 把一個(gè)數(shù)的比特向右移肯定數(shù)目 11 1 得到 5; 11 按比特表示為 1011,向右移動(dòng) 1 比特后得到101,即十進(jìn)制的 5;& 按位與 數(shù)的按位與 5 & 3 得到 1;| 按位或 數(shù)的按位或 5 | 3 得到 7; 按位異或 數(shù)的按位異或 5 3 得到 6 按位翻轉(zhuǎn) x 的按位翻轉(zhuǎn)是 -x+1 5 得到 6; 小于
8、 返回 x 是否小于 y;全部比較運(yùn)算符返回 1 表示真,返回 0 表示假;這分別與特殊的變量 True 和 False等價(jià);留意,這些變量名的大寫;5 3 返回 0(即 False)而 3 5 返回 1(即 True);比較可以被任意連接:3 5 大于 返回 x 是否大于 y 5 3 返回 True;假如兩個(gè)操作數(shù)都是數(shù)字,它們第一被轉(zhuǎn)換為一個(gè)共同的類型;否就,它總是返回 False;= 小于等于 返回 x 是否小于等于 y x = 3; y = 6; x = 大于等于 返回 x 是否大于等于 y x = 4; y = 3; x = y 返回 True;= 等于 比較對象是否相等 x = 2
9、; y = 2; x = y 返回 True;x = str; y = stR; x = y 返回 False;x = str; y = str; x = y 返回 True;.= 不等于比較兩個(gè)對象是否不相等x = 2; y = 3; x .= y返回 True;只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除not 布爾“ 非”假如 x 為 True,返回 False;假如 x 為 False,它返回 True; x = True; not y 返回 False;and 布爾“ 與”假如 x 為 False,x and y 返回 False,否就它返回 y 的運(yùn)算值;x = Fa
10、lse; y = True; x and y,由于 x是 False,返回 False;在這里, Python 不會(huì)運(yùn)算 y,由于它知道這個(gè)表達(dá)式的值確定是 False(由于 x 是 False);這個(gè)現(xiàn)象稱為短路運(yùn)算;or 布爾“ 或”假如 x 是 True,它返回 True,否就它返回y 的運(yùn)算值;x = True; y = False; x or y返回 True;短路運(yùn)算在這里也適用;2. 運(yùn)算符優(yōu)先級(jí)(從低到高)運(yùn)算符 描述lambda Lambda 表達(dá)式or 布爾“ 或”and 布爾“ 與”not x 布爾“ 非”in, not in 成員測試is,is not 同一性測試, =
11、,.= ,= 比較| 按位或 按位異或& 按位與 移位+,- 加法與減法*,/,% 乘法、除法與取余+x,-x 正負(fù)號(hào)x 按位翻轉(zhuǎn)* 指數(shù)x.attribute 屬性參考xindex 下標(biāo)xindex:index 尋址段farguments. 函數(shù)調(diào)用experession,. 綁定或元組顯示expression,. 列表顯示key:datum,. 字典顯示expression,. 字符串轉(zhuǎn)換3. python 掌握臺(tái)輸出 使用 print print abc #打印 abc 并換行print abc%s % d #打印 abcd print abc%sef%s % d, g #打印 abcd
12、efg 三、掌握流1. if 語句i = 10 n = intraw_inputenter a number: 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除if n = i: print equal elif n 刪除一個(gè)變量 /名稱, del 之后,該變量就不能再使用;六、數(shù)據(jù)結(jié)構(gòu)python 有三種內(nèi)建的數(shù)據(jù)結(jié)構(gòu):列表、元組和字典;1. 列表list 是處理一組有序項(xiàng)目的數(shù)據(jù)結(jié)構(gòu),列表是可變的數(shù)據(jù)結(jié)構(gòu);列表的項(xiàng)目包含在方括號(hào) 中,eg: 1, 2, 3 , 空 列表 ;判定列表中是否包含某項(xiàng)可以使用 in, 比如 l = 1, 2, 3; print 1 in l; #Tru
13、e;支持索引和切片操作;索引時(shí)如 超出范疇,就 IndexError ;使用函數(shù) len查看長度;使用 del 可以刪除列表中的項(xiàng),eg: del l0 # 假如超出范疇,就 IndexError list 函數(shù)如下:append(value)-向列表尾添加項(xiàng)value l = 1, 2, 2 l.append3 #1, 2, 2, 3 countvalue-返回列表中值為value 的項(xiàng)的個(gè)數(shù)l = 1, 2, 2 print l.count2 # 2 extendlist2-向列表尾添加列表list2 l = 1, 2, 2 l1 = 10, 20 l.extendl1 print l #
14、1, 2, 2, 10, 20 -返回列表中第一個(gè)顯現(xiàn)的值為value 的索引,假如沒有,就反常ValueError indexvalue, start, stopl = 1, 2, 2 a = 4 try: print l.indexa 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除except ValueError, ve: print there is no %d in list % a inserti, value-向列表 i 位置插入項(xiàng)vlaue,假如沒有i,就添加到列表尾部l = 1, 2, 2 l.insert1, 100 print l #1, 100, 2, 2
15、l.insert100, 1000 print l #1, 100, 2, 2, 1000 popi-返回 i 位置項(xiàng),并從列表中刪除;假如不供應(yīng)參數(shù),就刪除最終一個(gè)項(xiàng);假如供應(yīng),但是i 超出索引范疇,就反常IndexError l = 0, 1, 2, 3, 4, 5 print l.pop # 5 print l #0, 1, 2, 3, 4 print l.pop1 #1 print l #0, 2, 3, 4 try: l.pop100 except IndexError, ie: print index out of range removevalue-刪除列表中第一次顯現(xiàn)的valu
16、e,假如列表中沒有vlaue,就反常 ValueError l = 1, 2, 3, 1, 2, 3 l.remove2 print l #1, 3, 1, 2, 3 try: l.remove10 except ValueError, ve: print there is no 10 in list reverse-列表反轉(zhuǎn)l = 1, 2, 3 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除l.reverse print l #3, 2, 1 sortcmp=None, key=None, reverse=False-列表排序【Python Library Reference
17、】cmp:cmp specifies a custom comparison function of two arguments iterable elements which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument: cmp=lambda x,y: cmpx.lower, y.lower key:key spe
18、cifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower reverse:reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.In general, the key and reverse conversion processes are much fas
19、ter than specifying an equivalent cmp function. This is because cmp is called multiple times for each list element while key and reverse touch each element only once. l5 = 10, 5, 20, 1, 30 l5.sort print l5 #1, 5, 10, 20, 30 l6 = bcd, abc, cde, bbb l6.sortcmp = lambda s1, s2: cmps10,s21 print l6 #abc
20、, bbb, bcd, cde l7 = bcd, abc, cde, bbb, faf l7.sortkey = lambda s: s1 print l7 #faf, abc, bbb, bcd, cde 2. 元組tuple 和 list 特別相像,但是 tuple 是不行變的,即不能修改 tuple,元組通過圓括號(hào)中用逗號(hào)分割的項(xiàng)定義;支持索引和切片操作;可以使用 in 查看一個(gè)元素是否在 tuple 中;空元組 ;只含有一個(gè)元素的元組 a, # 需要加個(gè)逗號(hào)優(yōu)點(diǎn): tuple 比 list 速度快;對不需要修改的數(shù)據(jù)進(jìn)行寫愛護(hù),可以是代碼更安全tuple 與 list 可以相互轉(zhuǎn)換,
21、使用內(nèi)置的函數(shù) list 和 tuple ;l = 1, 2, 3 print l # 1, 2, 3 t = tuplel print t # 1, 2, 3 l1 = listt 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除print l1 #1, 2, 3 元組最通常的用法是用在打印語句,如下例:name = Peter Zhang age = 25 print Name: %s; Age: %d % name, age # Name: Peter Zhang; Age: 25 函數(shù)如下:countvalue-返回元組中值為value 的元素的個(gè)數(shù)t = 1, 2, 3,
22、1, 2, 3 print t.count2 # 2 indexvalue, start, stop-返回列表中第一個(gè)顯現(xiàn)的值為value 的索引,假如沒有,就反常ValueError t = 1, 2, 3, 1, 2, 3 print t.index3 # 2 try: print t.index4 except ValueError, ve: print there is no 4 in tuple # there is no 4 in tuple 3. 字典字典由鍵值對組成,鍵必需是唯獨(dú)的;eg: d = key1:value1, key2:value2;空字典用 表示;字典中的鍵值對
23、是沒有次序的,假如想要一個(gè)特定的次序,那么使用前需要對它們排序;dkey = value,假如字典中已有key,就為其賦值為value,否就添加新的鍵值對key/value ;使用 del dkey 可以刪除鍵值對;判定字典中是否有某鍵,可以使用in 或 not in ;d = d1 = one d2 = two d3 = three del d3 for key, value in d.items: print %s - %s % key, value 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除 #1 - one #2 - two dict 函數(shù)如下 : clear-刪除字典
24、中全部元素d1 = 1:one, 2:two d1.clear print d1 # copy-返回字典的一個(gè)副本淺復(fù)制 d1 = 1:one, 2:two d2 = d1.copy print d2 #1: one, 2: two dict.fromkeysseq,val=None - 創(chuàng)建并返回一個(gè)新字典,以序列seq 中元素做字典的鍵,val 為字典全部鍵對應(yīng)的初始值 默認(rèn)為 None l = 1, 2, 3 t = 1, 2, 3 d3 = .fromkeysl print d3 #1: None, 2: None, 3: None d4 = .fromkeyst, default p
25、rint d4 #1: default, 2: default, 3: default getkey,default- 返回字典dict 中鍵 key 對應(yīng)值,假如字典中不存在此鍵,就返回default 的值 default默認(rèn)值為 None d5 = 1:one, 2:two, 3:three print d5.get1 #one print d5.get5 #None print d5.get5, test #test has_keykey-判定字典中是否有鍵key d6 = 1:one, 2:two, 3:three print d6.has_key1 #True 鍵, 值對元組的列表p
26、rint d6.has_key5 #False items-返回一個(gè)包含字典中只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除d7 = 1:one, 2:two, 3:three for item in d7.items: print item #1, one #2, two #3, three for key, value in d7.items: print %s - %s % key, value #1 - one #2 - two #3 - three keys-返回一個(gè)包含字典中全部鍵的列表d8 = 1:one, 2:two, 3:three for key in d8.k
27、eys: print key #1 #2 #3 values-返回一個(gè)包含字典中全部值的列表d8 = 1:one, 2:two, 3:three for value in d8.values: print value #one #two #three popkey, default-如字典中key 鍵存在,刪除并返回dictkey ,如不存在,且未給出default 值,引發(fā)KeyError 反常d9 = 1:one, 2:two, 3:three print d9.pop1 #one print d9 #2: two, 3: three print d9.pop5, None #None t
28、ry: 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除d9.pop5 # raise KeyError except KeyError, ke: print KeyError:, ke #KeyError:5 popitem-刪除任意鍵值對,并返回該鍵值對,假如字典為空,就產(chǎn)生反常 KeyError d10 = 1:one, 2:two, 3:three print d10.popitem #1, one - 如字典中有key,就返回 vlaue 值,如沒有key,就加上該key,值為 default,默print d10 #2: two, 3: three setdefaultk
29、ey,default認(rèn) None d = 1:one, 2:two, 3:three print d.setdefault1 #one print d.setdefault5 #None print d #1: one, 2: two, 3: three, 5: None print d.setdefault6, six #six print d #1: one, 2: two, 3: three, 5: None, 6: six dict 中去,鍵字重復(fù)時(shí)會(huì)掩蓋dict 中的鍵值updatedict2-把 dict2 的元素加入到d = 1:one, 2:two, 3:three d2 =
30、1:first, 4:forth d.updated2 print d #1: first, 2: two, 3: three, 4: forth viewitems-返回一個(gè) view 對象,( key, value)pair 的列表,類似于視圖;優(yōu)點(diǎn)是,假如字典發(fā)生變化,view 會(huì)同步發(fā)生變化;在迭代過程中,字典不答應(yīng)轉(zhuǎn)變,否就會(huì)報(bào)反常d = 1:one, 2:two, 3:three for key, value in d.viewitems: print %s - %s % key, value #1 - one #2 - two #3 - three viewkeys-返回一個(gè) v
31、iew 對象, key 的列表d = 1:one, 2:two, 3:three for key in d.viewkeys: print key #1 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除#2 #3 viewvalues-返回一個(gè)view 對象, value 的列表d = 1:one, 2:two, 3:three for value in d.viewvalues: print value #one #two #three 4. 序列序列類型是指容器內(nèi)的元素從 0 開頭的索引次序拜訪,一次可以拜訪一個(gè)或者多個(gè)元素;列表、元組和字符串都是序列;序列的兩個(gè)主要特點(diǎn)是索引操
32、作符和切片操作符;索引可以得到特定元素;切片可以得到部分序列;1 numbers = zero, one, two, three, four 2 3 print numbers1 # one 4 print numbers-1 # four 5 #print numbers5 # raise IndexError 6 7 print numbers: # zero, one, two, three, four 8 print numbers3: # three, four 9 print numbers:2 # zero, one 10 print numbers2:4 # two, thre
33、e 11 print numbers1:-1 # one, two, three 切片操作符中的第一個(gè)數(shù)(冒號(hào)之前) 表示切片開頭的位置,其次個(gè)數(shù) (冒號(hào)之后) 表示切片到哪里終止;如 果不指定第一個(gè)數(shù),Python 就從序列首開頭;假如沒有指定其次個(gè)數(shù),就 Python 會(huì)停止在序列尾;留意,返回的序列從開頭位置 開頭 ,剛好 在終止位置之前 終止;即開頭位置是包含在序列切片中的,而終止位置被排斥在切片外;5. 綁定可以用負(fù)數(shù)做切片;負(fù)數(shù)用在從序列尾開頭運(yùn)算的位置;當(dāng)創(chuàng)建一個(gè)對象并給它賦一個(gè)變量的時(shí)候,這個(gè)變量僅僅“ 指向” 那個(gè)對象,而不是表示這個(gè)對象本身!也 就是說,變量名指向運(yùn)算機(jī)中儲(chǔ)
34、備那個(gè)對象的內(nèi)存,這被稱作名稱到對象的綁定;假如要復(fù)制一個(gè)列表或者類似的序列或者其他復(fù)雜的對象(不是如整數(shù)那樣的簡潔對象),那么必需使用切 片操作符來取得拷貝;只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除 七、面對對象編程python 支持面對對象編程;類和對象是面對對象編程的兩個(gè)主要方面,類創(chuàng)建一個(gè)新的類型,對象是這個(gè)類的實(shí)例;對象可以使用一般的屬于對象的變量儲(chǔ)備數(shù)據(jù),屬于對象或類的變量被稱為域;對象也可以使用屬于類的函數(shù),這樣的函數(shù)稱為類的方法;域和方法可以合稱為類的屬性;域有兩種類型 -屬于實(shí)例的或?qū)儆陬惐旧?;它們分別被稱為實(shí)例變量和類變量;類使用關(guān)鍵字 class 創(chuàng)建,
35、類的域和方法被列在一個(gè)縮進(jìn)塊中;類的方法必需有一個(gè)額外的第一個(gè)參數(shù),但是在調(diào)用時(shí)不為這個(gè)參數(shù)賦值,這個(gè)特殊變量指對象本身,依據(jù)慣例它的名稱是 self,類似 C#中的 this;class Animal: pass #empty block _init_ 方法 在類的一個(gè)對象被創(chuàng)建時(shí)調(diào)用該方法;相當(dāng)于 c+中的構(gòu)造函數(shù);_del_方法 在類的對象被銷毀時(shí)調(diào)用該方法;相當(dāng)于 c+中的析構(gòu)函數(shù); 在使用 del 刪除一個(gè)對象時(shí)也就調(diào)用_del_方法;Python 中全部的類成員包括數(shù)據(jù)成員 都是 public 的;只有一個(gè)例外, 假如使用的數(shù)據(jù)成員以雙下劃線為前綴,就為私有變量;class Per
36、son: Count = 0 def _init_self, name, age: Person.Count += 1 = name self._age = age p = Personpeter, 25 p1 = Personjohn, 20 print Person.Count #2 print #peter print p._age #AttributeError: Person instance has no attribute _age 繼承:為了使用繼承,基類的名稱作為一個(gè)元組跟在類名稱的后面;的例子:1 class SchoolMember: 2 Represent any sc
37、hool member. 只供學(xué)習(xí)與溝通python 支持多重繼承;下面是一個(gè)關(guān)于繼承此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除3 def _init_self, name, age: 4 = name 5 self.age = age 6 print Initializing a school member. 7 8 def tellself: 9 Tell my details 10 print Name: %s, Age: %s, % , self.age, 11 12 class TeacherSchoolMember: 13 Represent a teacher. 14 def
38、_init_self, name, age, salary: 15 SchoolMember._init_self, name, age 16 self.salary = salary 17 print Initializing a teacher 18 19 def tellself: 20 SchoolMember.tellself 21 print Salary: %d % self.salary 22 23 class StudentSchoolMember: 24 Represent a student. 25 def _init_self, name, age, marks: 26
39、 SchoolMember._init_self, name, age 27 self.marks = marks 28 print Initializing a student 29 30 def tellself: 31 SchoolMember.tellself 32 print Marks: %d % self.marks 33 34 print SchoolMember._doc_ 35 print Teacher._doc_ 36 print Student._doc_ 37 38 t = TeacherMr. Li, 30, 9000 39 s = StudentPeter, 2
40、5, 90 40 41 members = t, s 42 43 for m in members: 44 m.tell 程序輸出如下:只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除Represent any school member. Represent a teacher. Represent a student. Initializing a school member. Initializing a teacher Initializing a school member. Initializing a student Salary: 9000 Name: Mr. Li,
41、 Age: 30, Name: Peter, Age: 25, Marks: 90 八、輸入 /輸出程序與用戶的交互需要使用輸入/輸出,主要包括掌握臺(tái)和文件;對于掌握臺(tái)可以使用raw_input 和 print,也可使用 str 類; raw_inputxxx 輸入 xxx 然后讀取用戶的輸入并返回;1. 文件輸入 /輸出可以使用 file 類打開一個(gè)文件,使用 file 的 read、readline 和 write 來恰當(dāng)?shù)淖x寫文件;對文件讀寫才能取決于打開文件時(shí)使用的模式,常用模式有讀模式 r 、寫模式 w 、追加模式 a ,文件操作之后需要調(diào)用1 test = 2 This is a
42、program about file I/O. 3 4 Author: Peter Zhange 5 Date: 2022/12/25 6 7 close 方法來關(guān)閉文件;8 f = filetest.txt, w # open for writing, the file will be created if the file doesnt exist 9 f.writetest # write text to file 10 f.close # close the file 11 12 f = filetest.txt # if no mode is specified, the defau
43、lt mode is readonly. 13 14 while True: 15 line = f.readline # zero length indicates the EOF of the file 16 if lenline = 0: 17 break 18 print line, 19 20 f.close 2. 儲(chǔ)備器只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除python 供應(yīng)一個(gè)標(biāo)準(zhǔn)的模塊,成為 pickle ,使用它可以在一個(gè)文件中儲(chǔ)備任何 python 對象,之后可以完整的取出來,這被稱為長久地儲(chǔ)備對象;仍有另外一個(gè)模塊成為 cPickle ,它的功能和 p
44、ickle 完全一樣,只不過它是用 c 寫的,要比 pickle 速度快 大約快 1000 倍;import cPickle datafile = data.data namelist = peter, john, king f = filedatafile, w cPickle.dumpnamelist, f f.close del namelist f = filedatafile storednamelist = cPickle.loadf print storednamelist #peter, john, king 九、反常當(dāng)程序中顯現(xiàn)某些反常的狀況時(shí),反常就發(fā)生了;python 中
45、可以使用try . except 處理;try: print 1/0 except ZeroDivisionError, e: print e except: print error or exception occurred. #integer division or modulo by zero 可以讓 try . except 關(guān)聯(lián)上一個(gè) else,當(dāng)沒有反常時(shí)就執(zhí)行 else;我們可以定義自己的反常類,需要繼承 Error 或 Exception;class ShortInputExceptionException: A user-defined exception class def
46、 _init_self, length, atleast: Exception._init_self 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除self.length = length self.atleast = atleast try: s = raw_inputenter someting- if lens 3: raise ShortInputExceptionlens, 3 except EOFError: print why you input an EOF. except ShortInputException, ex: print The lenght of i
47、nput is %d, was expecting at the least %d % ex.length, ex.atleast else: print no exception #The lenght of input is 1, was expecting at the least 3 try.finally try: f = filetest.txt while True: line = f.readline if lenline = 0: break time.sleep2 print line, finally: f.close print Cleaning up. 十、 Pyth
48、on 標(biāo)準(zhǔn)庫Python 標(biāo)準(zhǔn)庫是隨 Pthon 附帶安裝的,包含了大量極其有用的模塊;1. sys 模塊 sys 模塊包含系統(tǒng)對應(yīng)的功能sys.argv-包含命令行參數(shù),第一個(gè)參數(shù)是 py 的文件名 sys.platform-返回平臺(tái)類型 sys.exitstatus- 退出程序,可選的 status范疇: 0-127:0 表示正常退出,其他表示不正常,可拋反常大事供捕 獲sys.path-程序中導(dǎo)入模塊對應(yīng)的文件必需放在sys.path 包含的目錄中,使用sys.path.append 添加自己的模塊路徑sys.modules-This is a dictionary that maps
49、module names to modules which have already been loaded sys.stdin,sys.stdout,sys.stderr-包含與標(biāo)準(zhǔn) I/O 流對應(yīng)的流對象 s = sys.stdin.readline 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除sys.stdout.writes 2. os 模塊該模塊包含普遍的操作系統(tǒng)功能Windows,它是 nt,而對于 Linux/Unix用戶,它是 posix 字符串指示你正在使用的平臺(tái);比如對于os.getcwd函數(shù)得到當(dāng)前工作目錄,即當(dāng)前Python 腳本工作的目錄路徑os.get
50、env和 os.putenv函數(shù)分別用來讀取和設(shè)置環(huán)境變量 os.listdir 返回指定目錄下的全部文件和目錄名 os.remove函數(shù)用來刪除一個(gè)文件 os.system函數(shù)用來運(yùn)行 shell 命令os.linesep 字符串給出當(dāng)前平臺(tái)使用的行終止符;例如,os.sep 操作系統(tǒng)特定的路徑分割符 os.path.split 函數(shù)返回一個(gè)路徑的目錄名和文件名Windows 使用 rn,Linux 使用 n而 Mac 使用 r os.path.isfile 和 os.path.isdir函數(shù)分別檢驗(yàn)給出的路徑是一個(gè)文件仍是目錄os.path.existe函數(shù)用來檢驗(yàn)給出的路徑是否真地存在十
51、一、其他1. 一些特殊的方法名稱 說明_init_self,. 這個(gè)方法在新建對象恰好要被返回使用之前被調(diào)用;_del_self 恰好在對象要被刪除之前調(diào)用;_str_self 在我們對對象使用 print 語句或是使用 str的時(shí)候調(diào)用;_lt_self,other 當(dāng)使用 小于 運(yùn)算符( 等等)都有特殊的方法;_getitem_self,key 使用 xkey 索引操作符的時(shí)候調(diào)用;_len_self 對序列對象使用內(nèi)建的 len函數(shù)的時(shí)候調(diào)用;下面的類中定義了上表中的方法:class Array: _list = def _init_self: print constructor def
52、 _del_self: print destructor def _str_self: return this self-defined array class def _getitem_self, key: return self._listkey def _len_self: return lenself._list 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除def Addself, value: self._list.appendvalue def Removeself, index: del self._listindex def DisplayItemsself: p
53、rint show all items- for item in self._list: print item arr = Array #constructor print arr #this self-defined array class print lenarr #0 arr.Add1 arr.Add2 arr.Add3 print lenarr #3 print arr0 #1 arr.DisplayItems #show all items- #1 #2 #3 arr.Remove1 arr.DisplayItems #show all items- #1 #3 #destructo
54、r 2. 綜合列表通過列表綜合,可以從一個(gè)已有的列表導(dǎo)出一個(gè)新的列表;list1 = 1, 2, 3, 4, 5 list2 = i*2 for i in list1 if i 3 print list1 #1, 2, 3, 4, 5 print list2 #8, 10 3. 函數(shù)接收元組 /列表 /字典當(dāng)函數(shù)接收元組或字典形式的參數(shù)的時(shí)候,有一種特殊的方法,使用 數(shù)量的參數(shù)的時(shí)候特殊有用;只供學(xué)習(xí)與溝通*和* 前綴;該方法在函數(shù)需要獵取可變此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除由于在 args 變量前有 * 前綴,全部余外的函數(shù)參數(shù)都會(huì)作為一個(gè)元組儲(chǔ)備在args 中;假如使用的是*
55、前綴,余外的參數(shù)就會(huì)被認(rèn)為是一個(gè)字典的鍵 /值對;def powersumpower, *args: total = 0 for i in args: total += powi, power return total print powersum2, 1, 2, 3 #14 def displaydic*args: for key,value in args.items: print key:%s;value:%s % key, value displaydica=one, b=two, c=three #key:a;value:one #key:c;value:three #key:b;v
56、alue:two 4. lambda lambda 語句被用來創(chuàng)建新的函數(shù)對象,并在運(yùn)行時(shí)返回它們;為函數(shù)體,而表達(dá)式的值被這個(gè)lambda 需要一個(gè)參數(shù),后面僅跟單個(gè)表達(dá)式作新建的函數(shù)返回;留意,即便是print 語句也不能用在lambda 形式中,只能使用表達(dá)式;func = lambda s: s * 3 print funcpeter #peter peter peter func2 = lambda a, b: a * b print func22, 3 #6 5. exec/eval exec 語句用來執(zhí)行儲(chǔ)存在字符串或文件中的Python 語句;eval 語句用來運(yùn)算儲(chǔ)備在字符串
57、中的有效Python 表達(dá)式;cmd = print hello world exec cmd #hello world 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除expression = 10 * 2 + 5 print evalexpression #25 6. assert assert語句用來斷言某個(gè)條件是真的,并且在它非真的時(shí)候引發(fā)一個(gè)錯(cuò)誤-AssertionError ;flag = True assert flag = True try: assert flag = False except AssertionError, err: print failed el
58、se: print pass 7. repr 函數(shù)repr 函數(shù)用來取得對象的規(guī)范字符串表示;反引號(hào)(也稱轉(zhuǎn)換符)可以完成相同的功能;留意,在大多數(shù)時(shí)候有 evalreprobject = object ;可以通過定義類的 _repr_方法來掌握對象在被 repr 函數(shù)調(diào)用的時(shí)候返回的內(nèi)容;arr = 1, 2, 3 print arr #1, 2, 3 print reprarr #1, 2, 3 十二、練習(xí)實(shí)現(xiàn)一個(gè)通訊錄,主要功能:添加、刪除、更新、查詢、顯示全部聯(lián)系人;1 import cPickle 2 import os 3 import sys 4 5 class Contact:
59、 6 def _init_self, name, phone, mail: 7 = name 8 self.phone = phone 9 self.mail = mail 10 11 def Updateself, name, phone, mail: 只供學(xué)習(xí)與溝通此文檔僅供收集于網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系網(wǎng)站刪除12 = name 13 self.phone = phone 14 self.mail = mail 15 16 def displayself: 17 print name:%s, phone:%s, mail:%s % , self.phone, self.mail 18 19 20 #
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版樣機(jī)試制合作協(xié)議
- 2024年出租車租車合同模板
- 懷孕期間夫妻分手協(xié)議
- 城市軌道交通工程建筑信息模型(BIM)分類與編碼標(biāo)準(zhǔn)
- 建筑行業(yè)標(biāo)準(zhǔn)腳手架租賃合同
- 2024項(xiàng)目投資合同撰寫要點(diǎn)
- 購買混凝土合同范本
- 生物中圖版自主訓(xùn)練:第三單元第一章第一節(jié)遺傳物質(zhì)的發(fā)現(xiàn)
- 簡單的賠償協(xié)議書2024年
- 2024屆畢業(yè)生就業(yè)協(xié)議書樣本
- 2023年上海機(jī)場集團(tuán)有限公司校園招聘筆試題庫及答案解析
- 鏡頭的角度和方位課件
- 污水處理常用藥劑簡介知識(shí)講解課件
- 五年級(jí)上冊英語課件-Unit 1《My future》第1課時(shí)牛津上海版(三起) (共28張PPT)
- 光交接箱施工規(guī)范方案
- 氣溫和降水學(xué)案
- 普及人民代表大會(huì)制度知識(shí)競賽試題庫(1000題和答案)
- 國家電網(wǎng)公司施工項(xiàng)目部標(biāo)準(zhǔn)化管理手冊(2021年版)線路工程分冊
- 《汽車低壓線束設(shè)計(jì)規(guī)范》
- 工程項(xiàng)目增加簽證單
- 被一部電影感動(dòng)記韓國電影《鳴梁海戰(zhàn)》觀后感
評論
0/150
提交評論