Я только начал изучать python и делал фиктивный проект в качестве теста, но результат всегда переходит к оператору else, надеюсь, я смогу получить помощь! вот полный код.
class PetLover(object):
def __init__(self, livingPlace, hoursAtHome):
self.p = livingPlace
self.h = hoursAtHome
def getRecommendation(self):
if self.p == 'h':
if self.h in range(18, 24):
return "Pot bellied pig"
elif self.h in range(10, 17):
return "Dog"
elif self.h in range(1, 10):
return "Snake"
else:
return "No recommendation"
elif self.p == 'a':
if self.h in range(10, 24):
return "Cat"
elif self.h in range(1, 9):
return "Hamster"
else:
return "No recommendation"
elif self.p == 'd':
if self.h in range(6, 24):
return "Fish"
elif self.h in range(1, 5):
return "Ant Farm"
else:
return "No recommendation"
else:
return "No recommendation"
livePlace = input("Do you live in house(H), Apartment(A) or Dorm(D)?")
hoursHome = input("How many hours do you spend at home?")
p = PetLover(livePlace, hoursHome)
print(p.getRecommendation())
Спасибо!
input
возвращает строку. range(...)
никогда не содержит строки. Вы можете преобразовать его в int с помощью int(input("How many hours..."))
Спасибо, я добавил int (input ("...")), и это сработало!
Какие входные данные вы ввели, что ожидали увидеть и что получили?