Решение на Астрологични забави от Тачо Желев

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

Към профила на Тачо Желев

Резултати

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

Код

def interpret_western_sign(day, month):
sign = {1: (20, "capricorn", "aquarius"),
2: (18, "aquarius", "pisces"),
3: (20, "pisces", "aries"),
4: (20, "aries", "taurus"),
5: (20, "taurus", "gemini"),
6: (20, "gemini", "cancer"),
7: (22, "cancer", "leo"),
8: (22, "leo", "virgo"),
9: (22, "virgo", "libra"),
10: (22, "libra", "scorpio"),
11: (21, "scorpio", "sagittarius"),
12: (21, "sagittarius", "capricorn")}
if day <= sign[month][0]:
return sign[month][1]
else:
return sign[month][2]
def interpret_chinese_sign(year):
rem = year % 12
sign = ("monkey",
"rooster",
"dog",
"pig",
"rat",
"ox",
"tiger",
"rabbit",
"dragon",
"snake",
"horse",
"sheep")
return sign[rem]
def interpret_both_signs(day, month, year):
return (interpret_western_sign(day, month), interpret_chinese_sign(year))

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

......
----------------------------------------------------------------------
Ran 6 tests in 0.006s

OK

История (4 версии и 8 коментара)

Тачо обнови решението на 10.03.2015 11:12 (преди около 9 години)

+def interpret_western_sign(day, month):
+ d = {1: (20, "capricorn", "aquarius"),
+ 2: (18, "aquarius", "pisces"),
+ 3: (20, "pisces", "aries"),
+ 4: (20, "aries", "taurus"),
+ 5: (20, "taurus", "gemini"),
+ 6: (20, "gemini", "cancer"),
+ 7: (22, "cancer", "leo"),
+ 8: (22, "leo", "virgo"),
+ 9: (22, "virgo", "libra"),
+ 10: (22, "libra", "scorpio"),
+ 11: (21, "scorpio", "sagittarius"),
+ 12: (21, "sagittarius", "capricorn")}
+ if day <= d[month][0]:
+ return d[month][1]
+ else:
+ return d[month][2]
+
+def interpret_chinese_sign(year):
+ if year < 1900:
+ while year < 1900:
+ year += 12
+ elif year > 1911:
+ while year > 1911:
+ year -= 12
+ d = {1900: "rat",
+ 1901: "ox",
+ 1902: "tiger",
+ 1903: "rabbit",
+ 1904: "dragon",
+ 1905: "snake",
+ 1906: "horse",
+ 1907: "sheep",
+ 1908: "monkey",
+ 1909: "rooster",
+ 1910: "dog",
+ 1911: "pig"}
+ return d[year]
+
+def interpret_both_signs(day, month, year):
+ return (interpret_western_sign(day, month), interpret_chinese_sign(year))

Тачо обнови решението на 10.03.2015 16:29 (преди около 9 години)

def interpret_western_sign(day, month):
- d = {1: (20, "capricorn", "aquarius"),
- 2: (18, "aquarius", "pisces"),
- 3: (20, "pisces", "aries"),
- 4: (20, "aries", "taurus"),
- 5: (20, "taurus", "gemini"),
- 6: (20, "gemini", "cancer"),
- 7: (22, "cancer", "leo"),
- 8: (22, "leo", "virgo"),
- 9: (22, "virgo", "libra"),
- 10: (22, "libra", "scorpio"),
- 11: (21, "scorpio", "sagittarius"),
- 12: (21, "sagittarius", "capricorn")}
- if day <= d[month][0]:
- return d[month][1]
+ sign = {1: (20, "capricorn", "aquarius"),
+ 2: (18, "aquarius", "pisces"),
+ 3: (20, "pisces", "aries"),
+ 4: (20, "aries", "taurus"),
+ 5: (20, "taurus", "gemini"),
+ 6: (20, "gemini", "cancer"),
+ 7: (22, "cancer", "leo"),
+ 8: (22, "leo", "virgo"),
+ 9: (22, "virgo", "libra"),
+ 10: (22, "libra", "scorpio"),
+ 11: (21, "scorpio", "sagittarius"),
+ 12: (21, "sagittarius", "capricorn")}
+ if day <= sign[month][0]:
+ return sign[month][1]
else:
- return d[month][2]
+ return sign[month][2]
+
def interpret_chinese_sign(year):
if year < 1900:
while year < 1900:
year += 12
elif year > 1911:
while year > 1911:
year -= 12
- d = {1900: "rat",
- 1901: "ox",
- 1902: "tiger",
- 1903: "rabbit",
- 1904: "dragon",
- 1905: "snake",
- 1906: "horse",
- 1907: "sheep",
- 1908: "monkey",
- 1909: "rooster",
- 1910: "dog",
- 1911: "pig"}
- return d[year]
+ sign = {1900: "rat",
+ 1901: "ox",
+ 1902: "tiger",
+ 1903: "rabbit",
+ 1904: "dragon",
+ 1905: "snake",
+ 1906: "horse",
+ 1907: "sheep",
+ 1908: "monkey",
+ 1909: "rooster",
+ 1910: "dog",
+ 1911: "pig"}
+ return sign[year]
+
def interpret_both_signs(day, month, year):
return (interpret_western_sign(day, month), interpret_chinese_sign(year))

