Python知識回顧(『不器用な方法学Python 3』)——ex 27-ex 45

24331 ワード

ex 27——論理関係を覚える
  • この小節はいくつかの論理判断
  • を学ぶことを意図している.
    and|とor|またはnot|非!=|等しくない==|等しい>=|以上<=|以下True|真False|偽
    ex 28-ブール式練習
    この節はex 27の強固さに対して、論理関係に対する理解を増やすことを意図している.
    ex 29——if文
    このセクションはif文のフォーマットを理解するためです
    people = 20
    cats = 30
    dogs = 15
    
    
    if people < cats:
        print("Too many cats! The world is doomed!")
    
    if people > cats:
        print("Not many cats! The world is saved!")
    
    if people > dogs:
        print("The world is dry!")
    

    ex 30-elseとif
    この節はelse,elif,ifのつながりを理解することを意味する
    people = 30
    cars = 40
    trucks = 15
    
    
    if cars > people:
        print("We should take the cars.")
    elif cars < people:
        print("We should not take the cars.")
    else:
        print("We can't decide.")
    

    ex 31——決定を下す
    if、else、elifを通じて小さなゲームを設計し、if、else、elifに対する理解を深める.
    ex 32-ループとリスト
    リストのフォーマットと役割を熟知していますここで注意して、数字はリストに‘’を加える必要はありませんが、文字とアルファベットは必要です
    for i in range(1,3)#ここでは3回ではなく2回しか循環していません.つまり、実際には2になると止まります
    the_count = [1, 2, 3, 4, 5]
    fruits = ['apples', 'oranges', 'pears', 'apricots']
    change = [1, 'pennies', 2, 'dimes', 3, 'quarters']
    
    #This first kind of for-loop through a list
    for number in the_count:
        print(f"This is count {number}")
    
    #same as above
    for fruit in fruits:
        print(f"A fruit of type :{fruit}")
    
    # also we can go through mixed lists too
    # notice we have to use {} since we don't know what's in it
    for i in  change:
        print(f"I got {i}")
    

    ex 33——whileサイクル
    whileループフォーマットの理解
    i = 0
    numbers = []
    
    while i < 6:
        print(f"At the top i is  {i}")
        numbers.append(i)
    
        i = i + 1
        print("Numbers now",numbers)
        print(f"At the bottom i is {i}")
    

    ex 34-アクセスリストの要素
    プログラミングの要素の並べ替えの下で0、1、2、3、4、5、6、7、8と表記することを知っています
    ex 35——分岐と関数
    ゲームを書くことで関数の理解を深める
    def gold_room():
        print("This room is full of gold. How much do you take?")
    
        choice = input("> ")
        if "0" in choice or "1" in choice:
            how_much = int(choice)
        else:
            dead("Man, learn to type a number.")
    
        if how_much < 50:
            print("Nice, you're not greedy, you win!")
            exit(0)
        else:
            dead("You greedy bastard!")
    

    pythonではコードブロックをインデントで区切っています
    ex 36-設計とデバッグ
    コードをデバッグする方法を知っています.print()文でデバッグできます.
    ex 37——各種記号の復習(略)
    ex 38——リストの操作
    リストの基本的な操作を熟知しています
    A.split('):文AをスライスA.pop():ポップアップリスト要素A.append():Aに要素print('-'.join(A):印刷時にAの要素間に-print('#'.join(stuff[3:5]):下付き3と下付き4の要素を印刷し、中間を#で区切る
    ten_things = "Apples Orange Crows Telephone Light Sugar"
    
    print("Wait there are not 10 things in that list. Let's fix that.")
    
    stuff = ten_things.split(' ')
    more_stuff = ["Day", "Night", "Song", "Frisbee", "Corn", "Banana", "Gril", "Boy"]
    
    while len(stuff) != 10:
        next_one = more_stuff.pop()
        print("Adding:",next_one)
        stuff.append(next_one)
        print(f"There are {len(stuff)} items now.")
    
    print("There we go:",stuff)
    
    print("There's do something with stuff.")
    
    print(stuff[1])
    print(stuff[-1])
    print(stuff.pop())
    print('_____'.join(stuff))
    print('#'.join(stuff[3:5]))
    

    ex 39——辞書
    リスト内の要素は、数値の下に表示されます.
    things=[‘a’,‘b’,‘c’,‘d’]print(things[1])がb要素を印刷する
    辞書は表示中の辞書に似ています
    states={‘Oregon’:‘OR’,‘Florida’:‘FL’,‘California’:‘CA’,‘New York’:‘NY’,‘Michigan’:‘MI’}print(states[Oregon])はOR要素を印刷し,すなわち一対一に対応する
    ex 40-モジュール、クラス、オブジェクト
    モジュール定義:
  • モジュールは、関数と変数を含むPythonファイル(.pyファイル)
  • は、このファイル
  • をインポートすることができる.
  • インポート後、モジュール内の関数と変数例にアクセスできます.ファイルstuffがあります.py
  • def apple():
    	print("I am apples!")
    

    次の方法で呼び出すことができます.
    import stuff
    stuff.apple()
    

    関数だけでなくパラメータも呼び出すことができます
    クラス#クラス#
    class Song(object):
    
        def __init__(self, lyrics):
            self.lyrics = lyrics
    
        def sing_me_a_song(self):
            for line in self.lyrics:
                print(line)
    

    以上のコードはSongというクラスを定義しています
    オブジェクト
    happy_bday = Song(["Happy birthday to you",
                       "I don't want to get sued",
                       "So I'll stop right there"])
    

    以上のコードは、オブジェクトオブジェクトとモジュールの差が少ないことを宣言しています.happy_bday.sing_me_a_song()で関数を呼び出す
    ex 41——対象向けの用語を学ぶ
    定義:
  • クラス(class):Python作成タイプを教えるもの
  • オブジェクト(object):2つの意味、すなわち最も基本的なもの、またはあるものの例
  • インスタンス(instance):Pythonにクラスを作成させたときに得られたもの
  • です.
  • def:クラスで関数を定義する方法
  • self:クラスの関数で、selfはアクセスするオブジェクトまたはインスタンスの変数
  • を指す.
  • 継承(inheritance):1つのクラスが別のクラスの特性を継承できることを指し、親子関係は
  • に類似している.
  • コンビネーション(composition):あるクラスが他のクラスをその部品として構築することができ、車と車輪の関係に似ていることを指す
  • プロパティ(attribute):クラスのプロパティです.これは組合せから来ており、通常は変数
  • です.
  • とは何ですか(is-a):継承関係を記述するために使用されます.例:Salmon is-a Fish(鮭は魚です)
  • (has-a):あるものが他のものから構成されていることを記述するために使用されるか、あるものに特徴がある.例:Salmon has-a mouth(鮭に口がある)
  • いくつかの概念:
  • class X(Y):Yという
  • のクラスを作成しました.
  • class X(object):def init(self,J):クラスXに1つの__があるinit__,パラメータ
  • としてselfとJを受け入れます
  • class X(object):defM(self,J):クラスXには、パラメータ
  • としてselfおよびJを受信するMという関数がある.
  • foo=X():fooをクラスXとする一例
  • foo.M(J):fooからM関数が見つかり、selfとJパラメータを使用して
  • が呼び出されます.
  • foo.K=Q:fooからK属性を取得するQ
  • とする.
    以上の概念と定義を記憶して理解する
    ex 42——対象、クラス及び従属関係
    いくつかのコードを書くことで、オブジェクト、クラス、依存関係の理解を深める
    ex 43-基本的なオブジェクト向け分析と設計
    ゲームを書いて理解を深める
    ex 44——継承と組合せ
    継承定義:
  • サブクラス上の動作は完全に親クラス上の動作(暗黙的継承)
  • と同等である.
  • サブクラス上の動作は親クラス上の動作(明示的に上書き)
  • を完全に上書きする.
  • サブクラスの動作部分は、親クラスの動作(実行前または実行後に置換)
  • を置き換える.
    暗黙的継承親クラスで関数が定義されていますが、子クラスで定義されていない場合の暗黙的継承
    class Parent(object):
    
        def implicit(self):
            print("PARENT implicit()")
    
    class Child(Parent):
    	pass
    
    dad = Parent()
    son = Child()
    
    dad.implicit()
    son.implicit()
    

    この曲の印刷結果は
    PARENT implicit() PARENT implicit()
    明示的なオーバーライドは、サブクラス内の関数を異なる動作にします.この場合、暗黙的な継承はできません.この場合、親と同じ名前の関数を子クラスに定義する必要があります.
    class Parent(object):
    
        def override(self):
            print("PARENT override()")
    
    class Child(Parent):
    
        def altered(self):
            print("CHILD override()")
            
    dad = Parent()
    son = Child()
    
    dad.override()
    son.override()
    

    結果は
    PARENT override() PARENT override()
    実行前または実行後に置換して関数を変更したり、親の関数を変更したりするには、まず上のように上書きし、super()関数を呼び出して親の関数を呼び出す
    class Parent(object):
    
        def altered(self):
            print("PARENT altered()")
    
    class Child(Parent):
        def altered(self):
            print("Child")
            super(Child, self).altered()
            print("Child 2 ")
    
    dad = Parent()
    son = Child()
    
    dad.altered()
    son.altered()
    

    結果は
    PARENT altered() Child PARENT altered() Child 2
    結果から,関数super()はChildの親クラスに戻ってaltered()関数を呼び出して印刷することを示す.
    ex 45——ゲームを作ってください(略)
    コード能力の強化を目的とする