如果输入狗,猫或鸟,我如何让我的程序显示动物发出的噪音

时间:2019-03-03 19:23:34

标签: python python-3.x

name = input("What is your pet's name?")
species = input("What type of pet is it?")
age = input("How old is your pet?")

class Pet:
    def __init__(self, name, species, age, noise):
        self.name = name
        self.species = species
        self.age = age
        self.noise = noise

    def setNoise(self, noise):
            self.noise = "WOOF"
        elif species == cat:
            self.noise = "MEOW!"
        elif species == bird:
            self.noise = "CAWW!"
        else:
            self.noise = "Animal Noise"

    def get_type(self):
        print("Pet")

    def toString(self):
        return"{} is a {} and is {} years old".format(self.name,self.species,self.age,self.noise)

myPet = Pet(name,species,age,noise)
print(noise, myPet.toString())

当我在其中键入某些动物(如狗,猫或鸟)时,我不知道如何使程序显示噪音。任何帮助都将是惊人的。我不断遇到未定义噪声的错误。当我尝试使用种类输入来检查它是否等于狗时,也会出错。

1 个答案:

答案 0 :(得分:0)

我认为这可能是您想要获得的。您使用了catbird等变量,但未定义它们。我认为这些应该是字符串。我也摆脱了setNoise这个似乎没有目的的功能。由于噪声基于物种,因此将其设置为__init__。 Python还具有一种称为__str__的特殊方法。如果您设置了此项,那么当我致电print(myPet)时,它将打印出myPet.__str__()的返回值。比定义自己的字符串方法要好用,因为在打印时会自动调用它。

name = input("What is your pet's name?")
species = input("What type of pet is it?")
age = input("How old is your pet?")
# you might want to set age = int(age) if age is, e.g., an integer number of years

class Pet:
    def __init__(self, name, species, age):
        self.name = name
        self.species = species
        self.age = age

        if species == "dog":
            self.noise = "WOOF"
        elif species == "cat":
            self.noise = "MEOW!"
        elif species == "bird":
            self.noise = "CAWW!"
        else:
            self.noise = "Animal Noise"

    def get_type(self):
        print("Pet")

    def __str__(self):
        return"{} is a {} and is {} years old".format(self.name,self.species,self.age,self.noise)

myPet = Pet(name, species, age)
print(myPet.noise, myPet)