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

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

Към профила на Ангел Венчев

Резултати

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

Код

def interpret_western_sign(day, month):
zodiac_signs = [(120,'capricorn'), (218,'aquarius'), (320,'pisces'),
(420,'aries'), (521,'taurus'), (621,'gemini'),
(722,'cancer'), (823,'leo'), (923,'virgo'),
(1023,'libra'), (1122,'scorpio'), (1222,'sagittaurus'),
(1231, 'capricorn')]
iterator = month * 100 + day
for date_zodiac in zodiac_signs:
if iterator < date_zodiac[0]:
return date_zodiac[1]
def interpret_chinese_sign(year):
chinese_signs = ['rat','ox','tiger','rabbit','dragon','snake',
'horse','sheep','monkey','rooster','dog','pig']
return chinese_signs[(year - 1900) % 12]
def interpret_both_signs(day, month, year):
return (interpret_western_sign(day, month), interpret_chinese_sign(year))

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

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

OK

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

Ангел обнови решението на 11.03.2015 11:15 (преди над 9 години)

+def interpret_western_sign(day, month):
+ zodiac_signs = [(120,'capricorn'), (218,'aquarius'), (320,'pisces'), (420,'aries'), (521,'taurus'),
+ (621,'gemini'), (722,'cancer'), (823,'leo'), (923,'virgo'), (1023,'libra'),
+ (1122,'scorpio'), (1222,'sagittaurus'), (1231, 'capricorn')]
+
+ iterator = int(str(month) + '%02d' % day)
+
+ for date_zodiac in zodiac_signs:
+ if iterator < date_zodiac[0]:
+ return date_zodiac[1]
+
+def interpret_chinese_sign(year):
+ chinese_signs = ['rat','ox','tiger','rabbit','dragon','snake',
+ 'horse','sheep','monkey','rooster','dog','pig']
+
+ year_to_compare = (year - 1900) % 12
+ return chinese_signs[year_to_compare]
+
+def interpret_both_signs(day, month, year):
+ return (interpret_western_sign(day, month), interpret_chinese_sign(year))
  • Трябва да слагаш по 2 празни реда между функциите
  • iterator можеш да го намериш по доста по-хитър начин без да минаваш през стрингове :)
  • year_to_compare не ти е нужна в случая
  • pep8 казва, че редовете трябва да са под 80 символа

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

def interpret_western_sign(day, month):
- zodiac_signs = [(120,'capricorn'), (218,'aquarius'), (320,'pisces'), (420,'aries'), (521,'taurus'),
- (621,'gemini'), (722,'cancer'), (823,'leo'), (923,'virgo'), (1023,'libra'),
- (1122,'scorpio'), (1222,'sagittaurus'), (1231, 'capricorn')]
+ zodiac_signs = [(120,'capricorn'), (218,'aquarius'), (320,'pisces'),
+ (420,'aries'), (521,'taurus'), (621,'gemini'),
+ (722,'cancer'), (823,'leo'), (923,'virgo'),
+ (1023,'libra'), (1122,'scorpio'), (1222,'sagittaurus'),
+ (1231, 'capricorn')]
- iterator = int(str(month) + '%02d' % day)
+ iterator = month * 100 + day
for date_zodiac in zodiac_signs:
if iterator < date_zodiac[0]:
return date_zodiac[1]
+
def interpret_chinese_sign(year):
chinese_signs = ['rat','ox','tiger','rabbit','dragon','snake',
'horse','sheep','monkey','rooster','dog','pig']
- year_to_compare = (year - 1900) % 12
- return chinese_signs[year_to_compare]
+ return chinese_signs[(year - 1900) % 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))