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

    0

    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
    def check(s, n):
        for left_open in range(0, len(s)):
            for right_close in range(left_open + 1, len(s)):
                for left_middle in range(left_open + 1, right_close):
                    for right_middle in range(left_middle + 1, right_close):                    
                        s1 = s[:left_open]
                        s2 = s[left_open:left_middle]
                        s3 = s[left_middle:right_middle]
                        s4 = s[right_middle:right_close]
                        s5 = s[right_close:]
                        exp1 = s1+'('+s2+'('+s3+')'+s4+')'+s5
                        exp2 = s1+'('+s2+')'+s3+'('+s4+')'+s5
                        try:
                            res = eval(exp1)                        
                            if res == n:
                                yield exp1
                        except:
                            continue
                        try:
                            res = eval(exp2)
                            if res == n:
                                yield exp2
                        except:
                            continue
    
    s = '1 + 2 * 3 + 4 * 5 + 6 * 7 + 8 * 9 + 10 * 11 + 12 * 13 + 14 + 15'
    for exp in check(s, 850):
        print(exp)

    Мой скрипт для решения задачи с javarush (расставить скобки в выражении, чтобы значение было равно 850). Такой же страшный, как и его вывод.

    bagor, 04 Января 2017

    Комментарии (11)
  2. Python / Говнокод #21870

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    if condition1:
        pass
    else:
        pass

    Нашел, разбирая старые git-репо
    Года 4 прошло, но до сих пор стыдно

    hooth, 20 Декабря 2016

    Комментарии (2)
  3. Python / Говнокод #21798

    +1

    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
    class ScanFiles:
        DIRECTORY_SEPARATOR = '/'
    
        def __init__(self, rootDir, searchPattern, filesExtension = None):
            self.rootCatalogPath = rootDir # Absolute path to directory to parse
            self.filesExtension = filesExtension # Specified files(if typed)
            self.pattern = searchPattern # Key word's regex pattern
    
        def scan(self, path = '', absPath = ''):
            if (not os.path.exists(self.rootCatalogPath)):
                raise Exception("Directory is not exists.")
    
            if (not absPath):
                absolutePath = self.rootCatalogPath + self.DIRECTORY_SEPARATOR + path
            else:
                absolutePath = absPath + path + self.DIRECTORY_SEPARATOR
            for item in os.listdir(absolutePath):
                if (os.path.isdir(absolutePath + item)):
                    # recursive call
                    self.scan(item, absolutePath)
                elif (os.path.isfile(absolutePath + item)):
                    if (self.filesExtension):
                        if (not re.search('\.%s$' % (self.filesExtension), item)):
                            return 0;
                    self.__parse_file(absolutePath + item)
    
        def __parse_file(self, pathToFile):
            f = open(pathToFile)
            if (re.search(self.pattern, f.read(), re.IGNORECASE)):
                print pathToFile;
            return 1;

    Человек осуществляет поиск подстроки в файлах указанной директории :D

    ayylmao, 07 Декабря 2016

    Комментарии (79)
  4. Python / Говнокод #21776

    0

    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
    class RomeNumberConvertor(object):
        def __init__(self):
            self.discharge = ['unit', 'dozen', 'hundred', 'thousand']
            self.unit_set = ('I', 'V', 'X')
            self.dozen_set = ('X', 'L', 'C')
            self.hundred_set = ('C', 'D', 'M')
            self.thousand_set = ('M')
            
        def _discharge2rome(self, discharge, value):
            pattern = {'1': '{0}', '2': '{0}{0}', '3': '{0}{0}{0}',
                            '4': '{0}{1}', '5': '{1}', '6': '{1}{0}',
                            '7': '{1}{0}{0}', '8': '{1}{0}{0}{0}', '9': '{0}{2}'}
            return pattern[value].format(*getattr(self, '%s_set' % discharge))
            
        def lat2rome(self, num):
            rome_digit = ''
            for i, k in enumerate(reversed(str(num))):
                if k == '0': continue
                rome_digit = '%s%s' % (self._discharge2rome(self.discharge[i], k), rome_digit) 
            return rome_digit

    Вот так человек решил преобразовывать в римские цифры :D

    mbrutus, 04 Декабря 2016

    Комментарии (18)
  5. Python / Говнокод #21728

    −1

    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
    conn=imaplib.IMAP(...)
    
    conn.search
    
    Signature: conn.search(charset, *criteria)
    Docstring:
    Search mailbox for matching messages.
    
    (typ, [data]) = <instance>.search(charset, criterion, ...)
    
    'data' is space separated list of matching message numbers.
    File:      python27\lib\imaplib.py
    Type:      instancemethod

    То есть, возвращается список с одной строкой с числами, разделенными пробелом.
    Список! С одной строкой! Список!

    Откуда это говно взялось и когда оно было написано, блеать?

    3_14dar, 26 Ноября 2016

    Комментарии (74)
  6. Python / Говнокод #21659

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    https://habrahabr.ru/post/314062/
    
    О том, как устроено часть внутренностей языка.
    
    Страшненькая и печальная статья.

    Zuzik, 07 Ноября 2016

    Комментарии (7)
  7. Python / Говнокод #21235

    +4

    1. 1
    2. 2
    ipdb> Decimal('10000') < "1"
    True

    kosolapovdg, 22 Сентября 2016

    Комментарии (39)
  8. Python / Говнокод #21214

    +1

    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
    class Driver(DriverProto):
    
        def connect(self, **kwargs):
            try:
                # поскипано для краткости
            except:
                raise
    
        def exec(self, sql, **kwargs):
            try:
                # поскипано для краткости
            except:
                raise
    
        def fetch(self, as_dict=False):
            try:
                # поскипано для краткости
            except:
                raise
        
        # Еще двадцать восемь методов по той же схеме: try - except - raise

    Исходник самопального драйвера для БД в старом проекте заказчика.

    UncleRus, 19 Сентября 2016

    Комментарии (6)
  9. Python / Говнокод #21205

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def love():
        x = len("love")
        for i in range(19):
            x = (128 * x + 314) % 127
            yield x
    
    na = 'Fr/ku~>_d49XjL:1dHr"P\r3\x0b^N!ajrdKPpU4boG<of:iX#pvf  twvz;eiDB!z[_Mma~axx\tyr)4yF|\x0cr0_2=P:Yz *c"4_]eO6I1OieTAnBLPlksz.$NnjkcW2Ce)m{R'
    print ''.join(na[piton] for piton in love())

    FrauSchweinhund, 18 Сентября 2016

    Комментарии (14)
  10. Python / Говнокод #21200

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    import unittest
    
    class TestStringMethods(unittest.TestCase):
    
      def test_upper(self):
          self.assertEqual('foo'.upper(), 'FOO')
    
    if __name__ == '__main__':
        unittest.main()

    storvus, 17 Сентября 2016

    Комментарии (15)