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 月

回到練習題目
上一頁 exercise1805.py
回 Python 入門指南 5.0 首頁
下一頁 exercise1807.py
回 Python 教材首頁
回程式語言教材首頁