Първа задача

  1. Ето го и първото домашно. Срокът ви е до 11.03 17:00.

    Примерния тест можете да намерите в GitHub хранилището.

    Напомням, че нямате право да си споделяте решенията. Обяснение от типа "Аз само му показах моето, но той сам си го написа" не важи. Ако имате въпроси по условието или такива от общ характер за решението на домашното - питайте тук.

    Преди всичко се запознайте с това как (не) се предават задачи.

  2. Приемаме ли, че преди 1900 година няма китайски зодиак ? :)

    Не, разбира се :)

    Няма ли начин, как да пратим файла с решението или винаги трябва целия код да копирваме ?

    Винаги трябва да копирате целия код. Опарвали сме се достатъчно с прикачване на файлове ;)

    Тестовете на @Александър са напълно валидни. Освен примерния тест, който сме ви предоставили можете да ползвате и неговия. Ако някой от тях се дъни върху вашето решение, може би сте объркали нещо :)

  3. При положение, че имаме изкаран шорткът на python.exe от инсталационната директория и готов файл nameoffile.py , по какъв начин става зареждането на съответния файл за да го изпълним?

  4. @Тачо, най - лесния начин за изпълнение на питонска програма от файл в windows е double click. Поне при стандартна инсталация.

    Друг подход е да си сложиш пътя към питонската инсталация в Path променливата на средата. В windows това става с много кликания по разни прозорци и бутони, питай google. След като го направиш влизаш в PowerShell и в директорията, където ти е файла, пишеш

    python.exe nameoffile.py
    

    Най - хубавия подход е да използваш операционна система с нормален shell. Това ще е полезно за теб по много начини в бъдеще. Бих ти препоръчал този туториъл. Виртуализацията вече е лесна - пробвай го.

  5. Ясно, благодаря за отговора. Искам последно да попитам нещо по условието. Струва ми се, че има застъпване на дати на зодиите.

    aquarius - January 21 – February 19 pisces - February 19 – March 20

    Как точно да го тълкуваме?

  6. Относно застъпването на зодиите:

    Under the tropical zodiac, the sun is in Aquarius typically between January 20 and February 18, while under the Sidereal Zodiac, the sun is in Aquarius from approximately February 15 to March 14, depending on leap year. - Aquarius (astrology)

    Under the tropical zodiac the sun transits this area on average between February 19 and March 20,[a][3] and under the sidereal zodiac, the sun transits this area between approximately March 14 and April 14. - Pisces (astrology)

    Ако приемем, че условието на задачата следва the tropical zodiac, най-вероятно трябва да бъде:

    • aquarius - January 21 – February 18
    • pisces - February 19 – March 20

    Иначе има някакви глупости, че може да е същия ден, но в зависимост от часа. Съмнявам се нещо такова да се има предвид в условието.

    Едит: Всъщност е по-замотано и датите се менят от година на година. Ама горното ми се струва достатъчно за целите на задачата :D

  7. @Минх, супер :)

    Към останалите: Ако някой публикува тестове и публикацията му е маркирана в жълто, то ние сме потвърдили коректността на тези тестове. Разбирайте, че ви съветваме да пускате и тях преди да изпратите решението си. Ако някой се дъни, значи сте объркали нещо :)

    Също така, ако сте задали въпрос, получили сте отговор от ваш колега и публикацията му е в жълто, считайте това за отговор, който ние потвърждаваме.

  8. Извинявам се, че повтарям зададен въпрос по-нагоре в този форум, но не разбрах точно отговора :). Трябва ли функцията за китайския календар да работи с годините преди 1900 и ако да, това означава ли до 0 година или минаваме и в отрицателни(???) години? Ако не, оставяме ли функцията да върне None или False, или съобщение за грешка?

  9. @Янислав и @Васил , и според мен, но гърми и на още няколко места като това са поправени редове(коментарите са оригиналните проверки):

    self.assertEqual(AT.interpret_chinese_sign(1893), 'sheep')  # snake
    self.assertEqual(AT.interpret_chinese_sign(1723), 'rooster')  # rabbit
    self.assertEqual(AT.interpret_chinese_sign(123), 'ox')  # pig
    

  10. Ще си позволя най-нагло да поправя Кирил. Годините по-малки от нула са напълно валидни. Spoiler: „най-разумния“ подход за решение така или иначе не се нуждае от допълнителна работа, за да се справя с отрицателни години.

  11. @Милка , поправих правописната грешка , благодаря много !! Колкото до забележката за китайските знаци .. искаш да кажеш , че сега си ги написала правилно и си оставила в коментар грешните така ли? Ако е така някой да потвърди , че е права ,защото аз не съм много много убеден..

  12. Ех, човек да не се опита да им улесни живота, малко :D

    @Янислав, виждам, че си поправил грешката в тестовете си.

    Моля те, замени import AstronomicalTask as AT с import solution и използвай solution, вместо AT, тъй като такъв модул очакваме от нашите тестове и нека не се налага колегите ти да преименуват файла си или да редактират тестовете ти :)

  13. За първата задача, последните 2 теста така ли трябва да бъдат: - aquarius - January 21 – February 19 - pisces - February 19 – March 20

    aquarius завършва на 19 февруари, а pisces започва също на 19 февруари ?

    п.с. Сега видях, че е споменато в по-горен коментар, приемам границите както е в него.

  14. Като съвет: ще е хубаво в условието на задачата да има поне един пример за всяка от исканите функции. Така няма да е нужно да пускам тестовете, за да разбера дали сте имали предвид месец, започвайки броенето от 0 или 1. Дали датите, които сте дали са включително или изключвайки тази дата и т.н подобни неща. Като цяло "разумни интервали" също не носи особено много информация за възможните стойности на даден параметър и за това се породиха и много въпроси в тази тема.

    Keep up the good work otherwise :)

  15. Относно тестовете на @Минх: Искат да асъртнат, че рак-а е на 21-и юни (21.6), НО тази статия: http://en.wikipedia.org/wiki/Zodiac#Table_of_dates и целият ми живот(аз съм близнаци) казват, че близнаците са до 21.6 ВКЛЮЧИТЕЛНО. Какво правим? Да променям ли датите в решението си или да считаме тестовете за невалидни?

Трябва да сте влезли в системата, за да може да отговаряте на теми.