小編給大家分享一下Python面向對象中程序設計的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1. 設計一個圓類,包括圓心位置、半徑、顏色等屬性。編寫構造方法, 計算周長和面積。
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') #坐標、半徑、顏色
C = circle.length()
S = circle.area()
print('圓周長為:{:.2f}'.format(C))
print('圓面積為:{:.2f}'.format(S))2. 設計一個描述自由落體運動的類,要求能獲得任意時刻的速度及位移,并進行測試。已知重力加速度為 9.8m/s。
class Free:
def __init__(self,t):
self.t = t
def getv(self): #速度函數
v=9.8*self.t
return v
def getx(self): #位移函數
x=0.5*9.8*self.t**2
return x
if __name__ == "__main__":
t=eval(input("請輸入時刻t:"))
f=Free(t) #調用
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 設計一個名為 Equation 的類,這個類包括:
代表 3 個系數的成員變量 a、b、c;
一個參數為 a、b、c 的構造方法;
一個名為 getDiscriminant1 的方法返回判別式的值;
一個名為 getRoot1 和 getRoot2 的方法返回等式的兩個根, 如果判別式為負,這些方法返回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("請輸入系數a:"))
b=eval(input("請輸入系數b:"))
c=eval(input("請輸入系數c:"))
f=Equation(a,b,c)
print("判別式:",f.getDiscriminant1())
print("根1:",f.getRoot1())
print("根2:",f.getRoot2())4. 設計一個二維向量類,實現向量的加法、減法及向量與標量的乘法和除法運算,其中要求輸入是元組。
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. 設計一個課程類,包括課程編號、課程名稱、任課教師、上課地點 等屬性,把上課地點變量設為私有的,增加構造方法和顯示課程信息的方法。
class Course:
def __init__(self,Cno,Cname,teacher,local):
self.Cno = Cno
self.Cname = Cname
self.teacher = teacher
self.__local =local #把上課地點變量設為私有的
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. 設計一個整形數組的封裝類,要求實現下列功能:
顯示全部數組數據
顯示從某位置開始的一段連續數組數據。
import random
class List:
def __init__(self,lis):
self.__lis=lis
def quanbu(self): #全部數組數據
return self.__lis
def bufen(self,id): #從部分位置開始的一段連續數組數據
return self.__lis[id:]
f=List([random.randint(1,51) for i in range(20)]) #設置數組為20個1-50的隨機數組合
print("顯示全部數組數據:",f.quanbu())
random_index = random.randint(0,21) #隨機選取從某一位置開始的索引號
print("顯示從<第{}>位置開始的一段連續數組數據:".format(random_index),f.bufen(random_index))以上是“Python面向對象中程序設計的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。