オブジェクト指向の小さな運動の組み合わせに依存しています

練習

  1. 暴力バイクプログラム(次の要件を完了):

    1. 3人のゲームのキャラクターを作成します:

      葵はよく、女性、18、攻撃広告は20、200血液であります

      トニー・ウッド、男性、20、攻撃広告30、150血

      波の多くは、女性、19、50、攻撃広告、血液80

    2. すなわち、3つのゲームの武器を作成します。

      鍋、広告20

      斧、広告50

      ヌンチャク、広告65

    3. すなわち、3台のゲームのオートバイを作成します。

小さなペダル速度ステップ60

ヤマハ、スピードステップ80

BMW、120スピードステップ。

(ヒトAD +広告の血を撃退するための武器として、武器の使用を)次の要件を完了します。

(1)あおいは、トラック上のステップで車に乗ってペダルシャフト60を駆動します。

(2)駆動BMW 120トニー木材は、トラック上の車を運転するステップを乗りました。

(3)波乗り用ステップ80の多くは、トラック上を走行オープンヤマハ車両です。

(4)倉波ヒットウェルはロット20非武装血液、xxは波の多くを残しました。

(5)木材トニー波は、多くの30非武装の血を打つ血液xxは波の多くを残しました。

(6)Boduoduoliパンパンよく葵、葵よくXX左血液を打ちます。

(7)Boduoduoli斧斧はトニー・ウッドを打つ、アンソニー・ウッドは、xxの血を残しました。

(8)もBMWに乗っ葵が小さいペダルトニー・ウッドヌンチャクに乗ったヒット、トニー・ウッドは、左XXの血液を叫びました。(オプション)

(9)ヤマハ斧トニー・ウッドを演奏波乗り用ペダルの多くに乗って、アンソニー・ウッドは、左XXの血を泣き。(オプション)

class Role:

    def __init__(self,name,sex,age,ad,blood):
        self.name = name
        self.sex = sex
        self.age = age
        self.ad = ad
        self.blood = blood

    def fight(self, beaten):
        beaten.blood -= self.ad
        print(f"{self.name}赤手空拳大了{beaten.name}{self.ad}滴血,{beaten.name}还剩下{beaten.blood}")
    def fight2(self,beaten):
        beaten.blood -= self.ad + self.weapon.ad
        print(f"{self.name}骑着{self.motorcycle.name}打了骑着{beaten.motorcycle.name}的{beaten.name}一{self.weapon.name},{beaten.name}哭了,还剩{beaten.blood}")

class Weapon:

    def __init__(self,name,ad):
        self.name = name
        self.ad = ad

    def finght(self,p1,p2):
        p2.blood -= p1.ad +self.ad
        print(f"{p1.name}利用{self.name}打了{p2.name}一{self.name},{p2.name}还剩{p2.blood}血")

class Motorcycle:

    def __init__(self,name,speed):
        self.name = name
        self.speed = speed

    def drving(self,who):
        print(f"{who.name}骑着{self.name}开着{self.speed}迈的车行驶在赛道上.")

cjj = Role("苍井井","女",18,20,200)
dnmm = Role("东尼木木","男",20,30,150)
bdd = Role("波多多","女",19,50,80)

pdg = Weapon("平底锅",20)
fz = Weapon("斧子",50)
sjg = Weapon("双截棍",65)

xtb = Motorcycle("小踏板",60)
ymh = Motorcycle("雅马哈",80)
bm = Motorcycle("宝马",120)

cjj.motorcycle = xtb
dnmm.motorcycle = bm
bdd.motorcycle = ymh

cjj.motorcycle.drving(cjj)
dnmm.motorcycle.drving(dnmm)
bdd.motorcycle.drving(bdd)

cjj.fight(bdd)
dnmm.fight(bdd)

bdd.weapon = pdg
bdd.weapon.finght(bdd,cjj)
bdd.weapon = fz
bdd.weapon.finght(bdd,dnmm)

cjj.motorcycle = bm
cjj.weapon = sjg
dnmm.motorcycle = xtb

