




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Python程序設(shè)計(jì)與應(yīng)用課后習(xí)題參考答案
練習(xí)一參考答案
一、選擇題
題號123456
答案ACACDC
二、填空題
題號1234
答案控制器,存儲器解釋matplotlib,使用方便,清晰易讀,功
Pandas能豐富
練習(xí)二參考答案
略
練習(xí)三參考答案
題號20212223
答案ACC題目有誤,忽略
二、填空題
(1)False
(2)TrueFalse
(3)2.52
(4)9
(5)回車
(6)3;6;9
(7)縮進(jìn)
(8)dde
(9)字符串
(10)max()
三、設(shè)計(jì)題
(1)
x=5234
y=6885
print('%2.1f%%'%((y-x)*100/x))
(2)
a=int(input('a='))
b=int(input('b='))
c=int(input('c='))
d=int(input('d='))
print(a+b-c*d)
(3)
F=float(input('請輸入華氏度:'))
C=5/9*(F-32)
print('攝氏度為:%.lf,%C)
(4)
r=float(input「請輸入半徑r:'))
L=2*3.14*r
S=3.14*r*r
print('圓周長為%.2f,面積為%2f,%(L,S))
練習(xí)四參考答案
一、選擇題
題號12345678910
答案CDCCDBACBB
題號111213
答案CDD
二、填空題
(1)順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
(2)break
(3)根據(jù)條件表達(dá)式的不同結(jié)果執(zhí)行不同語句塊
(4)結(jié)束當(dāng)次循環(huán),繼續(xù)下次循環(huán)
(5)1:3:5:
(6)3:5:7:
(7)forwhile
(8)選擇
三、設(shè)計(jì)題
(1)
n=eval(input('輸入一個(gè)數(shù):'))
ifn%3==0andn%5==0:
print(n/可以同時(shí)被3和5整除,)
else:
print(n「不可以同時(shí)被3和5整除,)
(2)
year二eval(input('輸入一個(gè)年份:,))
ifyear%400!=0:
ifyear%4==0andyear%100!=0:
print僅ear,'是閏年)
else:
print(year」不是閏年)
else:
print(year」是閏年)
(3)
importmath
weight=eval(inputC請輸入快件重量:())
ifweight<=l:
pay=12
else:
pay=12+math.ceil(weight-l)*1.3
print(快遞費(fèi)是:%.2f元'%pay)
(4)
x=eval(input('輸入x:'))
ifx==0:
y=i
elifx>0:
y=x+l
else:
y=x*x+l
print(y)
(5)
s=0
i=100
n=l
whilen<=10:
s=s+i
i=i/2
ifn==10:break
s=s+i
n+=l
print(,s=%f,i=%f'%(s,i))
(6)
num=int(input("請輸入一個(gè)數(shù)字:"))
factorial=1
ifnum<0:
print("抱歉,負(fù)數(shù)沒有階乘")
elifnum==0:
print("0的階乘為1")
else:
foriinrange(l,num+1):
factorial=factorial*!
print("%d的階乘為%d"%(num,factorial))
(7)
sign=-l
s=0
foriinrange(2,101):
sign="sign
s=s+i*sign
print(s)
(8)
x=237600
r=12.45/100
y=x
n=l
whiley<=x*2:
n+=l
y=x*(l+r)**n
print("%d年后可以翻番"%n)
(9)
forninrange(100,1000):
i=n/100
j=n/10%10
k=n%10
ifn==i**3+j**3+k**3:
printn
(10)
s=l
f=l
n=eval(input('輸入n:'))
foriinrange(l,n+l):
f=f*i
s=s+l/f
print('e=%f'%s)
練習(xí)五參考答案
、選擇題
題號12345678910
答案DACADBCDDBCA
題號1112131415161718
答案DABDCAAB
二、設(shè)計(jì)題
1.輸入一個(gè)班某門課的成績(實(shí)數(shù)),用列表求最高成績、最低成績、不及格的成績列表、
不及格的人數(shù),并將所有的成績?nèi)≌?/p>
參考源程序:
#輸入該門課的每個(gè)學(xué)生的成績
score_list=[]#成績列表初始化
prints請逐個(gè)輸入學(xué)生成績,用空格分隔,以回車結(jié)束:,)
score_str=input()
temp=score_str.split(',)#以空格為分隔符切分輸入的字符串為每個(gè)成績一個(gè)子串
forstrintemp:
score_list.append(float(str))#將成績字符串轉(zhuǎn)換為float型并添加到成績列表
print(scorejist)
#求最高、最低成績
print。最高分:max(score_list)「最低分',min(score_list))
#求不及格的成績、人數(shù)
score_fail=[]#不及格成績列表初始化
forscoreinscorejist:
ifscore<60:
score_fail.append(score)
print("不及格的成績列表::score_fail「不及格的人數(shù):'Jen(score_fail))
#將成績?nèi)≌?/p>
i=0
forscoreinscorejist:
score_list[i]=int(score)
i+=l
print(scorejist)#輸出取整后的成績列表
參考運(yùn)行結(jié)果:
請逐個(gè)輸入學(xué)生成績,用空格分隔,以回車結(jié)束:
9089.5788860.545.530
[90.0,89.5,78.0,88.0,60.5,45.5,30.0]
最高分90.0最低分30.0
不及格的成績列表:[45.5,30.0]不及格的人數(shù):2
[90,89,78,88,60,45,30]
2.用元組定義游戲菜單,提示用戶輸入菜單選擇,提示信息為“請輸入菜單項(xiàng)對應(yīng)的數(shù)字,
1.游戲設(shè)置2.選擇游戲級別3.我的裝備4.我的積分0.退出”,當(dāng)用戶輸入數(shù)字后,
輸出相應(yīng)的菜單項(xiàng)名稱,若輸入0,則顯示“謝謝使用”,然后退出游戲。
參考源程序:
prompt^請輸入菜單項(xiàng)對應(yīng)的數(shù)字,L游戲設(shè)置2.選擇游戲級別3.我的裝備4.我的積
分0.退出‘
menuTuple=。游戲設(shè)置?選擇游戲級別?我的裝備?我的積分?謝謝使用)#菜單項(xiàng)元組
print(prompt)#顯示提示信息
numStr=input()#輸入選擇項(xiàng)對應(yīng)的數(shù)字
ifnumStr>='0'andnumStr<='4':
print(menuTuple[int(numStr)-l])#以(數(shù)字-1)為下標(biāo),輸出對應(yīng)的菜單項(xiàng)
else:
print('輸入錯(cuò)誤,超出0~41)
3.輸入一行字符,統(tǒng)計(jì)每個(gè)字符的出現(xiàn)次數(shù),并將結(jié)果存放在字典中。
參考源程序:
#輸入一行字符
strLine=input('輸入一行字符')
#將字符串轉(zhuǎn)換為字符列表
strList=list(strLine)
print(strList)
#統(tǒng)計(jì),結(jié)果放在字典statistics中,每個(gè)元素為(字符:次數(shù))
statistics={}
foriinstrList:
ifiinstatistics.keys():#如果字典中的key已包含字符i,則字符i的出現(xiàn)次數(shù)加1
statistics[!]+=1
else:#如果字典中不包含i代表的key,說明該元素
還未出現(xiàn)過,設(shè)為1
statistics[!]=1
#遍歷統(tǒng)計(jì)結(jié)果字典:先用items。把字典轉(zhuǎn)換為列表,然后輸出列表中的鍵值對。
forele,countinstatistics.items():
print("%s的出現(xiàn)次數(shù)為:%d"%(ele,count))
練習(xí)六參考答案
、選擇題
題號12345678910
答案ADCDDBACBA
二、填空題
1.def
2.global
3.None
4.15
5.8
6.['abc','acd','ade']
7.10
8.6
9.6
10.5
三、簡答題
1.寫出Python函數(shù)的基本格式。
Python函數(shù)的基本結(jié)構(gòu),概括起來有如下幾條:
(1)函數(shù)代碼塊以def關(guān)鍵詞開頭,后接函數(shù)標(biāo)識符名稱和圓括號()。
(2)任何傳入?yún)?shù)和自變量必須放在圓括號中間,圓括號之間可以用于定義參數(shù)。
(3)函數(shù)的第一行語句可以選擇性地使用文檔字符串一一用于存放函數(shù)說明。
(4)函數(shù)內(nèi)容以冒號起始,并且縮進(jìn)。
(5)return[表達(dá)式]結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相
當(dāng)于返回None。
2.簡述return語句的使用方法。
見實(shí)例:
【例6.4]return語句的用法。
defsum(argl,arg2):
#返回2個(gè)參數(shù)的和.
total=argl+arg2
print("函數(shù)內(nèi):”,total)
returntotal
#調(diào)用sum函數(shù)
total=sum(10,20)
print(“函數(shù)外:「total)
例6.4運(yùn)行結(jié)果如下:
函數(shù)內(nèi):30
函數(shù)外:30
例6.4展示了return基本的使用方法,當(dāng)使用return后,將return后的值返回到函數(shù)體
并且記錄下來,因此,第一個(gè)print函數(shù)total輸出值是30;由于return函數(shù)返回并記憶
了返回值,因此,第二個(gè)print函數(shù)total輸出值也是30。
3.什么是匿名函數(shù)?在什么情況下使用匿名函數(shù)。
Python允許不適用標(biāo)準(zhǔn)樣式def語句定義一個(gè)函數(shù),叫做匿名函數(shù),Python中使用
lambda來創(chuàng)建匿名函數(shù)。
lambda函數(shù)的用法。
(1)將lambda函數(shù)賦值給一個(gè)變量,通過這個(gè)變量間接調(diào)用該lambda函數(shù)。
例如,執(zhí)行語句add=lambdax,y:x+y,定義了加法函數(shù)lambdax,y:x+y,并將其賦值
給變量add,這樣變量add便成為具有加法功能的函數(shù)。例如,執(zhí)行add(l,2),輸出
為3=
(2)將lambda函數(shù)賦值給其他函數(shù),從而將其他函數(shù)用該lambda函數(shù)替換。
例如,為了把標(biāo)準(zhǔn)庫time中的函數(shù)sleep的功能屏蔽(Mock),我們可以在程序初始
化時(shí)調(diào)用time.sleep=lambdax:None。這樣,在后續(xù)代碼中調(diào)用time庫的sleep函數(shù)
將不會執(zhí)行原有的功能。例如,執(zhí)行time.sleep⑶時(shí),程序不會休眠3秒鐘,而是什么
都不做。
(3)將lambda函數(shù)作為其他函數(shù)的返回值,返回給調(diào)用者。函數(shù)的返回值也可
以是函數(shù),例如returnlambdax,y:x+y返回一個(gè)加法函數(shù)。這時(shí),lambda函數(shù)實(shí)際
上是定義在某個(gè)函數(shù)內(nèi)部的函數(shù),稱之為嵌套函數(shù),或者內(nèi)部函數(shù)。對應(yīng)地,將包含嵌
套函數(shù)的函數(shù)稱之為外部函數(shù)。
(4)將lambda函數(shù)作為參數(shù)傳遞給其他函數(shù)。部分Python內(nèi)置函數(shù)接收函數(shù)
作為參數(shù)。典型的此類內(nèi)置函數(shù)有如下幾種:
Dfilter函數(shù)。此時(shí)lambda函數(shù)用于指定過濾列表元素的條件。例如filter(lambda
*=%3==0,[1,2,3])指定將列表口23]中能夠被3整除的元素過濾出來,其結(jié)果是[3]。
2)sorted函數(shù)。此時(shí)lambda函數(shù)用于指定對列表中所有元素進(jìn)行排序的準(zhǔn)則。
例如sorted([l,2,3,4,5,6,7,8,9],key=lambdax:abs(5-x))將列表[1,2,3,4,5,6,7,8,9]
按照元素與5距離從小到大進(jìn)行排序,其結(jié)果是[5,4,6,3,7,2,8,1,9]。
3)map函數(shù)。此時(shí)lambda函數(shù)用于指定對列表中每一個(gè)元素的共同操作。例如
map(lambdax:x+1,[1,2,3])將列表[J2,3]中的元素分別加1,其結(jié)果[2,3,4]=
4)reduce函數(shù)。此時(shí)lambda函數(shù)用于指定列表中兩兩相鄰元素的結(jié)合條件。例
如reduce(lambdaa,b:'{},{}1.format(a,b),[1,2,3,4,5,6,7,8,9])將列表[1,2,3,4,5,6,7,
8,9]中的元素從左往右兩兩以逗號分隔的字符的形式依次結(jié)合起來,其結(jié)果是工2,3,4,
5,6,7,8,9'o
4.什么是變量的作用域?變量的作用域有哪幾類?
變量的作用域決定了在哪一部分程序可以訪問哪個(gè)特定的變量名稱。Python的作用域
一共有4種,分別是:(1)L(Local)局部作用域(2)E(Enclosing)閉包函數(shù)外的函數(shù)中
(3)G(Global)全局作用域(4)B(Built-in)內(nèi)建作用域。
5.簡述global和nonlocal關(guān)鍵字的異同點(diǎn)。
相同點(diǎn):都能修改變量的作用域。
區(qū)別:(1)兩者的功能不同。global關(guān)鍵字修飾變量后標(biāo)識該變量是全局變量,對該變
量的修改就是修改全局變量,而nonlocal關(guān)鍵字修飾變量后標(biāo)識該變量是上一級函數(shù)中的局
部變量,如果上一級函數(shù)中不存在該局部變量,nonlocal位置會發(fā)生錯(cuò)誤(最上層的函數(shù)使
用nonlocal修飾變量必定會報(bào)錯(cuò))。
(2)兩者使用的范圍不同。global關(guān)鍵字可以用在任何地方,包括最上層函數(shù)中和嵌套
函數(shù)中,及時(shí)之前未定義該變量,global修飾后也可以直接使用,而nonlocal關(guān)鍵字只能用
于嵌套函數(shù)中,并且外層函數(shù)中定義了相應(yīng)的局部變量,否則會發(fā)生錯(cuò)誤。
四、程序設(shè)計(jì)題
1.輸入三個(gè)整數(shù)x,y,z,請把這三個(gè)數(shù)有小到大輸出。
參考源程序:
#輸入三個(gè)整數(shù)x,y,z,請把這三個(gè)數(shù)由小到大輸出。
x=int(input('請輸入x:'))
y=int(input('請輸入y:'))
z=int(input(,請輸入z:'))
list=[x,y,z]#直接給list賦值
print('排序前:list)
list.sort()#sort()是內(nèi)置的排序函數(shù),可以排序字符類型。默認(rèn)為升序
print。升序:[list)
參考運(yùn)行結(jié)果:
請輸入x:4
請輸入y:3
請輸入z:4
排序前:[4,3,4]
升序:[3,4,4]
2.判斷101~200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)。
參考源程序:
foriinrange(101,201):
a=2
whilea<i:#
ifi%a==0:break
else:a=a+l
ifa==i:
print(i)
參考運(yùn)行結(jié)果:
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
3.輸入一行字符,分別統(tǒng)計(jì)出其中英文字母、空格、數(shù)字和其他字符的個(gè)數(shù)。。
參考源程序1:
s=inputC請輸入字符串:')
dic={,letter,:0,,space,:0/integer,:0,,other':0}
foriins:
ifi>'a'andi<'z'ori>'A'andk'Z':
dic['letter']+=1
elifi=='
dic['space']+=1
elifiin'0123456789,:
dic['integer']+=1
else:
dic['other']+=1
prin武統(tǒng)計(jì)字符串:對
print(dic)
參考源程序2:
#輸入字符串
tmpStr二input('請輸入字符串:')
alphaNum=0
spaceNum=0
numbers=0
otherNum=0
foriintmpStr:
ifi.isalpha():
alphaNum+=1
elifi.isspace():
spaceNum+=1
elifi.isnumeric():
numbers+=1
else:
otherNum+=1
print。字母二%d'%alphaNum)
printf空格二%d'%spaceNum)
print('數(shù)字二%d'%numbers)
prin"其他二%d%otherNum)
4.用lambda函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)相乘。
參考源程序:
mul=lambdax,y:x*y
a二eval(input('請輸入a:'))
b=eval(input('請輸入b:'))
print(mul(a,b))#或者:print('{:.3f}*{:.3f}={:.3f}'.format(a,b,mul(a,b)))
5.有n個(gè)人圍成一圈,順序排號。從第一個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退
出圈子,問最后留下來的是原來第幾號?
參考源程序1:
n=int(input('輸入數(shù)字:’))#輸入數(shù)字
a=list(range(l,n+l))#建立一個(gè)列表,存放的是號碼數(shù)
count=0;#構(gòu)造一個(gè)全局變量,使得其儲存每一位報(bào)的數(shù)
whilelen(a)>l:#循環(huán)直到列表只剩一個(gè)元素
b=a[:]#復(fù)制列表,為下一步刪除做準(zhǔn)備
foriinrange(O,len(b)):#在len(b)的次數(shù)中,計(jì)數(shù),并去除數(shù)
count+=l
ifcount%3==0:#如果報(bào)三,則去除a中的這一位
a.remove(b[i])
print(a[0])
參考源程序2:
defwho_remain(n):
1st=[iforiinrange(l,n+1)]#構(gòu)造一個(gè)列表
whilen>2:
lst.pop(2)#彈出第三個(gè)元素
before=lst[:2]#彈出后把前兩個(gè)元素移到最后
1st=lst[2:]
Ist.extend(before)
n=len(lst)#下一次循環(huán)就從原來的4號(即現(xiàn)在的1號開始)
print(lst[l])
n=int(input('輸入數(shù)字:,))#輸入數(shù)字
who_remain(n)
參考運(yùn)行結(jié)果:輸入12輸出10
練習(xí)七參考答案
一、填空題
1、⑴['a','b','c'](2)[3,T]
2、⑴[T,2,3,4](2)'abb'
二、簡答題
1.為什么要引入模塊,如何定義一個(gè)模塊?
答:使用模塊可以提高代碼的可維護(hù)性,同時(shí)也使得編寫代碼不必從零開始。當(dāng)一個(gè)模塊編
寫完畢,就可以被其他地方引用。我們在編寫程序的時(shí)候,也經(jīng)常引用其他模塊,包括Python
內(nèi)置的模塊和來自第三方的模塊。所有的.py文件都被視為是一個(gè)模塊
2.模塊的導(dǎo)入方法有哪些?
答:Python3中提供了三種導(dǎo)入方式,即直接使用import導(dǎo)入模塊、通過sys模塊導(dǎo)入自定
義模塊、通過pth文件找到自定義模塊。
3.使用import、from...importsfrom...import*導(dǎo)入模塊有什么異同點(diǎn)?
答:import語句、from...import語句和from…import*語句都能實(shí)現(xiàn)模塊的導(dǎo)入。各自特
點(diǎn)如下:
(1)import模塊:導(dǎo)入一個(gè)模塊,相當(dāng)于導(dǎo)入的是一個(gè)文件夾,是個(gè)相對路徑。
(2)from...import:導(dǎo)入了一個(gè)模塊中的一個(gè)函數(shù),相當(dāng)于導(dǎo)入的是一個(gè)文件夾中的文件,
是個(gè)絕對路徑。
(3)from...import*:是把一個(gè)模塊中所有函數(shù)都導(dǎo)入進(jìn)來,相當(dāng)于導(dǎo)入的是一個(gè)文件夾中
所有文件,所有函數(shù)都是絕對路徑。
總結(jié)起來,firom...import*語句與import區(qū)別在于:import導(dǎo)入模塊,每次使用模塊中的函
數(shù)都要確定是哪個(gè)模塊;Mm...import*導(dǎo)入模塊,每次使用模塊中的函數(shù),直接使用函數(shù)就
可以了,因?yàn)橐呀?jīng)知道該函數(shù)是哪個(gè)模塊中的了。
4.導(dǎo)入自定義模塊方法有哪些?
答:
(1)直接import:這里有個(gè)大前提,就是你的py執(zhí)行文件和模塊同屬于同個(gè)目錄(父級目
錄);
(2)通過sys模塊導(dǎo)入自定義模塊的路徑path:如果執(zhí)行文件和模塊不在同一目錄,這時(shí)
候直接import是找不到自定義模塊的。
在環(huán)境變量中找到自定義模塊
(3)通過pth文件找到自定義模塊:通過pth文件找到自定義模塊利用了系統(tǒng)變量,Python
會掃描path變量的路徑來導(dǎo)入模塊,可以在系統(tǒng)path里面添加。此處可以采用pth文件添
加。
5.如何在Python使用第三方庫?
答:
在第三方模塊安裝好后,其搜索路徑就已經(jīng)設(shè)置好了,我們可以嘗試直接importnumpy
等已安裝的第三方模塊。當(dāng)我們試圖加載一個(gè)模塊時(shí),Python會在指定的路徑下搜索對應(yīng)
的.py文件,如果找不到,就會報(bào)錯(cuò)。默認(rèn)情況下,Python解釋器會搜索當(dāng)前目錄、所有已
安裝的內(nèi)置模塊和第三方模塊,搜索路徑存放在sys模塊的path變量中。
如果我們要添加自己的搜索目錄,有兩種方法。一是直接修改sys.path,添加要搜索的目錄。
第二種方法是設(shè)置環(huán)境變量PYTHONPATH,該環(huán)境變量的內(nèi)容會被自動添加到模塊搜索路
徑中。設(shè)置方式與設(shè)置Path環(huán)境變量類似。注意只需要添加你自己的搜索路徑,Python自
己本身的搜索路徑不受影響。
6.包和模塊之間的關(guān)系是什么,如何導(dǎo)入和使用包?
答:
在模塊使用過程中,可能會遇到下面的問題,那就是如果不同的人編寫的模塊名相同怎么辦?
為了避免模塊名沖突,Python又引入了按目錄來組織模塊的方法,稱為包(Package)o
(1)import:導(dǎo)入一個(gè)包,相當(dāng)于導(dǎo)入的是一個(gè)文件夾,是個(gè)相對路徑。
(2)from...import:導(dǎo)入了一個(gè)包中的一個(gè)函數(shù),相當(dāng)于導(dǎo)入的是一個(gè)文件夾中的文件,是
個(gè)絕對路徑。
(3)from...import*:是把一個(gè)包中所有函數(shù)都導(dǎo)入進(jìn)來,相當(dāng)于導(dǎo)入的是一個(gè)文件夾中所
有文件,所有函數(shù)都是絕對路徑
三、程序設(shè)計(jì)題
1.設(shè)計(jì)一個(gè)簡單程序,調(diào)用系統(tǒng)模塊time。
Filename:test.py
#導(dǎo)入模塊
importtime
#現(xiàn)在可以調(diào)用模塊里包含的函數(shù)了
time.time()
2.編寫一個(gè)模塊并調(diào)用。
#Filename:support.py
defprint_func(par):
print("Hello:",par)
return
test.py弓I入support模塊:
#Filename:test.py
#導(dǎo)入模塊-
importsupport
#現(xiàn)在可以調(diào)用模塊里包含的函數(shù)了
support.print_func("成功導(dǎo)入模塊!”)
練習(xí)八參考答案
一、選擇題
題號1234
答案DADB
二、設(shè)計(jì)題
1.完善例8.2中的Student類,增加構(gòu)造函數(shù)(帶默認(rèn)初始值)?;赟tudent類定義
Universitystudent類,增加新的屬性“學(xué)生專業(yè)”,并重載相關(guān)的方法。然后定義派生類的2
個(gè)對象(不帶參數(shù)的、帶參數(shù)的),設(shè)置對象的值、顯示對象的值。
#定義Student類
classStudent:
stu_count=0#類數(shù)據(jù)成員
#構(gòu)造方法
def_init_(self,no_l=",name_l=",sex_l="):
self.no=no_l#3個(gè)對象數(shù)據(jù)成員
=name_l
self.sex=sex_l
Student.stu_count+=l#每設(shè)置一個(gè)學(xué)生信息,學(xué)生數(shù)量加1
#設(shè)置學(xué)生信息
defset(seltno_l,name_l,sex_l):
self.no=no_l#3個(gè)對象數(shù)據(jù)成員
=name_l
self.sex=sex_l
#顯示學(xué)生信息
defdisplay(self):
print('No:',self.no,'Name:',self,name,'Sex:',self.sex)
#定義派生類Universitystudent
classUniversityStudent(Student):
#重載構(gòu)造方法
def_init_(self,no_l=",name_l="zsex_l=",speciality_l="):
Student._init_(seltno_l,name_l,sex_l);
self.speciality=speciality_l;
#重載set()方法
defset(seltno_l,name_l,sex_l,speciality_l):
Student.set(self,no_l,name_l,sex_l)
self.speciality=speciality_l
#重載display。方法
defdisplay(self):
Student.display(self);
print('speciality:',self.speciality)
#定義學(xué)生類的對象stul和stu2,并調(diào)用方法實(shí)現(xiàn)2個(gè)學(xué)生對象的設(shè)置和顯示
stul=UniversityStudent()
stul.setClSOSOSZlO'/fengcheng','M','Computer')
stul.display()
stu2=UniversityStudent('180805211,,,wanghaimeng,,,FM','English')
stu2.display()
#分別通過類名和對象名訪問stu_count,輸出學(xué)生數(shù)量
print1學(xué)生對象數(shù)量:。Student.stu_count)
print('學(xué)生對象數(shù)量:-stul.stu_count)
print('學(xué)生對象數(shù)量::stu2.stu_count)
運(yùn)行結(jié)果:
No:180805210Name:fengchengSex:M
speciality:Computer
No:180805211Name:wanghaimengSex:FM
speciality:English
學(xué)生對象數(shù)量:2
學(xué)生對象數(shù)量:2
學(xué)生對象數(shù)量:2
2.完善例8.5,實(shí)現(xiàn)兩個(gè)向量對象的減法(vl-v2)和乘法(vl*v2)
提示:設(shè)兩個(gè)向量a=(x1,y1),b=(x2,y2)MJ
a+b=(x1+x2,y1+y2)a-b=(x1-x2,y1-y2)ab=x1x2+y1y2
參考源程序:
#定義Vector類
classVector:
#定義構(gòu)造方法
def_init_(self,newa,newb):
self.a=newa
self.b=newb
#定義方法,輸出向量
defprint_vector(self):
print('Vector(%d,%d),%(self.a,self.b))
#重載運(yùn)算符“+”
def_add_(self,other):
returnVector(self.a+other.a,self.b+other.b)
#重載運(yùn)算符
def_sub_(self,other):
returnVector(self.a-other.a,self.b-other.b)
#重載運(yùn)算符
def_mul_(self,other):
return(self.a*other.a+self,b*other.b)
#定義對象并調(diào)用方法
vl=Vector(4,10)
v2=Vector(2,-3)
print('vl:,,end='')
vl.print_vector()
print('v2:',end="')
v2.print_vector()
#調(diào)用重載的加法方法_add_(),實(shí)現(xiàn)兩個(gè)對象直接相加
v3=vl+v2
print('vl+v2:,,end="')
v3.print_vector()
#調(diào)用重載的加法方法_sub_(),實(shí)現(xiàn)兩個(gè)對象直接相減
v4=vl-v2
print('vl-v2:,,end=,')
v4.print_vector()
#調(diào)用重載的加法方法_mul_(),實(shí)現(xiàn)兩個(gè)對象直接相乘
v5=vl*v2
print('vl*v2:',v5)
練習(xí)九參考答案
一、選擇題
題號12345678
答案BAADCC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應(yīng)合同范本寫
- 240鉆機(jī)租賃合同范本
- epc工程合同使用合同范本
- 人工加材料合同范本
- 全新貨車購車合同范例
- 保險(xiǎn)公司擔(dān)保貸款合同范本
- it 顧問合同范本
- 分公司發(fā)票合同范本
- 代招合同范本
- 出租摩托協(xié)議合同范本
- 綠色施工管理制度(一)
- 2021年新疆烏魯木齊市中考物理一模試卷(附答案詳解)
- 經(jīng)濟(jì)數(shù)學(xué)《線性代數(shù)》期末試卷一(含答案解析)
- 互聯(lián)網(wǎng)金融完整全套教學(xué)課件
- 幼兒園中班音樂《章魚和小魚》課件
- 個(gè)人民事起訴狀模板
- 勞務(wù)人員管理制度(7篇)
- 事故隱患安全培訓(xùn)事故排查安全隱患
- 職業(yè)中等專業(yè)學(xué)校2023-2024學(xué)年工作計(jì)劃
- 新人教版高中數(shù)學(xué)選擇性必修第一冊全套精品課件
- 新公務(wù)員法培訓(xùn)課件
評論
0/150
提交評論