簡體   English   中英

如果輸入狗,貓或鳥,我如何讓我的程序顯示動物發出的噪音

[英]How do i get my program to display a noise that the animal makes if the input a dog, cat or bird

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())

當我在其中鍵入某些動物(如狗,貓或鳥)時,我不知道如何使程序顯示噪音。 任何幫助都將是驚人的。 我不斷遇到未定義噪聲的錯誤。 當我嘗試使用我的物種輸入來檢查它是否等於狗時,也會出錯。

我認為這可能就是您想要得到的。 您使用了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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM