Решение на Астрологични забави от Венцислав Димитров

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

Към профила на Венцислав Димитров

Резултати

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

Код

WESTERN_ZODIAC = [
(21, 'capricorn', 'aquarius'),
(19, 'aquarius', 'pisces'),
(21, 'pisces', 'aries'),
(21, 'aries', 'taurus'),
(21, 'taurus', 'gemini'),
(21, 'gemini', 'cancer'),
(23, 'cancer', 'leo'),
(23, 'leo', 'virgo'),
(23, 'virgo', 'libra'),
(22, 'libra', 'scorpio'),
(22, 'scorpio', 'sagittarius'),
(22, 'sagittarius', 'capricorn')
]
CHINESE_ZODIAC = [
'rat',
'ox',
'tiger',
'rabbit',
'dragon',
'snake',
'horse',
'sheep',
'monkey',
'rooster',
'dog',
'pig',
]
def interpret_western_sign(day, month):
zodiac = WESTERN_ZODIAC[month - 1]
if day < zodiac[0]:
return zodiac[1]
else:
return zodiac[2]
def interpret_chinese_sign(year):
chinese_sign = (year % 12) - 4
if chinese_sign < 0:
chinese_sign = 12 + chinese_sign
return CHINESE_ZODIAC[chinese_sign]
def interpret_both_signs(day, month, year):
western_sign = interpret_western_sign(day, month)
chinese_sign = interpret_chinese_sign(year)
return (western_sign, chinese_sign)

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

......
----------------------------------------------------------------------
Ran 6 tests in 0.007s

OK

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

Венцислав обнови решението на 07.03.2015 18:15 (преди над 9 години)

+WESTERN_ZODIAC = {
+ 1:(21, 'capricorn', 'aquarius'),
+ 2:(19, 'aquarius', 'pisces'),
+ 3:(21, 'pisces', 'aries'),
+ 4:(21, 'aries', 'taurus'),
+ 5:(21, 'taurus', 'gemini'),
+ 6:(21, 'gemini', 'cancer'),
+ 7:(23, 'cancer', 'leo'),
+ 8:(23, 'leo', 'virgo'),
+ 9:(23, 'virgo', 'libra'),
+ 10:(22, 'libra', 'scorpio'),
+ 11:(22, 'scorpio', 'sagittarius'),
+ 12:(22, 'sagittarius', 'capricorn')
+}
+
+CHINESE_ZODIAC = {
+ 0: 'rat',
+ 1: 'ox',
+ 2: 'tiger',
+ 3: 'rabbit',
+ 4: 'dragon',
+ 5: 'snake',
+ 6: 'horse',
+ 7: 'sheep',
+ 8: 'monkey',
+ 9: 'rooster',
+ 10: 'dog',
+ 11: 'pig',
+}
+
+def interpret_western_sign(day, month):
+ zodiac = WESTERN_ZODIAC.get(month)
+ if day < zodiac[0]:
+ return zodiac[1]
+ else:
+ return zodiac[2]
+
+def interpret_chinese_sign(year):
+ chinese_sign = (year%100)%12
+ return CHINESE_ZODIAC.get(chinese_sign)
+
+def interpret_both_signs(day, month, year):
+ western_sign = interpret_western_sign(day, month)
+ chinese_sign = interpret_chinese_sign(year)
+ return tuple([western_sign, chinese_sign])

Един от членовете на екипа ще каже следното:

"Тия речници с ключове последователни цели числа не ти ли напомнят силно на един друг вид структура."

Мисля, че в твоя случай няма да го пропусне.

В единия речник имаш идентация след : в другия не. Според PEP8 трябва да оставиш. Също около % трябва да имаш интервали E228 от PEP8.

Венцислав обнови решението на 08.03.2015 12:48 (преди над 9 години)

