Python面向?qū)ο蟮某绦蛟O(shè)計詳情
1. 設(shè)計一個圓類,包括圓心位置、半徑、顏色等屬性。編寫構(gòu)造方法, 計算周長和面積。
import math class Circle: ? ? def __init__(self,o,r,colour): ? ? ? ? self.o = o ? ? ? ? self.r = r ? ? ? ? self.colour = colour ? ? def length(self): #周長 ? ? ? ? C = math.pi*self.r*2 ? ? ? ? return C ? ? def area(self): ? #面積 ? ? ? ? S = math.pi*self.r**2 ? ? ? ? return S ? if __name__ == "__main__": ? ? r=eval(input("請輸入半徑:")) ? ? circle = Circle((0,0),r,'blue') #坐標(biāo)、半徑、顏色 ? ? C = circle.length() ? ? S = circle.area() ? ? print('圓周長為:{:.2f}'.format(C)) ? ? print('圓面積為:{:.2f}'.format(S))
2. 設(shè)計一個描述自由落體運動的類,要求能獲得任意時刻的速度及位移,并進(jìn)行測試。已知重力加速度為 9.8m/s。
class Free: ? ? def __init__(self,t):? ? ? ? ? self.t = t ? ? def getv(self): #速度函數(shù) ? ? ? ? v=9.8*self.t ? ? ? ? return v ? ? def getx(self): #位移函數(shù) ? ? ? ? x=0.5*9.8*self.t**2 ? ? ? ? return x ? ?? if __name__ == "__main__": ? ? t=eval(input("請輸入時刻t:")) ? ? f=Free(t) #調(diào)用 ? ? print("t={} 時刻的".format(t),end='') ? ? print("速度為:{:.2f}".format(f.getv())) ? ? print("t={} 時刻的".format(t),end='') ? ? print("位移為:{:.2f}".format(f.getx()))
3. 為二次方程式 ax²+bx+c=0 設(shè)計一個名為 Equation 的類,這個類包括:
- 代表 3 個系數(shù)的成員變量 a、b、c;
- 一個參數(shù)為 a、b、c 的構(gòu)造方法;
- 一個名為 getDiscriminant1 的方法返回判別式的值;
- 一個名為
getRoot1
和getRoot2
的方法返回等式的兩個根, 如果判別式為負(fù),這些方法返回0。
import math class Equation: ? ? def __init__(self,a,b,c): ? ? ? ? self.a = a ? ? ? ? self.b = b ? ? ? ? self.c = c ? ? def getDiscriminant1(self): ?#判別式 ? ? ? ? d=(self.b)**2 -(4*self.a*self.c) ? ? ? ? return d ? ? def getRoot1(self): ? ? ? ? if self.getDiscriminant1()>=0: ? ? ? ? ? ? x1=(-self.b+math.sqrt(self.getDiscriminant1()))/2*self.a ? ? ? ? ? ? return x1 ? ? ? ? else: ? ? ? ? ? ? return 0 ? ? def getRoot2(self): ? ? ? ? if self.getDiscriminant1()>=0: ? ? ? ? ? ? x2=(-self.b+math.sqrt(self.getDiscriminant1()))/2*self.a ? ? ? ? ? ? return x2 ? ? ? ? else: ? ? ? ? ? ? return 0 ? ?? if __name__ == "__main__": ? ? a=eval(input("請輸入系數(shù)a:")) ? ? b=eval(input("請輸入系數(shù)b:")) ? ? c=eval(input("請輸入系數(shù)c:")) ? ? f=Equation(a,b,c) ? ? print("判別式:",f.getDiscriminant1()) ? ? print("根1:",f.getRoot1()) ? ? print("根2:",f.getRoot2())
4. 設(shè)計一個二維向量類,實現(xiàn)向量的加法、減法及向量與標(biāo)量的乘法和除法運算,其中要求輸入是元組。
class Vector:? ? ? def __init__(self,a,b): ? ? ? ? self.a = a ? ? ? ? self.b = b ? ? def jia(self): ? ? ? ? c1 = (self.a[0] + self.b[0]) ? ? ? ? c2 = (self.a[1] + self.b[1]) ? ? ? ? return (c1,c2) ? ? def jian(self): ? ? ? ? c1 = (self.a[0] - self.b[0]) ? ? ? ? c2 = (self.a[1] - self.b[1]) ? ? ? ? return (c1,c2) ? ? def diancheng(self): ? ? ? ? c1 = (self.a[0] * self.b[0]) ? ? ? ? c2 = (self.a[1] * self.b[1]) ? ? ? ? return c1+c2 ? ? #向量無除法 ? ?? if __name__ == "__main__": ? ? a=eval(input("請輸入向量a:")) ? ? b=eval(input("請輸入向量b:")) ? ? f=Vector(a,b) ? ? print(" ?加:",f.jia()) ? ? print(" ?減:",f.jian()) ? ? print("點乘:",f.diancheng())
5. 設(shè)計一個課程類,包括課程編號、課程名稱、任課教師、上課地點 等屬性,把上課地點變量設(shè)為私有的,增加構(gòu)造方法和顯示課程信息的方法。
class Course:? ? ? def __init__(self,Cno,Cname,teacher,local): ? ? ? ? self.Cno = Cno ? ? ? ? self.Cname = Cname ? ? ? ? self.teacher = teacher ? ? ? ? self.__local =local #把上課地點變量設(shè)為私有的 ? ? def information(self): ? ? ? ? print("課程編號:",self.Cno) ? ? ? ? print("課程名稱:",self.Cname) ? ? ? ? print("任課教師:",self.teacher) ? ? ? ? print("上課地點:",self.__local) ? if __name__ == "__main__": ? ? f=Course('NO.','what','who','where') ? ? f.information()
6. 設(shè)計一個整形數(shù)組的封裝類,要求實現(xiàn)下列功能:
- 顯示全部數(shù)組數(shù)據(jù)
- 顯示從某位置開始的一段連續(xù)數(shù)組數(shù)據(jù)。
import random class List: ? ? def __init__(self,lis): ? ? ? ? self.__lis=lis ? ? def quanbu(self): ? ? #全部數(shù)組數(shù)據(jù) ? ? ? ? return self.__lis ? ? def bufen(self,id): ? #從部分位置開始的一段連續(xù)數(shù)組數(shù)據(jù) ? ? ? ? return self.__lis[id:] ? f=List([random.randint(1,51) for i in range(20)]) ?#設(shè)置數(shù)組為20個1-50的隨機(jī)數(shù)組合 print("顯示全部數(shù)組數(shù)據(jù):",f.quanbu()) ? random_index = random.randint(0,21) ?#隨機(jī)選取從某一位置開始的索引號 print("顯示從<第{}>位置開始的一段連續(xù)數(shù)組數(shù)據(jù):".format(random_index),f.bufen(random_index))
到此這篇關(guān)于Python面向?qū)ο蟮某绦蛟O(shè)計詳情的文章就介紹到這了,更多相關(guān)Python面向?qū)ο蟮某绦蛟O(shè)計內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Win10下安裝CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+p
這篇文章主要介紹了Win10下安裝CUDA11.0+CUDNN8.0+tensorflow-gpu2.4.1+pytorch1.7.0+paddlepaddle-gpu2.0.0,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03如何使用 Pylint 來規(guī)范 Python 代碼風(fēng)格(來自IBM)
本文通過詳細(xì)的理論介紹和簡單易懂的實例全面介紹了 Python 代碼分析工具 Pylint。相信讀者看完后一定可以輕松地將 Pylint 運用到自己的開發(fā)工程中2018-04-04詳解Python 數(shù)據(jù)庫的Connection、Cursor兩大對象
這篇文章主要介紹了Python 數(shù)據(jù)庫的Connection、Cursor兩大對象,文中通過python 數(shù)據(jù)庫圖解給大家介紹的非常詳細(xì),需要的朋友參考下吧2018-06-06Python統(tǒng)計字符內(nèi)容的占比的實現(xiàn)
本文介紹了如何使用Python統(tǒng)計字符占比,包括字符串中字母、數(shù)字、空格等字符的占比,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08pytorch神經(jīng)網(wǎng)絡(luò)之卷積層與全連接層參數(shù)的設(shè)置方法
今天小編就為大家分享一篇pytorch神經(jīng)網(wǎng)絡(luò)之卷積層與全連接層參數(shù)的設(shè)置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08