Python -----第6章教室テスト

1.オブジェクト指向プログラミングは、(B)の設計に焦点を当てています。

A.オブジェクトB.クラスC.アルゴリズムD.データ

2.オブジェクト指向プログラミングでは、同じモジュール内のオブジェクトの属性と動作を編成するメカニズムは(C)と呼ばれます。

A.アブストラクトB.継承C.カプセル化D.ポリモーフィズム

3.オブジェクト指向プログラミングでは、クラスは(D)を通じて外界と関係を持っています。

A.オブジェクトB.クラスC.メッセージD.インターフェース

4.オブジェクト指向プログラミングでは、オブジェクトとオブジェクト間の通信メカニズムは(C)です。

A.オブジェクトB.クラスC.メッセージD.インターフェース

7.クラス変数とインスタンス変数に関して、次の記述は正しいです(ABCDE)。

A. パッケージ内のモジュールを呼び出す前に、パッケージに__init__.pyが含まれている必要があります。
B.インスタンス変数は、インスタンスオブジェクトにバインドされている変数です。インスタンス変数は、インスタンスオブジェクトが作成された後でのみ意味があります。
C. インスタンス変数は、クラスメソッド、通常は__init __()メソッドで定義されます。
D. インスタンス変数は、他の-__以外のinit __()メソッドでも定義できます。
E. インスタンス変数は、インスタンスオブジェクトの作成後に動的に作成することもできます。

回答:ABCDE

8.属性に関して、次の記述は正しい(ABCD)。

A. データメンバーは属性とも呼ばれ、パブリック属性とプライベート属性に分けられます。
B.クラスのカプセル化を破棄しないために、@ propertyデコレータを使用してプライベートプロパティにアクセスし、プロパティを確認できます。
C. @propertyデコレータは特別なプロパティで、プロパティへのメソッドの呼び出しを担当します。
D. セッターこのデコレータを使用すると、@ propertyで装飾されたプロパティ(関数)に割り当てることができますが、セッターデコレータはプロパティの背後にあり、2つの装飾されたプロパティ(関数)の名前は同じである必要があります。

回答:ABCD

9.判断:プライベートメンバーは、クラスの外部から直接アクセスすることはできません。通常、クラス内でアクセスおよび操作されます。特別な方法で、「オブジェクト名._クラス名__xxx」は外部プログラムのプライベートメンバーにもアクセスできますが、これによりクラスのカプセル化が破壊されるため、お勧めしません。

回答:はい

10.住宅購入者の毎月の住宅ローンの支払いのための簡単な計算機を設計し、次の式に従って総利息と毎月の返済額を計算します。

総利息=貸付額*利率
月次返済額=(貸付額+総利息)/
貸付期間貸付期間によって利率が異なります。ここでは、次の表に示す3種類の年と利率しかありません。年間
金利
3年(36か月)6.03%
5年(60か月)6.12%
20年(240か月)4.39%

class LoanCaculator():
    def __init__(self, loan, time):
        self.loan = loan
        if time == "1":
            self.time = 3
        elif time == "2":
            self.time = 5
        elif time == "3":
            self.time = 20
    def get_total_interests(self):
        return self.loan * self.get_interests_rate()
    def get_interests_rate(self):
        if self.time == 3:
            return 0.0603
        elif self.time == 5:
            return 0.0612
        elif self.time == 20:
            return 0.0639
    def get_monthly_payment(self):
        return (self.loan + self.get_total_interests())/ (self.time * 12)

                                  

loan = int(input("请输入贷款金额:"))
time = input("请选择贷款年限:1.3年(36个月) 2.5年(60个月) 3.20年(240个月)")
loan_caculate = LoanCaculator(loan, time)
print("月供为: %f" % loan_caculate.get_monthly_payment())

運用結果:
ローン金額:10000を入力してください

ローン期間を選択してください:1.3年(36か月)2.5年(60か月)3
.20 年(240か月)3月の供給:44.329167

11.鳥と魚のクラスをデザインします。どちらも動物クラスから継承され、メソッドprint_info()を実装して情報を出力します。

class Animal():
    def __init__(self,age):
        self.age = age
    def print_info(self):
        print("我今年%d岁了!" % (self.age))
class Bird(Animal):
    def __init__(self, color):
        super().__init__(4)
        self.color = color
    def print_info(self):
        print("我是一只%s的鸟" % (self.color))
        super().print_info()
class Fish(Animal):
    def __init__(self, weight):
        super().__init__(2)
        self.weight = weight
    def print_info(self):
        print("我是一只%d斤重的鱼" % (self.weight))
        super().print_info()
bird = Bird("红色")
bird.print_info()
fish =Fish(5)
fish.print_info()

実行結果:
私は
今年4歳の赤い鳥です!
私は体重5kgの魚で、
今年は2歳です!

12.多態性を使用して、プログラムで電話クラスPhonesを作成し、callメソッドcall()を定義します。Apple PhoneクラスiPhoneとAndroid PhoneクラスAPhoneの2つのサブクラスを作成し、それぞれのクラスでメソッド呼び出しをオーバーライドします。人間のPersonを作成し、電話を使用して呼び出すメソッドを定義しますuse_phone_call()

class Phone():
    def call(self):
        print("使用功能机打电话")
class IPhone(Phone):
    def call(self):
        print("使用苹果手机打电话")
class APhone(Phone):
    def call(self):
        print("使用安卓手机打电话")
class Person():
    def use_phone_call(self, phone):
        phone.call()
person = Person()
person.use_phone_call(Phone())
person.use_phone_call(IPhone())
person.use_phone_call(APhone())

操作結果:
フィーチャーフォンを
使用してApple携帯電話を使用して電話
をかけ、Android携帯電話を使用して電話をかける

元の記事を27件公開 賞賛3件 訪問数1416

おすすめ

転載: blog.csdn.net/weixin_41860600/article/details/105485281