Решение на Хороскоп от Пламена Петрова

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

Към профила на Пламена Петрова

Резултати

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

Код

def what_is_my_sign(day, month):
sign = ['Козирог', 'Водолей', 'Риби',
'Овен', 'Телец', 'Близнаци',
'Рак', 'Лъв', 'Дева', 'Везни',
'Скорпион', 'Стрелец', 'Козирог']
count = 0
for month_cal in range(1, 13):
for day_cal in range(1, 32):
if ((day_cal == 19 and month_cal == 2) or
(day_cal == 20 and month_cal == 1) or
(day_cal == 21 and ((month_cal == 3 or month_cal == 4 or
month_cal == 5 or
month_cal == 6))) or
(day_cal == 22 and ((month_cal == 7 or
month_cal == 11 or month_cal == 12))) or
(day_cal == 23 and ((month_cal == 8 or
month_cal == 9 or month_cal == 10)))):
count = count + 1
elif day_cal == day and month_cal == month:
break
if month_cal == month:
break
return(sign[count])

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

...............
----------------------------------------------------------------------
Ran 15 tests in 0.004s

OK

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

Пламена обнови решението на 02.03.2013 00:46 (преди над 11 години)

+def what_is_my_sign(day, month):
+ sign=['Козирог','Водолей','Риби''Овен','Телец','Близнаци','Рак','Лъв','Дева','Везни','Скорпион','Стрелец','Козирог']
+ lamp=True
+ count=0
+ for i in range(1,30):
+ for j in range(1,12):
+ if i==day and j==month:
+ break
+ elif (i==18 and j==2) or (i==19 and j==1) or (i==20 and (j==4 or j==5 or j==6)) or (i==21 and (j==7 or j==11 or j==12)) or (i==22 and j==8):
+ count=count+1
+ return(sign[count])

My eyes are bleeding. Сериозно.

  • Прочети PEP 8. Нарушаваш впечатляващо много правила само с 10 реда код.
  • i и j може да са добри имена за for цикли в C, но в Python - не са. Говорихме за това.
  • И въобще, сигурна ли си, че имаш нужда от два вложени for-а?

Или ти е много широк монитора или обичаш да скролваш! Разбивай ги на повечко редове тези дълги стейтмънтиииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииииии.

Пламена обнови решението на 04.03.2013 14:58 (преди над 11 години)

def what_is_my_sign(day, month):
- sign=['Козирог','Водолей','Риби''Овен','Телец','Близнаци','Рак','Лъв','Дева','Везни','Скорпион','Стрелец','Козирог']
- lamp=True
- count=0
- for i in range(1,30):
- for j in range(1,12):
- if i==day and j==month:
+ sign = ['Козирог', 'Водолей', 'Риби',
+ 'Овен', 'Телец', 'Близнаци',
+ 'Рак', 'Лъв', 'Дева', 'Везни',
+ 'Скорпион', 'Стрелец', 'Козирог']
+ count = 0
+ for month_cal in range(1, 13):
+ for day_cal in range(1, 32):
+ if ((day_cal == 19 and month_cal == 2) or
+ (day_cal == 20 and month_cal == 1) or
+ (day_cal == 21 and ((month_cal == 3 or month_cal == 4 or
+ month_cal == 5 or
+ month_cal == 6))) or
+ (day_cal == 22 and ((month_cal == 7 or
+ month_cal == 11 or month_cal == 12))) or
+ (day_cal == 23 and ((month_cal == 8 or
+ month_cal == 9 or month_cal == 10)))):
+ count = count + 1
+ elif day_cal == day and month_cal == month:
+ break
+ if month_cal == month:
break
- elif (i==18 and j==2) or (i==19 and j==1) or (i==20 and (j==4 or j==5 or j==6)) or (i==21 and (j==7 or j==11 or j==12)) or (i==22 and j==8):
- count=count+1
+ return(sign[count])
- return(sign[count])