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