Решение на Хороскоп от Весела Бандова

Обратно към всички решения

Към профила на Весела Бандова

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 15 успешни тест(а)
  • 0 неуспешни тест(а)

Код

def what_is_my_sign(day, month):
zodiac = ["Козирог", "Водолей", "Риби", "Овен",
"Телец", "Близнаци", "Рак", "Лъв", "Дева",
"Везни", "Скорпион", "Стрелец"]
if day <= 18:
return zodiac[month-1]
if day >= 23:
return zodiac[month % 12]
if day == 22:
if month >= 8 and month <= 10:
return zodiac[month-1]
else:
return zodiac[month % 12]
if day == 21:
if month >= 1 and month <= 6:
return zodiac[month % 12]
else:
return zodiac[month-1]
if day == 20:
if month == 1 or month == 2:
return zodiac[month % 12]
else:
return zodiac[month-1]
if day == 19:
if month == 2:
return zodiac[month % 12]
else:
return zodiac[month-1]

Лог от изпълнението

...............
----------------------------------------------------------------------
Ran 15 tests in 0.001s

OK

История (3 версии и 1 коментар)

Весела обнови решението на 01.03.2013 13:29 (преди над 11 години)

+def what_is_my_sign(day, month):
+ if month == 3 and day >=21 or month == 4 and day <= 20:
+ print ("'Овен'")
+ elif month == 4 and day >= 21 or month == 5 and day <= 20:
+ print ("'Телец'")
+ elif month == 5 and day >= 21 or month == 6 and day <= 20:
+ print ("'Близнаци'")
+ elif month == 6 and day >= 21 or month == 7 and day <=21:
+ print ("'Рак'")
+ elif month == 7 and day >= 22 or month ==8 and day <= 22:
+ print ("'Лъв'")
+ elif month == 8 and day >= 23 or month == 9 and day <= 22:
+ print ("'Дева'")
+ elif month == 9 and day >= 23 or month == 10 and day <= 22:
+ print ("'Везни")
+ elif month == 10 and day >= 23 or month == 11 and day <= 21:
+ print ("'Скорпион'")
+ elif month == 11 and day >= 22 or month == 12 and day <=21:
+ print ("'Стрелец'")
+ elif month == 12 and day >= 22 or month == 1 and day <= 19:
+ print ("'Козирог'")
+ elif month == 1 and day >= 20 or month == 2 and day <= 18:
+ print ("'Водолей'")
+ elif month == 2 and day >= 19 or month == 3 and day <= 20:
+ print ("'Риби'")

Откъм стил:

  • Не ми харесва, че имаш твърде много повтарящ се код. Помисли как да се отървеш от него.

Откъм функционалност:

  • Единичните кавички, които се виждат в примера в условието на задачата са особеност на интерактивния интерпретатор. Не са нещо, което очакваме да има в резултата.
  • Освен това, вместо да връщаш резултата, го печаташ.

За да избегнеш по-нататъчни проблеми, можеш да посетиш форума и темата за тази задача. Там ще намериш примерни тестове за задачата и инструкции как да ги пуснеш.

Весела обнови решението на 02.03.2013 14:36 (преди над 11 години)

def what_is_my_sign(day, month):
- if month == 3 and day >=21 or month == 4 and day <= 20:
- print ("'Овен'")
+ zodiac= ["Стрелец", "Козирог", "Водолей", "Риби", "Овен",
- elif month == 4 and day >= 21 or month == 5 and day <= 20:
+ "Телец", "Близнаци","Рак", "Лъв", "Дева", "Везни",
- print ("'Телец'")
+ "Скорпион"]
- elif month == 5 and day >= 21 or month == 6 and day <= 20:
+ if day <= 18:
- print ("'Близнаци'")
+ return zodiac[month%12]
- elif month == 6 and day >= 21 or month == 7 and day <=21:
+ if day >= 23:
- print ("'Рак'")
+ return zodiac[(month+1)%12]
- elif month == 7 and day >= 22 or month ==8 and day <= 22:
+ if day == 22:
- print ("'Лъв'")
+ if month >= 8 and month <= 10:
- elif month == 8 and day >= 23 or month == 9 and day <= 22:
+ return zodiac [month%12]
- print ("'Дева'")
+ else :
- elif month == 9 and day >= 23 or month == 10 and day <= 22:
+ return zodiac [(month+1)%12]
- print ("'Везни")
+ if day == 21:
- elif month == 10 and day >= 23 or month == 11 and day <= 21:
+ if month >= 1 and month <= 6 :
- print ("'Скорпион'")
+ return zodiac [(month+1)%12]
- elif month == 11 and day >= 22 or month == 12 and day <=21:
+ else :
- print ("'Стрелец'")
+ return zodiac [month%12]
- elif month == 12 and day >= 22 or month == 1 and day <= 19:
+ if day == 20:
- print ("'Козирог'")
+ if month == 1 or month == 2:
- elif month == 1 and day >= 20 or month == 2 and day <= 18:
+ return zodiac[(month+1)%12]
- print ("'Водолей'")
+ else:
- elif month == 2 and day >= 19 or month == 3 and day <= 20:
+ return zodiac[month%12]
- print ("'Риби'")
+ if day == 19:
+ if month == 2:
+ return zodiac [(month+1)%12]
+ else:
+ return zodiac[month%12]
+

Весела обнови решението на 02.03.2013 15:54 (преди над 11 години)

+
+
def what_is_my_sign(day, month):
- zodiac= ["Стрелец", "Козирог", "Водолей", "Риби", "Овен",
- "Телец", "Близнаци","Рак", "Лъв", "Дева", "Везни",
- "Скорпион"]
+ zodiac = ["Козирог", "Водолей", "Риби", "Овен",
+ "Телец", "Близнаци", "Рак", "Лъв", "Дева",
+ "Везни", "Скорпион", "Стрелец"]
if day <= 18:
- return zodiac[month%12]
+ return zodiac[month-1]
if day >= 23:
- return zodiac[(month+1)%12]
+ return zodiac[month % 12]
if day == 22:
if month >= 8 and month <= 10:
- return zodiac [month%12]
- else :
- return zodiac [(month+1)%12]
+ return zodiac[month-1]
+ else:
+ return zodiac[month % 12]
if day == 21:
- if month >= 1 and month <= 6 :
- return zodiac [(month+1)%12]
- else :
- return zodiac [month%12]
+ if month >= 1 and month <= 6:
+ return zodiac[month % 12]
+ else:
+ return zodiac[month-1]
if day == 20:
if month == 1 or month == 2:
- return zodiac[(month+1)%12]
+ return zodiac[month % 12]
else:
- return zodiac[month%12]
+ return zodiac[month-1]
if day == 19:
if month == 2:
- return zodiac [(month+1)%12]
+ return zodiac[month % 12]
else:
- return zodiac[month%12]
-
+ return zodiac[month-1]