Python 入門指南 5.0
exercise1806.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | # 定義算術運算類別 class Calculator: # 設定實體屬性 def __init__(self, v1: int, v2: int): # 呼叫設定屬性的方法 if not self.set_value(v1, v2): raise ValueError # 設定實體物件的字串形式 def __str__(self) -> str: return str(self.__value1) + ", " +\ str(self.__value2) # 設定實體物件在互動介面的字串形式 def __repr__(self) -> str: return "兩個數字是 " + str(self.__value1) +\ ", " + str(self.__value2) + "\n" +\ "和" + str(self.addition) +\ "差" + str(self.substraction) +\ "積" + str(self.multiplication) +\ "商" + str(self.division) +\ "餘數" + str(self.modulo) # 依據實體屬性回傳真假值 def __bool__(self) -> bool: if self.__value1 and self.__value2: return True else: return False # 設定屬性的方法 def set_value(self, v1: int, v2: int) -> bool: # 檢查參數是否為整數 try: # 檢查參數 v1 、 v2 是否為整數 assert type(v1) is int assert type(v2) is int # 設定實體屬性 self.__value1 = v1 self.__value2 = v2 # 回傳 True return True except AssertionError: # 回傳 False return False # 加法的 getter @property def addition(self): return self.__value1 + self.__value2 # 減法的 getter @property def substraction(self): return self.__value1 - self.__value2 # 乘法的 getter @property def multiplication(self): return self.__value1 * self.__value2 # 除法的 getter @property def division(self): return self.__value1 / self.__value2 # 取餘數的 getter @property def modulo(self): return self.__value1 % self.__value2 # 執行部分 if __name__ == "__main__": # 使用者輸入 n1 = input("請輸入兩個整數:") n2 = input(":") try: # 建立 Calculator 物件 c = Calculator(int(n1), int(n2)) # 印出物件 c print(repr(c)) except ValueError: print("輸入錯誤") # 檔名: exercise1806.py # 說明:《Python入門指南》的練習 # 網站: http://kaiching.org # 作者: 張凱慶 # 時間: 2023 年 10 月 |