完整代码
#宠物类
class Pet:
def __init__(self, name='无名氏', health=100, love=0):
self.__name = name
self.setHealth(health)
self.setLove(love)
def getName(self):
return self.__name
def getHealth(self):
return self.__health
def setHealth(self, health):
if not (0 <= health <= 100):
print("错误 健康值应该在0至100之间,已设置为默认值 60。")
self.__health = 60
return
self.__health = health
def getLove(self):
return self.__love
def setLove(self, love):
if not (0 <= love <= 100):
print("错误 亲密度应该在0至100之间,已设置为默认值10。")
self.__love = 10
return
self.__love = love
def __str__(self):
return "宠物的自白:\n我的名字叫{},健康值是{},和主人的亲密度是{}。".format(
self.getName(), self.getHealth(), self.getLove(), )
#行为
def eat(self):
food=10
if self.getHealth() <+100:
self.setHealth(self.getHealth()+ food)
print(f"宠物吃了{food}点食物,现在的健康值是{self.getHealth()}。")
else:
print("宠物已经饱了,不能再吃了。")
class Dog(Pet):
def __init__(self, name='无名氏', health=100, love=0, strain="聪明的拉布拉多犬"):
super().__init__(name, health, love)
self.__strain = strain
def getStrain(self):
return self.__strain
def describe(self):
return "我是一只{}".format(self.getStrain())
class Penguin(Pet):
def __init__(self, name='无名氏', health=100, love=0, sex="Q仔"):
super().__init__(name, health, love)
self.__sex = sex
def getSex(self):
return self.__sex
def describe(self):
return "性别是{}".format(self.getSex())
class Cat(Pet):
def __init__(self, name='无名氏', health=100, love=0, color="白色"):
super().__init__(name, health, love)
self.__color = color
def getColor(self):
return self.__color
def describe(self):
msg = super().__str__() + "我的颜色是{}。".format(self.getColor())
return msg
def jump(self):
if self.getHealth() >= 60:
self.setHealth(self.getHealth()-10)
print("{}跳跃了一下,现在的健康值是{}。".format(self.getName(),self.getHealth()))
else:
print("{}的健康值太低,无法跳跃。".format(self.getName()))
while True:
print("欢迎您来到宠物店!")
try:
# 1、 输入宠物名称
name = input("请输入要领养宠物的名字:")
# 2、选择宠物类型
type = input("请选择要领养的宠物类型:(1、狗狗 2、企鹅 3、猫猫)")
if type == '1':
# 2.1 如果是狗狗
# 2.1.1.选择狗狗品种
result = input("请选择狗狗的品种:(1.聪明的拉布拉多犬 2.酷酷的雪娜瑞)")
if result == '1':
strain = "聪明的拉布拉多犬"
elif result == '2':
strain = "酷酷的雪娜瑞"
else:
raise ValueError("无效的品种选择。")
health = int(input("请输入狗狗的健康值(1~100之间):"))
love = int(input("请输入狗狗的亲密度(1~100之间):"))
# 2.1.2.创建狗狗对象并赋值
dog = Dog(name, health, love, strain)
# 2.1.3.输出狗狗信息
print(dog)
XingWei = input("请输入 1.喂食: ")
if XingWei == '1':
dog.eat()
elif type == '2':
# 2.2.如果是企鹅
# 2.2.1.选择企鹅性别
result = input("请选择企鹅的性别:(1、Q仔 2、Q妹)")
if result == '1':
sex = "Q仔"
elif result == '2':
sex = "Q妹"
else:
raise ValueError("无效的性别选择。")
health = int(input("请输入企鹅的健康值(1~100之间):"))
love = int(input("请输入企鹅的亲密度(1~100之间):"))
# 2.2.2.创建企鹅对象并赋值
pgn = Penguin(name, health, love, sex)
# 2.2.3.输出企鹅信息
print(pgn)
XingWei = input("请输入 1.喂食: ")
if XingWei == '1':
pgn.eat()
elif type == '3':
# 2.3.如果是猫猫
health = int(input("请输入狗狗的健康值(1~100之间):"))
love = int(input("请输入狗狗的亲密度(1~100之间):"))
# 2.3.1.选择猫猫颜色
result = input("请选择猫猫的颜色:(1、白色 2、黑色 3、黄色)")
if result == '1':
color = "白色"
elif result == '2':
color = "黑色"
elif result == '3':
color = "黄色"
else:
raise ValueError("无效的颜色选择。")
cat = Cat(name, health, love, color)
print(cat)
XingWei = input("请输入 1.喂食: 2跳跃: ")
if XingWei == '1':
cat.eat()
elif XingWei == '2':
cat.jump()
else:
raise ValueError("无效的宠物类型选择。")
except ValueError as e:
print("输入错误:", e)