- 自习课流程介绍
- 提前安装向日葵
参考帖子:向日葵远程连接工具使用
环节一:作业讲解
上期作业帖:11-13 python脚本实战1
作业分析
- 写一个面向对象的例子:
- 比如创建一个类(Animal)【动物类】,类里有属性(名称,颜色,年龄,性别),类方法(会叫,会跑)
- 创建子类【猫】,继承【动物类】
- 重写父类的__init__方法,继承父类的属性
- 添加一个新的属性,毛发=短毛
- 添加一个新的方法, 会捉老鼠,
- 重写父类的【会叫】的方法,改成【喵喵叫】
- 创建子类【狗】,继承【动物类】
- 复写父类的__init__方法,继承父类的属性
- 添加一个新的属性,毛发=长毛
- 添加一个新的方法, 会看家
- 复写父类的【会叫】的方法,改成【汪汪叫】
- 在入口函数中创建类的实例
- 创建一个猫猫实例
- 调用捉老鼠的方法
- 打印【猫猫的姓名,颜色,年龄,性别,毛发,捉到了老鼠】
- 创建一个狗狗实例
- 调用【会看家】的方法
- 打印【狗狗的姓名,颜色,年龄,性别,毛发】
作业实现
# 写一个面向对象的例子:
# 比如创建一个类(Animal)【动物类】,
# 类里有属性(名称,颜色,年龄,性别),
# 类方法(会叫,会跑)
class Animal:
name = ''
color = ''
age = ''
gender = ''
def __init__(self, name, color, age, gender):
self.name = name
self.color = color
self.age = age
self.gender = gender
def speak(self):
print("会叫")
def run(self):
print(f"{self.name} 会跑")
# 创建子类【猫】,继承【动物类】
class Cat(Animal):
# 重写父类的__init__方法,继承父类的属性
def __init__(self, name, color, age, gender):
super(Cat, self).__init__(name, color, age, gender)
# 添加一个新的属性,毛发=短毛
self.fur = '短毛'
# 添加一个新的方法, 会捉老鼠
def catch_mouse(self):
print(f"{self.name}会捉老鼠")
# 重写父类的【会叫】的方法,改成【喵喵叫】
def speak(self):
print("喵喵叫")
# 创建子类【狗】,继承【动物类】
class Dog(Animal):
# 复写父类的__init__方法,继承父类的属性
def __init__(self, name, color, age, gender):
super(Dog, self).__init__(name, color, age, gender)
# 添加一个新的属性,毛发=长毛
self.fur = '长毛'
# 添加一个新的方法, 会看家
def house_keeping(self):
print(f"{self.name}会看家")
# 复写父类的【会叫】的方法,改成【汪汪叫】
def speak(self):
print("汪汪叫")
# 在入口函数中创建类的实例
if __name__ == '__main__':
# 创建一个猫猫实例
cat = Cat('波斯', '橘黄', 2, '公的')
# 调用捉老鼠的方法
cat.catch_mouse()
# 打印【猫猫的姓名,颜色,年龄,性别,毛发,捉到了老鼠】
print(cat.name, cat.color, cat.age, cat.gender, "捉到了老鼠")
print(f"名字:{cat.name}, 颜色:{cat.color}, 年龄:{cat.age}, "
f"性别:{cat.gender}, 毛发:{cat.fur}, 捉到了老鼠。")
# 创建一个狗狗实例
dog = Dog('旺财', '黑色', 3, '母的')
# 调用【会看家】的方法
dog.house_keeping()
# 打印【狗狗的姓名,颜色,年龄,性别,毛发】
print(dog.name, dog.color, dog.age, dog.gender, dog.fur)
print(f"狗狗的姓名:{dog.name},颜色:{dog.color},年龄:{dog.age},性别:{dog.gender},毛发:{dog.fur}")
作业点评
优秀作业:
- 小小萱
- sallypeng
- 子谦
- ckk
- earlbyrd
- Yocczy
- wuting123456
- 可可777
- 窦靖超
- lipanpan99
- 丁莹
有待提高:
- 代码顺序
- pep8代码风格
- 类名、方法的命名
语义:brak ==> bark
环节二:实战练习:群主发普通红包
抢普通红包案例
某群有多个成员,群主给成员发普通红包。发红包的规则是:
1、群主负责发红包。红包金额从群主余额中扣除,按成员人数平均分成n等份,以备领取。
每个红包的金额为整数,如果有余数则加到最后一个红包中。
2、成员负责抢红包。抢到的红包金额存到自己余额中。
3、抢完红包后需要进行报数,打印格式“我是XX,现在有 XX 块钱。”。
请根据描述信息,完成案例中所有类的定义,类之间的继承关系,以及发红包、抢红包的操作。
环节三:实战讲解
分析
初步分析:
优化:
实现
# todo