36:
0: 变量和函数
1:不同说法? 模具和用这个模具做出的物体 class A 是类 a = A()那么a是对象。 抽象和具体
2:种类 速度 颜色 大小 性格 错 前面的都是属性 问对象 那就是 波斯猫 咖啡猫 加菲猫 布偶猫 中华田园猫
3:长 宽 求面积 求周长
4:抽象 符合面向对象的思维
5: 封装 不知道内部咋样 反正给了一堆接口 请使用
继承 可以继承其他类的属性
多态: 不同类的同名方法 其实并没有啥关系。
6:调用方法前要先调用类
7:
#
class Person():
def __init__(self):
self.name = "小甲鱼"
def print_name(self):
print(self.name)
a = Person()
a.print_name()
8:
class Rect(): length = 5.00 width = 4.00 def setRect(self): print("请输入矩形的长和宽...") length = input("长:") width = input("宽:") def getRect(self): print("这个矩形的长是{.2},宽是{}".format(self.length,self.width)) def getArea(self): print(self.length*self.width) rect = Rect() rect.getRect() rect.setRect() rect.getRect() rect.getArea()
37讲!!!
0:多态
1:继承 class a(classb)
2:固定对象
3:__私有化
4:__init__
5:没有实例化
6:
class Ticket(): def __init__(self, weekend=False, child=False): self.exp = 100 if weekend: self.inc = 1.2 else: self.inc = 1 if child: self.discount = 0.5 else: self.discount = 1 def calcPrice(self, num): return self.exp * self.inc * self.discount * num >>> adult = Ticket() >>> child = Ticket(child=True) >>> print("2个成人 + 1个小孩平日票价为:%.2f" % (adult.calcPrice(2) + child.calcPrice(1))) 2个成人 + 1个小孩平日票价为:250.00
7:
import random class turtle(): def __init__(self): self.speed = random.randint(1,2) self.strength = 400 self.x_pos = random.randint(0,10) self.y_pos = random.randint(0,10) def move(self): direc = random.randint(1,4) #1表示向上,2表示左 3表示下 4表示右 if direc == 1: if self.y_pos ==10: self.y_pos -= 1 else: self.y_pos +=1 if direc == 2: if self.x_pos ==0: self.x_pos += 1 else: self.x_pos -= 1 if direc == 3: if self.y_pos ==0: self.y_pos += 1 else: self.y_pos -=1 if direc == 4: if self.x_pos ==10: self.x_pos -= 1 else: self.x_pos += 1 self.strength -= 1 def get_fish(self): self.strength += 20 class Fish(): def __init__(self): self.speed = 1 self.x_pos = random.randint(0,10) self.y_pos = random.randint(0,10) def move(self): direc = random.randint(1,4) #1表示向上,2表示左 3表示下 4表示右 if direc == 1: if self.y_pos ==10: self.y_pos -= 1 else: self.y_pos +=1 if direc == 2: if self.x_pos ==0: self.x_pos += 1 else: self.x_pos -= 1 if direc == 3: if self.y_pos ==0: self.y_pos += 1 else: self.y_pos -=1 if direc == 4: if self.x_pos ==10: self.x_pos -= 1 else: self.x_pos += 1 T1 = turtle() fish = list() for i in range(10): fish.append(Fish()) while(T1.strength >0 and len(fish)>0): T1.move() if T1.strength == 0: break T1.move() if T1.strength == 0: break #这里设定体力为0时吃饭的力气都没了。 pre_del = [] for i in range(len(fish)): fish[i].move() if T1.x_pos == fish[i].x_pos and T1.y_pos == fish[i].y_pos: T1.get_fish() pre_del.append(i) fish = [y for x,y in enumerate(fish) if x not in pre_del] if (T1.strength>0): print("游戏结束,乌龟胜利") else: print("游戏结束,鱼儿胜利")
乌龟太难赢了... 所以加到了400 不知道是不是我写错了。
最难得就是删除元素 小甲鱼采用的是拷贝方法 我则用了一个笨方法。 用另一个列表来记载。