cjj.fight2(dnmm)
bdd.motorcycle = xtb
bdd.weapon = fz
dnmm.motorcycle =ymh
bdd.fight2(dnmm)
  1. 境界線と円の面積を計算し、クラスを定義します。

    class Circular:
    
        pi = 3.14159
    
        def __init__(self,radius):
            self.radius =radius
        def girth(self):
            print(Circular.pi*self.radius*2)
    
        def area(self):
            print(Circular.pi*self.radius**2)
    s = Circular(3)
    s.girth()
    s.area()
  2. クラスは、リング、リングの外周を定義し、面積が(タイトルアップグレード)を算出します。

    class Ring:
        pi = 3.14159
    
        def __init__(self, radius,radius1):
            self.radius = radius
            self.radius1 = radius1
    
        def girth(self):
            print(Ring.pi * self.radius * 2+Ring.pi * self.radius1 * 2)
    
        def area(self):
            print(abs(Ring.pi * self.radius ** 2-Ring.pi * self.radius1 ** 2))
  3. 学校のクラスの定義、クラスの先生。

  • 学校のクラスの要件:
    • 学校のクラスには、学校名、学校のアドレス、および関連するプロパティの先生の(リストに保存されている教師のオブジェクト)をカプセル化します。
      • 名前:学校の名前。
      • アドレス:特定のアドレス。
      • teacher_list:[]。
    • 学校のクラスの先生は、オブジェクトを追加する方法を設定します。
  • 先生のクラスのパッケージ名、専門分野の教授、ならびに特定のオブジェクトは、学校に属します。
    • 名前:先生の名前。
    • もちろん:規律。
    • 学校:学校の特定のオブジェクト。
  • 2つのキャンパスの例:
    • 北京キャンパス、美しい川。
    • キャンパス深セン、南山区。
  • 6人の教師の例:
    • 白、パイソン、北京キャンパスオブジェクト。
    • 呉チャオ、Linuxでは、北京キャンパスオブジェクト。
    • バオ元、パイソン、北京キャンパスオブジェクト。
    • 元ハオ、パイソン、深センのキャンパスオブジェクト。
    • タイガース、Linuxの、深センのキャンパスオブジェクト。
    • 王、パイソン、深センのキャンパスオブジェクト。
  • 以下の特定の要件を完了します。
    1. 監査院は、学校名を取得します。
    2. 監査院は、学校の学校のアドレスを取得します。
    3. すべての教師は、すべての表示された北京のキャンパスの一部であった、とリストに追加します。
    4. すべての教師は、深センが責任表示されているすべてのキャンパスや分野に属しています。
    5. パイソンの電荷がリストの2つのキャンパスの対象オブジェクト内のすべての教師を追加します。
    6. オブジェクトの追加2つのキャンパスのリストにすべての教師のLinuxの主題を担当すると表示され再利用されます。
    7. その後、北京のファイルに書き込まれた漬物を使用して、オブジェクトのキャンパス、および読み出して、先生の名前の北京のキャンパスが所属証明
class School:

    def __init__(self,name,address):
        self.name = name
        self.address =address
        self.teacher_list=[]

    def recruit(self,teacher):
        self.teacher_list.append(teacher)
        # teacher.school = self

class Teacher:

    def __init__(self,name,course,school):
        self.name = name
        self.course = course
        self.school = school
        self.school.recruit(self)

bj = School("北京校区","美丽的沙河")
sz = School("深圳校区","南山区")

taibai = Teacher("太白","python",bj)
wuchao= Teacher("吴超","linux",bj)
baoyuan = Teacher("宝元","python",bj)
yuanhao = Teacher("苑昊","python",sz)
xiaohu = Teacher("小虎","linux",sz)
xiaowang = Teacher("小王","python",sz)

print(taibai.school.name)

print(taibai.school.address)

lst = []
for i in bj.teacher_list:
    print(i.name)
    lst.append(i.name)
print(lst)

for i in sz.teacher_list:
    print(F"{i.name}负责{i.course}")

lst1 = list(filter(lambda x:x.course=="python" ,bj.teacher_list))+list(filter(lambda x:x.course=="python" ,sz.teacher_list))

for i in lst1:
    print(i.name)

lst2 = list(filter(lambda x:x.course=="linux" ,bj.teacher_list))+list(filter(lambda x:x.course=="linux" ,sz.teacher_list))

for i in lst2:
    print(i)

import pickle
# pickle.dump(bj,open("txt","wb"))
l = pickle.load(open("txt","rb"))

for i in l.teacher_list:
    print(i.name)

おすすめ

転載: www.cnblogs.com/ciquankun/p/11304592.html