#python
#python
Вопрос:
Я очень новичок в программировании и не могу понять, как выполнить самую легкую задачу в codewars. Я чувствую себя таким тупым : (
Вопрос: У меня есть кошка и собака.
Я получил их одновременно с котенком / щенком. Это было много лет назад.
Верните их соответствующий возраст теперь как [Человеческие годы, кошачьи годы, собачьи годы]
Примечания:
-
Человеческие годы > = 1
-
Человеческие годы — это только целые числа
Кошачьи годы
-
15 лет cat за первый год
-
9 лет обучения на втором курсе
-
4 года cat за каждый последующий год
Собачьи годы
-
15 собачьих лет за первый год
-
9 собачьих лет за второй год
-
5 собачьих лет за каждый последующий год
Это мой код:
def human_years_cat_years_dog_years(human_years):
catYears = 0
dogYears = 0
if human_years == 1:
catYears = 15
dogYears = 15
elif human_years == 2:
catYears = 24
dogYears = 24
elif human_years >= 3:
catYears = 4*human_years 24
dogYears= 5*human_years 24
return [human_years, catYears, dogYears]
Я знаю, что мои проблемы заключаются в части >= 3. Я просто не могу понять, как сделать это правильно, если я не создам оператор IF для каждого целого числа выше 3.
Ответ №1:
Вы забыли убрать первые 2 года при выполнении > = 3 года
def human_years_cat_years_dog_years(human_years):
catYears = 0
dogYears = 0
if human_years == 1:
catYears = 15
dogYears = 15
elif human_years == 2:
catYears = 24
dogYears = 24
elif human_years >= 3:
catYears = 4*(human_years-2) 24
dogYears= 5*(human_years-2) 24
return [human_years, catYears, dogYears]
Ответ №2:
Другая реализация, меньшая временная сложность, но, возможно, более гибкая, если вы хотите добавить других животных или более сложное старение (например, 15,9,4,3,3,3,3,2,1)
def years(human, arr):
return sum( arr[min(i,len(arr)-1)] for i in range(human))
def human_years_cat_years_dog_years(human_years):
cat = [15,9,4]
dog = [15,9,5]
return human_years, years(human_years,cat), years(human_years,dog)