-WESTERN_ZODIAC = {
- 1:(21, 'capricorn', 'aquarius'),
- 2:(19, 'aquarius', 'pisces'),
- 3:(21, 'pisces', 'aries'),
- 4:(21, 'aries', 'taurus'),
- 5:(21, 'taurus', 'gemini'),
- 6:(21, 'gemini', 'cancer'),
- 7:(23, 'cancer', 'leo'),
- 8:(23, 'leo', 'virgo'),
- 9:(23, 'virgo', 'libra'),
- 10:(22, 'libra', 'scorpio'),
- 11:(22, 'scorpio', 'sagittarius'),
- 12:(22, 'sagittarius', 'capricorn')
-}
+WESTERN_ZODIAC = [
+ (21, 'capricorn', 'aquarius'),
+ (19, 'aquarius', 'pisces'),
+ (21, 'pisces', 'aries'),
+ (21, 'aries', 'taurus'),
+ (21, 'taurus', 'gemini'),
+ (21, 'gemini', 'cancer'),
+ (23, 'cancer', 'leo'),
+ (23, 'leo', 'virgo'),
+ (23, 'virgo', 'libra'),
+ (22, 'libra', 'scorpio'),
+ (22, 'scorpio', 'sagittarius'),
+ (22, 'sagittarius', 'capricorn')
+]
-CHINESE_ZODIAC = {
- 0: 'rat',
- 1: 'ox',
- 2: 'tiger',
- 3: 'rabbit',
- 4: 'dragon',
- 5: 'snake',
- 6: 'horse',
- 7: 'sheep',
- 8: 'monkey',
- 9: 'rooster',
- 10: 'dog',
- 11: 'pig',
-}
+CHINESE_ZODIAC = [
+ 'rat',
+ 'ox',
+ 'tiger',
+ 'rabbit',
+ 'dragon',
+ 'snake',
+ 'horse',
+ 'sheep',
+ 'monkey',
+ 'rooster',
+ 'dog',
+ 'pig',
+]
def interpret_western_sign(day, month):
- zodiac = WESTERN_ZODIAC.get(month)
+ zodiac = WESTERN_ZODIAC[month - 1]
if day < zodiac[0]:
return zodiac[1]
else:
return zodiac[2]
def interpret_chinese_sign(year):
- chinese_sign = (year%100)%12
- return CHINESE_ZODIAC.get(chinese_sign)
+ chinese_sign = (year % 12) - 4
+ if chinese_sign < 0:
+ chinese_sign = 12 + chinese_sign
+ return CHINESE_ZODIAC[chinese_sign]
def interpret_both_signs(day, month, year):
western_sign = interpret_western_sign(day, month)
chinese_sign = interpret_chinese_sign(year)
- return tuple([western_sign, chinese_sign])
+ return tuple([western_sign, chinese_sign])

Венцислав обнови решението на 10.03.2015 20:02 (преди над 9 години)

WESTERN_ZODIAC = [
(21, 'capricorn', 'aquarius'),
(19, 'aquarius', 'pisces'),
(21, 'pisces', 'aries'),
(21, 'aries', 'taurus'),
(21, 'taurus', 'gemini'),
(21, 'gemini', 'cancer'),
(23, 'cancer', 'leo'),
(23, 'leo', 'virgo'),
(23, 'virgo', 'libra'),
(22, 'libra', 'scorpio'),
(22, 'scorpio', 'sagittarius'),
(22, 'sagittarius', 'capricorn')
]
CHINESE_ZODIAC = [
'rat',
'ox',
'tiger',
'rabbit',
'dragon',
'snake',
'horse',
'sheep',
'monkey',
'rooster',
'dog',
'pig',
]
+
def interpret_western_sign(day, month):
zodiac = WESTERN_ZODIAC[month - 1]
if day < zodiac[0]:
return zodiac[1]
else:
return zodiac[2]
+
def interpret_chinese_sign(year):
chinese_sign = (year % 12) - 4
if chinese_sign < 0:
chinese_sign = 12 + chinese_sign
return CHINESE_ZODIAC[chinese_sign]
+
def interpret_both_signs(day, month, year):
western_sign = interpret_western_sign(day, month)
chinese_sign = interpret_chinese_sign(year)
- return tuple([western_sign, chinese_sign])
+ return (western_sign, chinese_sign)