С изваждане и добавяне ми беше просто първоначалната идея, но мисля, че става с остатъка при деление също (ако за това става въпрос). Просто не съм пробвал дали ще стане. Да разбирам ли, че трябва по оптимизационен начин да потърся за задачата и е от значение за точките, които получаваме? Мерси за отговора горе! :)

Тачо обнови решението на 11.03.2015 00:00 (преди около 9 години)

def interpret_western_sign(day, month):
sign = {1: (20, "capricorn", "aquarius"),
2: (18, "aquarius", "pisces"),
3: (20, "pisces", "aries"),
4: (20, "aries", "taurus"),
5: (20, "taurus", "gemini"),
6: (20, "gemini", "cancer"),
7: (22, "cancer", "leo"),
8: (22, "leo", "virgo"),
9: (22, "virgo", "libra"),
- 10: (22, "libra", "scorpio"),
- 11: (21, "scorpio", "sagittarius"),
- 12: (21, "sagittarius", "capricorn")}
+ 10: (22, "libra", "scorpio"),
+ 11: (21, "scorpio", "sagittarius"),
+ 12: (21, "sagittarius", "capricorn")}
if day <= sign[month][0]:
return sign[month][1]
else:
return sign[month][2]
def interpret_chinese_sign(year):
- if year < 1900:
- while year < 1900:
- year += 12
- elif year > 1911:
- while year > 1911:
- year -= 12
- sign = {1900: "rat",
- 1901: "ox",
- 1902: "tiger",
- 1903: "rabbit",
- 1904: "dragon",
- 1905: "snake",
- 1906: "horse",
- 1907: "sheep",
- 1908: "monkey",
- 1909: "rooster",
- 1910: "dog",
- 1911: "pig"}
- return sign[year]
+ rem = year % 12
+ sign = {4: "rat",
+ 5: "ox",
+ 6: "tiger",
+ 7: "rabbit",
+ 8: "dragon",
+ 9: "snake",
+ 10: "horse",
+ 11: "sheep",
+ 0: "monkey",
+ 1: "rooster",
+ 2: "dog",
+ 3: "pig"}
+ return sign[rem]
def interpret_both_signs(day, month, year):
- return (interpret_western_sign(day, month), interpret_chinese_sign(year))
+ return (interpret_western_sign(day, month), interpret_chinese_sign(year))

Тачо обнови решението на 11.03.2015 09:19 (преди около 9 години)

def interpret_western_sign(day, month):
sign = {1: (20, "capricorn", "aquarius"),
2: (18, "aquarius", "pisces"),
3: (20, "pisces", "aries"),
4: (20, "aries", "taurus"),
5: (20, "taurus", "gemini"),
6: (20, "gemini", "cancer"),
7: (22, "cancer", "leo"),
8: (22, "leo", "virgo"),
9: (22, "virgo", "libra"),
10: (22, "libra", "scorpio"),
11: (21, "scorpio", "sagittarius"),
12: (21, "sagittarius", "capricorn")}
if day <= sign[month][0]:
return sign[month][1]
else:
return sign[month][2]
def interpret_chinese_sign(year):
rem = year % 12
- sign = {4: "rat",
- 5: "ox",
- 6: "tiger",
- 7: "rabbit",
- 8: "dragon",
- 9: "snake",
- 10: "horse",
- 11: "sheep",
- 0: "monkey",
- 1: "rooster",
- 2: "dog",
- 3: "pig"}
+ sign = ("monkey",
+ "rooster",
+ "dog",
+ "pig",
+ "rat",
+ "ox",
+ "tiger",
+ "rabbit",
+ "dragon",
+ "snake",
+ "horse",
+ "sheep")
return sign[rem]
def interpret_both_signs(day, month, year):
return (interpret_western_sign(day, month), interpret_chinese_sign(year))