




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章判斷題:1-4: 第二章判斷題:1-5: 6-10: 11-15: 添加代碼題:1我們都知道,下面的代碼:print “I like writing in Python.”print “It is so much fun.”執(zhí)行后,運(yùn)行結(jié)果為:I like writing in Python.It is so much fun.你能只用一行代碼實(shí)現(xiàn)上述效果嗎?第3章 習(xí)題參考答案:選擇題ABABB簡(jiǎn)答題1break或continue語(yǔ)句用來(lái)提前跳出循環(huán),即循環(huán)條件沒(méi)有滿足False時(shí)或者序列還沒(méi)被完全遞歸完,也會(huì)停止執(zhí)行循環(huán)語(yǔ)句。其中,continue 語(yǔ)句用于跳出本次循環(huán),而break
2、用于跳出整個(gè)循環(huán)。該程序段的功能是檢查用戶輸入的用戶名及密碼是否正確,輸入正確則顯示“登錄成功”;輸入錯(cuò)誤則由用戶重新輸入,但輸入錯(cuò)誤次數(shù)超過(guò)3次則不允許再次輸入,直接顯示“登錄失敗”。break在此程序段中的作用是當(dāng)輸入用戶名和密碼正確時(shí)或輸入錯(cuò)誤次數(shù)超過(guò)3次時(shí)直接結(jié)束循環(huán)。2Python語(yǔ)句代碼縮進(jìn)的書(shū)寫原則:在邏輯行首的空白(空格和制表符)用來(lái)決定邏輯行的縮進(jìn)層次,從而用來(lái)決定語(yǔ)句的分組。這意味著同一層次的語(yǔ)句必須有相同的縮進(jìn)。有相同的縮進(jìn)的代碼表示這些代碼屬于同一代碼塊。代碼段1和代碼段2的區(qū)別在于“print(sum)”這個(gè)語(yǔ)句的位置。在代碼段1中,“print(sum)”和“for
3、 i in range(10):”在同一層次,表示它們是并列的語(yǔ)句,“print(sum)”不在循環(huán)體內(nèi),所以循環(huán)結(jié)束后才輸出sum的值;而在代碼段2中,“print(sum)”在循環(huán)體內(nèi),表示每循環(huán)一次都會(huì)輸出一次sum的值。3錯(cuò)誤1:循環(huán)嵌套代碼的縮進(jìn)錯(cuò)誤2:range(1,4)只是包括1,2,3,不包括4。所以要改成range(1,5)錯(cuò)誤3:if( i!=j!=k)的寫法不對(duì)。改為if( i!=j and j!=k)4輸出結(jié)果1355. bonus1 = 100000 * 0.1bonus2 = bonus1 + 100000 * 0.500075bonus4 = bonus2 + 2
4、00000 * 0.5bonus6 = bonus4 + 200000 * 0.3bonus10 = bonus6 + 400000 * 0.15i = int(raw_input(input gain:n)if i = 100000: bonus = i * 0.1elif i = 200000: bonus = bonus1 + (i - 100000) * 0.075elif i = 400000: bonus = bonus2 + (i - 200000) * 0.05elif i = 600000: bonus = bonus4 + (i - 400000) * 0.03elif i
5、 =90: print(A)else: 60=score90: print(B)else: print(C)7. str=input(enter a sentence:)for char in str: if 65=ord(char)=90 or 97=ord(char)=122: print(英文字母) elif ord(char)=32: print(空格) elif 48=ord(char)0: print(num%10,end=) i+=1 num=num/10print(n這個(gè)數(shù)是%d位數(shù)%i)10. for i in range(100,1000): if i %7=0 and i
6、/10%10=2: print (i)11.j=0for i in range(2000,2501): if i %400=0 or i%4=0 and i%100!=0: j+=1 print(i,end= ) if j %8=0: print()12. i=7while True: if i%2=1 and i%3=2 and i%4=3 and i%5=4 and i%6=5 and i%7=0: print(i) break i+=113. total=13i=0while total=26: total=total*(1+0.008) i+=1print(i)14. num=int(
7、input(please enter num:)flag=Truefor i=2 to num-1: if num%i=0: flag=Falseif flag: print(%d是素?cái)?shù)%num)else: print(%d不是素?cái)?shù)%num)15. k=0for i in range(1,1001): flag=True for j in range(2,i): if i%j=0: flag=False if flag: k+=1 print(i,end= ) if k%10=0: print() k=116. a=int(input(enter a:)b=int(input(enter b:
8、)c=int(input(enter c:)if ac: if bc: print(a,b,c) else: print(a,c,b)else: print(c,a,b)實(shí)訓(xùn)題求最大公約數(shù)代碼參考書(shū)上例3.6。求出最大公約數(shù)后即可相應(yīng)求出最小公倍數(shù)。求1!+2!+3!+20!參考代碼:sum=0for i in range(1,21): t=1for j in range(1,i+1):t*=jsum+=tprint(sum)輸出斐波那契數(shù)列的前20項(xiàng)參考代碼:f1=1f2=1for i in range(1,21):print(f1,f2) f1+=f2 f2+=f1編程找出1000之內(nèi)的所
9、有完數(shù),并輸出其因子。參考代碼:l = for n in range (1,1001): for a in range (1,n): if n%a =0: l.append(a) if sum(l)=n: print (l) print (n) l = 輸出九九乘法表參考代碼:for x in range(1,10): for y in range(1,x+1): r=x*y print (%d * %d = %-2d %(y,x,r), ,end=)#%d格式化成整數(shù),- 代表左對(duì)齊,數(shù)字代表占位。 print (end=n)#這一句代表,每次遍歷完一個(gè)周期換行,并下一次遍歷的結(jié)果將從該行輸
10、出。如果是print()將從下一行開(kāi)始輸出。輸入一系列數(shù)字,并求和與求平均數(shù)。sum=0.0i=0num=int(input(請(qǐng)輸入數(shù)字,以0結(jié)束)while num!=0: sum+=num num=int(input(請(qǐng)輸入數(shù)字,以0結(jié)束) i+=1average=sum/iprint(加起來(lái)總數(shù)為%d,平均數(shù)%f%(sum,average)第4章課后練習(xí)答案:一、填空題:1h/e/l/l/o/ /w/o/r/l/d/! 2.回車換行 3.False 4.(1) str-1:-1 (2) str.upper() (3)str5:12 (4)str:2 (5) /.join(list(str
11、) (6)www.sina.www.gdpu.www.good.www.tianya.replace(www,萬(wàn)維網(wǎng)) 5.c:test.htm 6. 1 7. HELLO WORLD 8. True 9. 123456 10.True二、簡(jiǎn)答題:1.假設(shè)有一段英文,其中有單詞中間的字母“i”誤寫為“l(fā)”,請(qǐng)編寫程序進(jìn)行糾正。x = i am a teacher,i am man, and i am 38 years old.I am not a businessman.x = x.replace(i ,I )print(x)2.有一段英文文本,其中有單詞連續(xù)重復(fù)了2次,編寫程序檢查重復(fù)的單詞
12、并只保留一個(gè)。例如文本內(nèi)容為“This is is a desk.”,程序輸出為“This is a desk.”x=Thisisaadesk.pattern=pile(r(?Pbw+b)s(?P=f)matchResult=pattern.search(x)x=x.replace(matchResult.group(0),matchResult.group(1)print(x)3.編寫程序,用戶輸入一段英文,然后輸出這段英文中所有長(zhǎng)度為3個(gè)字母的單詞。import rewords=input(Input the words:)l=re.split(. +,words) #使用空格分隔詞語(yǔ),得
13、到各個(gè)單詞print(l)i=0 #這里我設(shè)置的是計(jì)數(shù)器for i in l: if len(i)=3: #如果單詞的長(zhǎng)度為3 輸出 print(i) else: print()4.求s=a+aa+aaa+aaaa+aa.a的值,其中a是一個(gè)數(shù)字。例如2+22+222+2222+22222(此時(shí)共有5個(gè)數(shù)相加),幾個(gè)數(shù)相加由鍵盤控制。num=int(input(請(qǐng)輸入一個(gè)數(shù)字)count=int(input(請(qǐng)輸入數(shù)字的位數(shù))sum=0temp=0for i in range(count): temp+=num*10*i print(temp) sum+=tempprint(sum)5. 一個(gè)
14、數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱為完數(shù)。例如6=123。編程找出1000以內(nèi)的所有完數(shù)。#encoding:utfn=input(Please input a number!)sum=0printS=for i in range(1,n): if n % i=0: sum=sum+iif sumn: print %d is 不足數(shù)%nelif sumn: print %d is 豐沛數(shù)%nelse: print %d is 完數(shù)%n printS= str(n) + = for i in range(1,n): if n% i=0: printS+= str(i) + + print p
15、rintS0:len(printS)-16. 打印出如下圖案。 (1)for i in range(1,10): print( *(10-i),end=) print(str(i)*(2*i-1)(2)n=123456789for i in n-1:0:-1: s=n-1:int(i)-2:-1 print (%s*%d+%d=%d%(s,9,int(i)-2,int(s)*9+int(i)-2)實(shí)戰(zhàn)作業(yè)1、輸入一串字符串,判斷它是不是回文數(shù)。如Madam,ImAdam是回文數(shù)。提示:要把一串字符中所有的標(biāo)點(diǎn)符號(hào)去除,并把所有的大寫字符變成小寫字符再進(jìn)行比較。如“Madam,ImAdam“,轉(zhuǎn)
16、化后變成“madamimadam”,正讀與逆讀是一樣的,為回文。import string #導(dǎo)入字符串函數(shù)庫(kù) string.punctuation=!#$%&()*+,-./:;?_|string.whitespace=tnx0bx0cr import stringoriginalStr=raw_input(enter a string:)modifiedStr=originalStr.lower()badChars=string.whitespace+string.punctuationfor char in modifiedStr: if char in badChars: modifi
17、edStr=modifiedStr.replace(char,)print the originalStr is: %snthe modifiedStr is: %snthe reverseStr is: %s%(originalStr,modifiedStr,modifiedStr:-1)if modifiedStr=modifiedStr:-1: print 字符串%s是回文%originalStrelse: print 字符串%s不是回文%originalStr2. 計(jì)算Poker中出現(xiàn)各種手?jǐn)?shù)的概率,現(xiàn)給出Poker-hand-testing.data文件,其中有1000000條記錄,
18、要求讀出每一條記錄,并統(tǒng)計(jì)以下問(wèn)題:以下是每條記錄的格式 : 3, 10, 1, 7, 2, 12, 4, 2 , 2, 1, 04, 9, 4, 12, 4, 13, 2, 6 , 3, 4, 03, 2, 2, 2, 3, 12, 3, 1 , 4, 2, 34, 11, 2, 8, 1, 13, 4, 7 , 1, 7, 14, 8, 3, 8, 1, 3, 1, 4 , 3, 7, 12, 7, 2, 5, 3, 10, 4, 13 , 3, 7, 11, 4, 3, 4, 3, 5, 4, 10 , 2, 10, 2以下是各種類型的牌的編號(hào): 圖4-9 牌的類型要求:(1)計(jì)算Pok
19、er有多少行;(2)計(jì)算包含1對(duì)牌的總手?jǐn)?shù)與出現(xiàn)的概率;(3)計(jì)算所有牌類型出現(xiàn)的手?jǐn)?shù)及概率 。# count poker hands# 1. open the poker data file for readingpoker_file = open(poker-hand-testing.data,r)total_count_int = 0 # 2. create and initialize variable to hold the total countpair_count_int = 0 # create and initialize variable to hold pair coun
20、t# 3. Loop through each line of the filefor line_str in poker_file: total_count_int = total_count_int + 1 # (a). add one total for each hand fields = line_str.split(,) # (b). split on a comma hand_rank_str = fields-1 # and get the last field hand_rank_int = int(hand_rank_str) if hand_rank_int = 1: #
21、(c) if handRank is 1 (it is a pair) pair_count_int = pair_count_int + 1 # add one to pair count print(Total hands in file: , total_count_int) # 4. print the valuesprint(Count of pair hands: , pair_count_int)print(Probability of a pair: :9.4%.format(pair_count_int/total_count_int)3.智多星游戲:計(jì)算機(jī)隨機(jī)產(chǎn)生4種不相同
22、的顏色序列,玩家不知道,讓玩家輸入四種顏色,與計(jì)算機(jī)隨機(jī)產(chǎn)生的序列作比較,如果全部相同則顯示猜對(duì)了,否則重新輸入,設(shè)定總的輸入次數(shù),超過(guò)總次數(shù),則失敗。要求如下:(1)設(shè)定總的嘗試次數(shù)。(2)如果輸入的顏色與隨機(jī)序列在位置與顏色都相符,則打印“”。(3)如果輸入的顏色與隨機(jī)序列的顏色相符,但是位置上不相符,則打印“”。(4)如查輸入的顏色與位置都不對(duì),則打印“”。(5)當(dāng)輸入的顏色與位置都對(duì)了,就顯示猜對(duì)了。(6)如果超過(guò)總的輸入次數(shù),就顯示失敗。#encoding:gbkimport randomimport winsoundi=0s=RYBGCOPWstr=j=0corr=#產(chǎn)生四個(gè)隨機(jī)顏
23、色與位置,并不能重復(fù)while j4: tempChar=random.choice(s)#生成一個(gè)隨機(jī)字符 if tempChar not in str: str+=tempChar j+=1#循環(huán)12次while i mydict= #創(chuàng)建一個(gè)空的字典 mydict #輸出此字典的內(nèi)容(2) 通過(guò)dict函數(shù)創(chuàng)建字典dict函數(shù)是字典類的構(gòu)造函數(shù),也可以利用此函數(shù)來(lái)創(chuàng)建字典。創(chuàng)建一個(gè)空字典: dict()3、(1)get函數(shù):訪問(wèn)字典成員get()函數(shù)根據(jù)key獲取值。 d=one:1,two:2,three:3 print(d.get(two)(2)copy函數(shù):返回一個(gè)具有相同鍵值的新
24、字典 x=one:1,two:2,three:3,test:a,b,c #創(chuàng)建一個(gè)字典x print(x) #輸出字典xone: 1, two: 2, test: a, b, c, three: 3 (3)pop函數(shù):刪除字典中對(duì)應(yīng)的鍵Pop函數(shù)可以刪除字典中的鍵及其對(duì)應(yīng)的值。 d=one:1,two:2,three:3 d.pop(two) #刪除鍵 two(4)fromkeys函數(shù):用給定的鍵建立新的字典fromkeys函數(shù)可以用給定的鍵建立新的字典,鍵默認(rèn)對(duì)應(yīng)的值為None d=dict.fromkeys(one,two,three)(5)update函數(shù):用一個(gè)字典更新另外一個(gè)字典up
25、date函數(shù)可以用一個(gè)字典來(lái)更新另外一個(gè)字典。操作如下: d= one:123, two:2, three:3 實(shí)戰(zhàn)作業(yè):1、略(參考書(shū)中字典操作舉例)2、def getdict(phone): A=i for i in range(0,10) B=zero,one,two,three,four,five,six,seven,eight,nine mydict=dict(zip(A,B) for i in phone: print mydictint(i) def main(): phone=raw_input(Please enter a series phone number:) getd
26、ict(phone)main()3、import stringdef Mostran(wholetext): f=open(e:Mos.txt,r) Mostext= for line in f: Mostext+=line f.close() Lwhole=Mostext.split() L1=Lwhole:2 #這種間隔分片出來(lái)就是列表 L2=Lwhole1:2 MosDict=dict(zip(L1,L2) for char in wholetext: print MosDictchardef main(): temp=raw_input(Enter a passage:) temp=t
27、emp.upper() wholetext= for char in temp: if char not in string.whitespace+string.punctuation: wholetext+=char translation=Mostran(wholetext)main()第9章習(xí)題答案一 選擇題1.B 2.C 3.B 4.D二 簡(jiǎn)答題1、什么是異常?答:異常是一個(gè)事件,該事件會(huì)在程序執(zhí)行過(guò)程中發(fā)生,影響了程序的正常執(zhí)行。一般情況下,在Python無(wú)法正常處理程序時(shí)就會(huì)發(fā)生一個(gè)異常。當(dāng)Python腳本發(fā)生異常時(shí)我們需要捕獲并處理它,如果不處理,并且調(diào)用此程序的上層程序也不處理
28、,程序會(huì)終止執(zhí)行2、異常和錯(cuò)誤的區(qū)別?答:錯(cuò)誤通常是語(yǔ)法錯(cuò)誤,是編程人員錯(cuò)誤地使用語(yǔ)法、錯(cuò)誤地鍵入字符等原因造成,這需要編程人員不斷提高編碼能力來(lái)避免。異常是語(yǔ)法正確的代碼在執(zhí)行過(guò)程中遇到的無(wú)法處理的情況,比如除數(shù)為0,數(shù)組越界等,這需要編程人員通過(guò)捕獲異常來(lái)避免程序崩潰,以提高程序的健壯性。3、簡(jiǎn)述處理異常的一般結(jié)構(gòu)?異常處理結(jié)構(gòu)如下: try:except : except: except:#上一句except分支不指定任何類型的異常,表示可以匹配任何異常類型。 else: finally:4 答:A、statement3不會(huì)執(zhí)行。B、statement4不會(huì)執(zhí)行C、statement4會(huì)
29、執(zhí)行5 程序輸出“Index out of bound”6 程序輸出:DoneNothing is wrongFinally we are hereContinue7 程序輸出:Index out of boundFinally we are hereContinue8 ArithmeticError被先捕獲,而它是ZeroDivisionError的父類,因此即便是因除數(shù)為0而拋出異常,也是被except:ArithmeticErro分支捕獲,而不會(huì)被后面的except:ZeroDivisionError分支捕獲。因此,后面的分支永遠(yuǎn)不會(huì)被執(zhí)行。選擇題1.C2.A簡(jiǎn)答題wxPython中子語(yǔ)
30、句塊采用縮進(jìn)方式編寫,有子語(yǔ)句的語(yǔ)句以冒號(hào)結(jié)束,所有該行下的縮進(jìn)行都屬于以該冒號(hào)終止的語(yǔ)句。當(dāng)縮進(jìn)回復(fù)到原來(lái)的縮進(jìn)時(shí),這一塊子語(yǔ)句塊就結(jié)束了。 包括但不限于wx.RadioBox,wx.CheckBox,wx.ToolBar,wx.Dialog等實(shí)戰(zhàn)作業(yè)import wx class MyFrame(wx.Frame): def _init_(self, parent, title): wx.Frame._init_(self, parent, title=title, size=(800,800) self.control = wx.TextCtrl(self, style=wx.TE_MU
31、LTILINE) self.Show(True) app = wx.App(False) frame = MyFrame(None, 我的小型編輯器) app.MainLoop()略略選擇題1. B 2. B 3. A 4. B簡(jiǎn)答題1. 對(duì)象是對(duì)某個(gè)具體客觀事物的抽象,類是對(duì)對(duì)象的抽象描述,在計(jì)算機(jī)語(yǔ)言中是一種抽象的數(shù)據(jù)類型。類定義了數(shù)據(jù)類型的數(shù)據(jù)(屬性)和行為(方法)。類與對(duì)象的關(guān)系是,對(duì)象是類的實(shí)例,類是對(duì)象的模板。2. 面向?qū)ο蟪绦蛟O(shè)計(jì)具有如下優(yōu)點(diǎn):(1)符合人們習(xí)慣的思維方法,便于分解大型的復(fù)雜多變的問(wèn)題。由于對(duì)象對(duì)應(yīng)于現(xiàn)實(shí)世界中的實(shí)體,因而可以很自然地按照現(xiàn)實(shí)世界中處理實(shí)體的方法來(lái)
32、處理對(duì)象,軟件開(kāi)發(fā)者可以很方便地與問(wèn)題提出者進(jìn)行溝通和交流。(2)易于軟件的維護(hù)和功能的增減。對(duì)象的封裝性及對(duì)象之間的松散組合,都給軟件的修改和維護(hù)帶來(lái)了方便。(3)可重用性好。重復(fù)使用一個(gè)類(類是對(duì)象的定義,對(duì)象是類的實(shí)例化),可以比較方便地構(gòu)造出軟件系統(tǒng),加上繼承的方式,極大地提高了軟件開(kāi)發(fā)的效率。(4)與可視化技術(shù)相結(jié)合,改善了工作界面。隨著基于圖形界面操作系統(tǒng)的流行,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法也將深入人心。它與可視化技術(shù)相結(jié)合,使人機(jī)界面進(jìn)入GUI時(shí)代。3. Python定義一個(gè)類使用關(guān)鍵字class聲明,類的聲明格式如下:class className: 類體4. _init_()方法是
33、類的構(gòu)造方法,用于執(zhí)行類的實(shí)例的初始化工作,創(chuàng)建完實(shí)例后調(diào)用,初始化當(dāng)前對(duì)象的實(shí)例,無(wú)返回值。5.非綁定方法不與類或?qū)ο蠼壎?,類和?duì)象都可以調(diào)用,但是沒(méi)有自動(dòng)傳值。6.self指的是類實(shí)例對(duì)象,不是類7.繼承反應(yīng)客觀世界中各類事物之間的一種“一般和特殊”的關(guān)系。繼承是指類之間有繼承關(guān)系,子類有條件地繼承父類的特征。對(duì)象的一個(gè)新類可以從現(xiàn)有的類中派生出來(lái),這個(gè)過(guò)程稱為類繼承。例如“教師”、“學(xué)生”是“人”的一種,“人”是父類,“教師”、“學(xué)生”繼承“人”的特性。多態(tài)一般指具有多種形態(tài)的能力。對(duì)象的多態(tài)是指在一般類中定義的屬性或操作被特殊類繼承后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。利用多態(tài)
34、性,用戶可以發(fā)送一個(gè)通用的信息,而將所有的實(shí)現(xiàn)細(xì)節(jié)都留給接收消息的對(duì)象自行決定,這意味著同一消息即可調(diào)用不同的方法。例如:Print消息被發(fā)送給一個(gè)圖或表時(shí)調(diào)用的打印方法與將同樣的Print消息發(fā)送給一個(gè)正文文件而調(diào)用的打印方法會(huì)完全不同。8.私有屬性指的是只有在類方法中才能訪問(wèn)私有屬性,對(duì)象不能直接訪問(wèn)私有屬性。公有屬性可以被對(duì)象直接訪問(wèn)。通常,約定兩個(gè)下劃線開(kāi)頭,但是不以兩個(gè)下劃線結(jié)束的屬性為私有屬性,其它的都是公有屬性。9.實(shí)例方法:在類中最常定義的成員方法,它至少有一個(gè)參數(shù)并且必須以實(shí)例對(duì)象作為其第一個(gè)參數(shù),一般以“self”作為第一個(gè)參數(shù)。在類外,實(shí)例方法只能通過(guò)實(shí)例對(duì)象去調(diào)用。實(shí)例
35、方法的聲明格式如下:def 方法名(self, 形參列表):函數(shù)體類方法不對(duì)特定實(shí)例進(jìn)行操作,在類方法中訪問(wèn)實(shí)例屬性會(huì)導(dǎo)致錯(cuò)誤。類方法需要用修飾器classmethod來(lái)標(biāo)識(shí)其為類方法。對(duì)于類方法,第一個(gè)參數(shù)必須是類對(duì)象,一般以cls作為第一個(gè)參數(shù),類方法可通過(guò)實(shí)例對(duì)象和類對(duì)象去訪問(wèn)。類方法的聲明格式如下: classmethoddef 類方法名(cls, 形參列表):函數(shù)體靜態(tài)方法是與類的對(duì)象實(shí)例無(wú)關(guān)的方法。靜態(tài)方法不對(duì)特定實(shí)例進(jìn)行操作,在靜態(tài)方法中訪問(wèn)對(duì)象實(shí)例會(huì)導(dǎo)致錯(cuò)誤。靜態(tài)方法需要通過(guò)修飾器staticmethod來(lái)進(jìn)行修飾,聲明格式如下:staticmethoddef 靜態(tài)方法名(形參
36、列表)函數(shù)體10.將學(xué)生信息封裝成一個(gè)類Student,包括姓名、性別、年齡、家庭地址。并在display()方法中顯示這些信息。class Student: def _init_(self, name, sex, age, home_addr): =name self.sex=sex self.age=age self.home_addr=home_addr def display(self): print(I am a student, my name is %s, %s years old, sex is %s, home_addr is %s %(,self.age,self.sex,
37、self.home_addr)11.設(shè)計(jì)一個(gè)類代表長(zhǎng)方體,含有長(zhǎng)、寬、高三個(gè)對(duì)象屬性,含有計(jì)算體積的公有方法、計(jì)算表面積的公有方法。編寫主程序,生成一個(gè)一般長(zhǎng)方體,生成一個(gè)正方體。class Rectangle: def _init_(self, length, width, high): self.length=length self.width=width self.high=high def volume(self): return 1.0*self.length*self.width*self.high def surface(self): return 2.0*(self.lengt
38、h*self.width+self.length*self.high+self.width*self.high)cuboid=Rectangle(3.1,4.2,5.1)vol = cuboid.volume()sur = cuboid.surface()print(cuboid volume is %s and surface is %s %(vol,sur)cube=Rectangle(2,2,2)vol = cube.volume()sur = cube.surface()print(cube volume is %s and surface is %s %(vol,sur)12.定義一
39、個(gè)類代表三角形,類中含三條邊、求周長(zhǎng)的函數(shù),求面積的函數(shù)。#程序無(wú)三邊是否滿足三角形限制的判斷(三邊大于,任意兩邊之和大于第三邊)class Triangle:def _init_(self, a, b, c):self.a=aself.b=bself.c=cdef circle(self):return self.a+self.b+self.cdef area(self):p=(self.a+self.b+self.c)/2.0return pow(p*(p-self.a)*(p-self.b)*(p-self.c),0.5)c=tri.circle()a=tri.area()print(c
40、ircle is %s and area is %s: %(c,a)實(shí)戰(zhàn)作業(yè)1. 創(chuàng)建一個(gè)Point類表示二維坐標(biāo)平面的點(diǎn),定義實(shí)例屬性x和y表示坐標(biāo)對(duì)值。class Point:def _init_(self, x, y):self.x=xself.y=ydef distance(self,pt):return pow(pow(self.x-pt.x,2)+pow(self.y-pt.y,2),0.5)def sum(self,pt):newx=(self.x+pt.x)newy=(self.y+pt.y)return Point(newx,newy)p0=Point(0,0)p1=Poin
41、t(1,1)p2=Point(2,2)p3=Point(1,3)p1.distance(p0)p1.distance(p2)p1.distance(p3)p=p1.sum(p1)2. 創(chuàng)建一個(gè)Set類表示集合:class Set:def _init_(self, elements):self.data=set(elements)def addElement(self,x):self.data.add(x)def deleteElement(self,x):self.data.remove(x)def member(self,x):return (x in self.data)def intersection(self,set2):newset=Set()newset.data=self.data & set2.datareturn newsetdef union(self,set2):newset=Set()newset.data=self.data
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 年度服務(wù)合同范本
- epc工程廉政合同范本
- 保溫氈合同范本
- 合租經(jīng)營(yíng)協(xié)議合同范本
- 廠區(qū)維修電車合同范本
- 買房包干合同范例
- 原車主抵押合同范本
- 輪胎店銷售合同范本
- 醫(yī)療場(chǎng)所合作合同范本
- 勞動(dòng)作合同范例備案
- DLT5210.4-2018熱工施工質(zhì)量驗(yàn)收表格
- 醫(yī)院實(shí)習(xí)護(hù)士轉(zhuǎn)科表
- 2023年最新的郭氏宗祠的對(duì)聯(lián)大全
- 《中國(guó)古代文學(xué)史》宋代文學(xué)完整教學(xué)課件
- 新部編人教版四年級(jí)下冊(cè)道德與法治全冊(cè)教案(教學(xué)設(shè)計(jì))
- 物業(yè)服務(wù)企業(yè)市場(chǎng)拓展戰(zhàn)略規(guī)劃課件
- 2018年青海大學(xué)碩士論文格式模板
- 四年級(jí)道德與法治從中國(guó)制造到中國(guó)創(chuàng)造
- 兒童跌倒評(píng)估量表(Humpty-Dumpty)
- 南瓜套種玉米高產(chǎn)栽培技術(shù)-文檔資料
- 鑄件常見(jiàn)缺陷(圖文并貌)
評(píng)論
0/150
提交評(píng)論