Решение на Хороскоп от Иван Георгиев

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

Към профила на Иван Георгиев

Резултати

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

Код

ARIES = (3, range(21, 32)), (4, range(1, 21))
TAURUS = (4, range(21, 31)), (5, range(1, 21))
GEMINI = (5, range(21, 32)), (6, range(1, 21))
CANCER = (6, range(21, 31)), (7, range(1, 22))
LEO = (7, range(22, 32)), (8, range(1, 23))
VIRGO = (8, range(23, 32)), (9, range(1, 23))
LIBRA = (9, range(23, 31)), (10, range(1, 23))
SKORPION = (10, range(23, 32)), (11, range(1, 22))
SAGITTARIUS = (11, range(22, 31)), (12, range(1, 22))
CAPRICORN = (12, range(22, 32)), (1, range(1, 20))
AQUARIUS = (1, range(20, 32)), (2, range(1, 19))
PISCES = (2, range(19, 30)), (3, range(1, 21))
ZODIAC = [ARIES, TAURUS, GEMINI, CANCER, LEO, VIRGO, LIBRA,
SKORPION, SAGITTARIUS, CAPRICORN, AQUARIUS, PISCES]
ZODIAC_BG = ['Овен', 'Телец', 'Близнаци', 'Рак', 'Лъв', 'Дева', 'Везни',
'Скорпион', 'Стрелец', 'Козирог', 'Водолей', 'Риби']
def satisfied(sign, day, month):
return ((sign[0][0] == month and day in sign[0][1]) or
(sign[1][0] == month and day in sign[1][1]))
def what_is_my_sign(day, month):
for i in range(len(ZODIAC)):
if satisfied(ZODIAC[i], day, month):
return ZODIAC_BG[i]

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

...............
----------------------------------------------------------------------
Ran 15 tests in 0.002s

OK

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

Иван обнови решението на 02.03.2013 01:32 (преди над 11 години)

+ARIES = (3, range(21, 32)), (4, range(1, 21))
+TAURUS = (4, range(21, 31)), (5, range(1, 21))
+GEMINI = (5, range(21, 32)), (6, range(1, 21))
+CANCER = (6, range(21, 31)), (7, range(1, 22))
+LEO = (7, range(22, 32)), (8, range(1, 23))
+VIRGO = (8, range(23, 32)), (9, range(1, 23))
+LIBRA = (9, range(23, 31)), (10, range(1, 23))
+SKORPION = (10, range(23, 32)), (11, range(1, 22))
+SAGITTARIUS = (11, range(22, 31)), (12, range(1, 22))
+CAPRICORN = (12, range(22, 32)), (1, range(1, 20))
+AQUARIUS = (1, range(20, 32)), (2, range(1, 19))
+PISCES = (2, range(19, 30)), (3, range(1, 21))
+
+ZODIAC = [ARIES, TAURUS, GEMINI, CANCER, LEO, VIRGO, LIBRA,
+ SKORPION, SAGITTARIUS, CAPRICORN, AQUARIUS, PISCES]
+
+ZODIAC_BG = ['Овен', 'Телец', 'Близнаци', 'Рак', 'Лъв', 'Дева', 'Везни',
+ 'Скорпион', 'Стрелец', 'Козирог', 'Водолей', 'Риби']
+
+def satisfied(sign, day, month):
+ if ((sign[0][0] == month and day in sign[0][1]) or
+ (sign[1][0] == month and day in sign[1][1])):
+ return True
+ else:
+ return False
+
+def what_is_my_sign(day, month):
+ for i in range(len(ZODIAC)):
+ if satisfied(ZODIAC[i], day, month):
+ return ZODIAC_BG[i]

Иван обнови решението на 02.03.2013 15:23 (преди над 11 години)

ARIES = (3, range(21, 32)), (4, range(1, 21))
TAURUS = (4, range(21, 31)), (5, range(1, 21))
GEMINI = (5, range(21, 32)), (6, range(1, 21))
CANCER = (6, range(21, 31)), (7, range(1, 22))
LEO = (7, range(22, 32)), (8, range(1, 23))
VIRGO = (8, range(23, 32)), (9, range(1, 23))
LIBRA = (9, range(23, 31)), (10, range(1, 23))
SKORPION = (10, range(23, 32)), (11, range(1, 22))
SAGITTARIUS = (11, range(22, 31)), (12, range(1, 22))
CAPRICORN = (12, range(22, 32)), (1, range(1, 20))
AQUARIUS = (1, range(20, 32)), (2, range(1, 19))
PISCES = (2, range(19, 30)), (3, range(1, 21))
ZODIAC = [ARIES, TAURUS, GEMINI, CANCER, LEO, VIRGO, LIBRA,
SKORPION, SAGITTARIUS, CAPRICORN, AQUARIUS, PISCES]
ZODIAC_BG = ['Овен', 'Телец', 'Близнаци', 'Рак', 'Лъв', 'Дева', 'Везни',
'Скорпион', 'Стрелец', 'Козирог', 'Водолей', 'Риби']
+
def satisfied(sign, day, month):
if ((sign[0][0] == month and day in sign[0][1]) or
(sign[1][0] == month and day in sign[1][1])):
return True
else:
return False
+
def what_is_my_sign(day, month):
for i in range(len(ZODIAC)):
if satisfied(ZODIAC[i], day, month):
- return ZODIAC_BG[i]
+ return ZODIAC_BG[i]

Защо имаш нужда от това всяка зодия да е в отделна константа, като така или иначе след това ги ползваш само от списъка?

Идеята да си направиш помощна функция е ок. Друго обаче ме мъчи. Защо тялото на функцията е от типа:

if condition:
    return True
else:
    return False

Като може да е просто: return condition?

Иван обнови решението на 02.03.2013 21:25 (преди над 11 години)

ARIES = (3, range(21, 32)), (4, range(1, 21))
TAURUS = (4, range(21, 31)), (5, range(1, 21))
GEMINI = (5, range(21, 32)), (6, range(1, 21))
CANCER = (6, range(21, 31)), (7, range(1, 22))
LEO = (7, range(22, 32)), (8, range(1, 23))
VIRGO = (8, range(23, 32)), (9, range(1, 23))
LIBRA = (9, range(23, 31)), (10, range(1, 23))
SKORPION = (10, range(23, 32)), (11, range(1, 22))
SAGITTARIUS = (11, range(22, 31)), (12, range(1, 22))
CAPRICORN = (12, range(22, 32)), (1, range(1, 20))
AQUARIUS = (1, range(20, 32)), (2, range(1, 19))
PISCES = (2, range(19, 30)), (3, range(1, 21))
ZODIAC = [ARIES, TAURUS, GEMINI, CANCER, LEO, VIRGO, LIBRA,
SKORPION, SAGITTARIUS, CAPRICORN, AQUARIUS, PISCES]
ZODIAC_BG = ['Овен', 'Телец', 'Близнаци', 'Рак', 'Лъв', 'Дева', 'Везни',
'Скорпион', 'Стрелец', 'Козирог', 'Водолей', 'Риби']
def satisfied(sign, day, month):
- if ((sign[0][0] == month and day in sign[0][1]) or
- (sign[1][0] == month and day in sign[1][1])):
- return True
- else:
- return False
+ return ((sign[0][0] == month and day in sign[0][1]) or
+ (sign[1][0] == month and day in sign[1][1]))
def what_is_my_sign(day, month):
for i in range(len(ZODIAC)):
if satisfied(ZODIAC[i], day, month):
- return ZODIAC_BG[i]
+ return ZODIAC_BG[i]