python - 如果输入狗,猫或鸟,我如何让我的程序显示动物发出的噪音
问题描述
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())
当我在其中输入某种动物(例如狗、猫或鸟)时,我无法弄清楚如何让程序显示噪音。任何帮助都会很棒。我一直遇到未定义噪声的错误。当我尝试使用我的物种输入来检查它是否等于狗时,它也会出错。
解决方案
我想这可能是你想要得到的。您使用了cat
,bird
等变量而没有定义它们。我认为这些应该是字符串。我也摆脱了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)
推荐阅读
- java - 对于列表中的每个,执行操作直到满足条件
- java - Jersey Inject HK2 2.27 的问题:java.lang.ClassCastException
- php - PHP7.2.9 本地主机上的非法字符串问题
- c# - DropDownList 没有在 ASP.Net 中获取正确的值
- ios - Cocoapods:找不到重复的库
- python-3.x - Python Pandas 复制和更新 DataFrame 行
- angularjs - 如何处理 angularJS 应用程序中的用户身份验证会话 cookie?
- php - 使用基于 ID 的 PHP SDK 更新 ZohoCRM 中的记录
- security - Alexa accessToken JWT 编码了吗?
- sublimetext3 - Sublime Text 3 在文件末尾找到停止