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

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

Към профила на Ангел Новоселски

Резултати

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

Код

CHINESE_ZODIAC = {1: 'rooster', 2: 'dog', 3: 'pig', 4: 'rat', 5: 'ox',
6: 'tiger', 7: 'rabbit', 8: 'dragon', 9: 'snake',
10: 'horse', 11: 'sheep', 0: 'monkey', }
ZODIAC = {121: 'aquarius', 219: 'pisces', 321: 'aries', 421: 'taurus',
521: 'gemini', 621: 'cancer', 723: 'leo', 823: 'virgo',
923: 'libra', 1023: 'scorpio', 1122: 'sagittarius',
1222: 'capricorn'}
def interpret_western_sign(day, month):
formated = 100 * month + day
while formated not in ZODIAC:
if formated == 0:
return 'capricorn'
formated -= 1
return ZODIAC[formated]
def interpret_chinese_sign(year):
return CHINESE_ZODIAC[year % 12]
def interpret_both_signs(day, month, year):
return (interpret_western_sign(day, month), interpret_chinese_sign(year))

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

......
----------------------------------------------------------------------
Ran 6 tests in 0.008s

OK

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

Ангел обнови решението на 09.03.2015 12:30 (преди над 9 години)

+def interpret_western_sign(day, month):
+ formated = 100 * month + day
+ ZODIAC = {121: 'Aquarius', 219: 'Pisces', 321: 'Aries', 421: 'Taurus',
+ 521: 'Gemini', 621: 'Cancer', 723: 'Leo', 823: 'Virgo',
+ 923: 'Libra', 1023: 'Scorpio', 1122: 'Sagittarius',
+ 1222: 'Capricorn'}
+ while formated not in ZODIAC:
+ if formated == 0:
+ return 'Capricorn'
+ formated -= 1
+ return ZODIAC[formated]
+
+
+def interpret_chinese_sign(year):
+ ChineseZodiac = {1: 'rooster', 2: 'dog', 3: 'pig', 4: 'rat', 5: 'ox',
+ 6: 'tiger', 7: 'rabbit', 8: 'dragon', 9: 'snake',
+ 10: 'horse', 11: 'sheep', 0: 'monkey', }
+ return ChineseZodiac[year % 12]
+
+
+def interpret_both_signs(day, month, year):
+ return (interpret_western_sign(day, month), interpret_chinese_sign(year))
  • Имената на зодиите трябва да са изцяло с малки букви, така излиза, че не връщат правилните неща
  • По-добре е да изнесеш константите извън функциите
  • ChineseZodiac е кофти име, помисли си защо и го оправи

Конвенцията за константи в Питон е името на променливата да е с ГЛАВНИ_БУКВИ (CHINISE_ZODIAC) и те да са в началото на файла. Много рядко има смисъл константата да е част от дефиницията на функцията ти.

Ангел обнови решението на 10.03.2015 10:07 (преди над 9 години)

+CHINESE_ZODIAC = {1: 'rooster', 2: 'dog', 3: 'pig', 4: 'rat', 5: 'ox',
+ 6: 'tiger', 7: 'rabbit', 8: 'dragon', 9: 'snake',
+ 10: 'horse', 11: 'sheep', 0: 'monkey', }
+
+ZODIAC = {121: 'aquarius', 219: 'pisces', 321: 'aries', 421: 'taurus',
+ 521: 'gemini', 621: 'cancer', 723: 'leo', 823: 'virgo',
+ 923: 'libra', 1023: 'scorpio', 1122: 'sagittarius',
+ 1222: 'capricorn'}
+
+
def interpret_western_sign(day, month):
formated = 100 * month + day
- ZODIAC = {121: 'Aquarius', 219: 'Pisces', 321: 'Aries', 421: 'Taurus',
- 521: 'Gemini', 621: 'Cancer', 723: 'Leo', 823: 'Virgo',
- 923: 'Libra', 1023: 'Scorpio', 1122: 'Sagittarius',
- 1222: 'Capricorn'}
while formated not in ZODIAC:
if formated == 0:
return 'Capricorn'
formated -= 1
return ZODIAC[formated]
def interpret_chinese_sign(year):
- ChineseZodiac = {1: 'rooster', 2: 'dog', 3: 'pig', 4: 'rat', 5: 'ox',
- 6: 'tiger', 7: 'rabbit', 8: 'dragon', 9: 'snake',
- 10: 'horse', 11: 'sheep', 0: 'monkey', }
- return ChineseZodiac[year % 12]
+ return CHINESE_ZODIAC[year % 12]
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 12:00 (преди над 9 години)

CHINESE_ZODIAC = {1: 'rooster', 2: 'dog', 3: 'pig', 4: 'rat', 5: 'ox',
6: 'tiger', 7: 'rabbit', 8: 'dragon', 9: 'snake',
10: 'horse', 11: 'sheep', 0: 'monkey', }
ZODIAC = {121: 'aquarius', 219: 'pisces', 321: 'aries', 421: 'taurus',
521: 'gemini', 621: 'cancer', 723: 'leo', 823: 'virgo',
923: 'libra', 1023: 'scorpio', 1122: 'sagittarius',
1222: 'capricorn'}
def interpret_western_sign(day, month):
formated = 100 * month + day
while formated not in ZODIAC:
if formated == 0:
- return 'Capricorn'
+ return 'capricorn'
formated -= 1
return ZODIAC[formated]
def interpret_chinese_sign(year):
return CHINESE_ZODIAC[year % 12]
def interpret_both_signs(day, month, year):
return (interpret_western_sign(day, month), interpret_chinese_sign(year))