python定義乙個分數類,分別完成分數的加減乘除

2021-08-21 23:38:01 字數 1603 閱讀 1807

class faction(object):

def __init__(self,fz=0,fm=1):

self.__fz = fz

if fm == 0:

raise valueerror('分母不能為0')

else:

self.__fm =fm

@property

def fz(self):

return self.__fz

@property

def fm(self):

return self.__fm

# 將分子和分母轉換成分數格式

def chang_format(self):

min_value = min(self.__fz,self.__fm)

max_value = max(self.__fz,self.__fm)

while max_value % min_value != 0:

temp = max_value%min_value

max_value = min_value

min_value = temp

self.__fz //= min_value

self.__fm //= min_value

if self.__fm == 1:

str = "".format(fz=self.__fz)

else:

str ="/".format(fz=self.__fz, fm=self.__fm)

return str

# 定義乙個計算類,專門進行分數的加,減,乘,除

class managefaction(object):

# 計算兩個分數的和,差,積,商

def adjust(self,fc1,fc2,sign="+"):

sign = sign.strip(' ')

if sign == '+':

fz = fc1.fz * fc2.fm + fc1.fm * fc2.fz

elif sign == "-":

fz = fc1.fz * fc2.fm - fc1.fm * fc2.fz

elif sign == '*':

fz = fc1.fz * fc2.fz

elif sign == "/":

fz = fc1.fz * fc2.fz

else:

print("暫不支援")

return 0

if sign =="/":

fm = fc1.fm*fc2.fz

else:

fm = fc1.fm*fc2.fz

fm = fc1.fm*fc2.fm

# 建立新分數物件

fs = faction(fz,fm)

return fs.chang_format()

fc1 = faction(1,2)

fc2 = faction(3,4)

mf = managefaction()

result = mf.adjust(fc1, fc2,'*')

print(result)

python定義乙個 Python定義乙個類

在物件導向的世界裡,你的 通常稱為 類的方法 method,而資料通常稱為 類的屬性 attribute,例項化的資料物件通常稱為 例項 instance。python使用class建立類。每個定義的類都有乙個特殊的方法,名為 init 可以通過這個方法控制如何初始化物件。類中方法的定義與函式的定義...

定義乙個類

定義乙個類 當你宣告乙個類,你需要列出物件應有的所有變數和所有函式 被稱為屬性和方法.3.1.1中顯示了乙個類的構成.注意在大括號 內你只能宣告變數或者函式.3.1.2中顯示了如何在乙個類中定義三個屬性和兩個方法.1.class name extends another class 2.name n...

定義乙個CPU類

定義乙個cpu類,包含等級 rank 頻率 frequency 電壓 voltage 等屬性,有兩個共有成員函式run stop。其中,rank為列舉型別定義為enum cpu ranl,frequency為單位是mhz的整數,voltage為浮點型的電壓值。觀察建構函式和析構函式的呼叫順序。inc...