1. Python / Говнокод #18718

    −11

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    def number_to_text(number):
        """this function convert numbers to text for numbers 0 <= X < 1000 """
        if number <= 0:
            return ""
        elif number <= 9:
            return FIRST_TEN[number-1]
        elif number<=19:
            return SECOND_TEN[number-10]
        elif number<=99:
            return OTHER_TENS[number/10-2]
        elif number >= 100:
            return HUNDRED
        else:
            return ""
    def checkio(number):
        result = ""
        order = 10 ** (len(str(number))-1)
        if number < 20:   # it's if not good idea. but....
            result = number_to_text(number)
            return result
        # loop below expand number to list of tuple: (digit, order)
        number_list = []    
        while number / order != 0:
            number_list.append(((int(number/order)),(int(order)))) 
            number -= (number / int(order)) * order
            order = order /10.0
        result_list = []
        # and now start algorithmic nightmare. Its must be rewrite!!!
        for item in number_list:
            if item[1] >= 100:
                hundred = [number_to_text(num) for num in item]
                result_list += hundred    
            elif item[1] == 10:
                if item[0] <> 1 :
                    result_list += [number_to_text(item[0]*item[1])]
                else:
                    next_item = number_list[(len(number_list))-number_list.index(item)]
                    next_item = (next_item[0]+10, next_item[1])
                    number_list[(len(number_list))-number_list.index(item)] = next_item
                    
            else:
                result_list += [number_to_text(item[0])]
                
        result_list = [x for x in result_list if x != '']        
        result =  " ".join(result_list)   
        return result

    Ну и мое кракозябро решение (надо цифру в строку)

    def checkio(number):
    num1, num2, num3 = map(lambda x: int(x), '0' * (3 - len(str(number))) + str(number))
    res = ('%s %s %s' % (FIRST_TEN[num1] + HUNDRED if FIRST_TEN[num1] else '',
    SECOND_TEN[num3] if num2 == 1 else OTHER_TENS[num2],
    FIRST_TEN[num3] if num2 != 1 else '')).replace(' ', ' ').strip()
    return res

    Запостил: kyzi007, 13 Сентября 2015

    Комментарии (35) RSS

    • > # it's if not good idea. but....

      што
      Ответить
    • даже если бояться того, что они в алфавите идут не по порядку и не играть в байтопрятки, то что, сложно сделать мапу на десять цифр и плясать от взятия остатка от деления на десятку?
      Ответить
    • Лаба?
      Ответить
      • checkio
        Ответить
        • Чтоэта? И почему не устраивает, блжад, str?
          Ответить
          • https://www.checkio.org/
            Ответить
            • Блин, проебал бебекоды.
              Ответить
            • >Чтоэта? И почему не устраивает, блжад, str?
              Ответить
              • Зайди и глянь, чтоэта.
                str тут не поможет.
                Ответить
                • Там региться надо. Какое задание?
                  Ответить
                  • https://i.imgur.com/H6ZYbF0.png
                    Ответить
                    • Бьем на цифры и берем из дикта, отдельный случай для первых двух разрядов от 10 до 19

                      Оффтоп: нахуй это вообще проходить? Это задачки для тех, кто еще не осилил ни 1 языка программирования и не умеет составлять алгоритмы даже в текстовом виде.
                      Ответить
                      • Код не мой.

                        Так это и есть задачки самого начального уровня, дальше там интереснее идут.
                        Ответить
                        • Задачки на знание чего? Что эти задачки развивают?
                          Ответить
                          • Зарегайся и посмотри, там их дохуя.
                            Ответить
                            • Влом. Хочется знать для чего я это буду делать.

                              Там еще и рега не работает.
                              Ответить
    • Жалко там цифры до тысячи идут, было бы до миллиона веселее решения нашлись бы.
      Ответить
    • item[0] <> 1

      штоа? я теперь не питон, я теперь бэйсик нах#%?
      Ответить
      • А Питон как бы и относится к этой категории языков. Он какбы самый близкий родственник Бейсику, так что ничего неожиданого.
        Ответить
      • Из тройки <> удалили. И почему васик, а не пасцаль?
        Ответить
        • Потому что напитон точку с запятой из паскаля не завезли, пидар.
          Ответить
          • Завезли, пидар, иди напитон!
            Ответить
            • Спешите видеть! Даже 3_14dar шлёт себя напитон.
              Ответить
              • В говнокоде пристроился, гнида
                Всех поливает говном
                Вскрикнет один - пидар!
                Миллионы - иди напитон!
                Ответить
                • Исусика в гоатсе сегодня целовал? Купи иконку с гоатсе исусика и целуй его, сука!
                  Ответить
                  • 3_14dar, иди напитон, сука!
                    Ответить
                  • Иисус любит тебя, а ты к нему так. Ай-ай-ай
                    Ответить
                    • Если ему гоатсе вылижешь - он тебя больше будет любить. Иди на гоатсе, пидар!
                      Ответить
              • > себя
                Найс самообман.
                Ответить
    • Оффтоп
      https://www.python.org/dev/peps/pep-0484/

      Пистон превращается... превращается пистон...
      Ответить
      • > It should also be emphasized that Python will remain a dynamically typed language, and the authors have no desire to ever make type hints mandatory, even by convention.
        в эрланг с его бестолковыми -spec'ами
        Ответить
      • >Created: 29-Sep-2014
        slowpoke.jpg
        На уровне языка оно вообще ни на что влиять не будет
        Ответить
      • я бы сказал "в говно", но он уже там.
        Ответить
      • Зато не ЭКМАскрипт!!!
        Ответить

    Добавить комментарий