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

    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
    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
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    def msgsend(userid, message, chatid, photoID=None, audioID=None, forwardID=None):
        try:
            atest = result2[7]["from"]
            try:
                if photoID != None:
                    message = message + "\n\n" + customMsg
                    readyphotoID = "photo" + str(ownerID) + "_" + str(photoID)
                    print(readyphotoID)
                    if forwardID == None:
                        vkapi.messages.setActivity(chat_id = chat_id, type="typing"); time.sleep(2)
                        vkapi.messages.send(chat_id = chat_id, message = message, attachment=readyphotoID)
                    else:
                        vkapi.messages.setActivity(chat_id = chat_id, type="typing"); time.sleep(2)
                        vkapi.messages.send(chat_id = chat_id, message = message, attachment=readyphotoID, forward_messages=forwardID)
    
                elif audioID != None:
                    message = message + customMsg
                    vkapi.messages.setActivity(chat_id = chat_id, type="typing"); time.sleep(2)
                    vkapi.messages.send(chat_id = chat_id, message = message, attachment=audioID)
                else:
                    if message != "":
                        message = message + "\n\n" + customMsg
                        #message = message + "\n\n" + customMsg + str(attempt_id)
                        if forwardID == None:
                            vkapi.messages.setActivity(chat_id = chat_id, type="typing"); time.sleep(2)
                            vkapi.messages.send(chat_id = chat_id, message = message)
                        else:
                            vkapi.messages.setActivity(chat_id = chat_id, type="typing"); time.sleep(2)
                            vkapi.messages.send(chat_id = chat_id, message = message, forward_messages=forwardID)
            except vk.api.VkAPIMethodError as vkerror:
                if str(vkerror).find("14. Captcha") == 0:
                    print("[ERROR] Captcha needed! Cooling down...")
                    time.sleep(5)
                    pass
        except KeyError:
            try:            
                if photoID != None:
                    message = message + "\n\n" + customMsg
                    readyphotoID = "photo" + str(ownerID) + "_" + str(photoID)
                    vkapi.messages.setActivity(uid = userid, type="typing")
                    time.sleep(2)
                    vkapi.messages.send(message = message, user_id = userid, attachment=readyphotoID)
                elif audioID != None:
                    message = message + customMsg
                    vkapi.messages.setActivity(uid = userid, type="typing")
                    time.sleep(2)
                    vkapi.messages.send(message = message, user_id = userid, attachment=audioID)
                else:
                    if message != "":
                        message = message + "\n\n" + customMsg
                        #message = message + "\n\n" + customMsg + str(attempt_id)
                        if forwardID == None:
                            vkapi.messages.setActivity(uid = userid, type="typing")
                            time.sleep(2)
                            vkapi.messages.send(user_id = userid, message = message)
                        else:
                            vkapi.messages.setActivity(uid = userid, type="typing")
                            time.sleep(2)
                            vkapi.messages.send(user_id = userid, message = message, forward_messages=forwardID)
            except Exception:
                pass

    Ветвления проверяют все возможные комбинации входных параметров

    c684637, 19 Апреля 2016

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

    +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
    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
    #!/usr/bin/env python
    
    from sys import argv
    from pymongo import MongoClient
    
    conn = MongoClient('127.0.0.1', 27017)
    base = conn.xmldata
    
    try:
        from lxml import etree
    except ImportError:
        import xml.etree.ElementTree as etree
    
    def parse_xml(filename):
        tree  = etree.parse(filename)
        root  = tree.getroot()
        cntr  = root.getchildren()
    
        for country in cntr:
            data_struct = {}
            data_struct['name'] = country.attrib['name']
            for key in ['rank', 'year', 'gdppc']:
                value = country.find(key).text
                data_struct[key] = value
    
            neighbors = []
            for row in country.iter('neighbor'):
                neighbor = {}
                neighbor['name']      = row.attrib['name']
                neighbor['direction'] = row.attrib['direction']
                neighbors.append(neighbor)
    
            data_struct['neighbors'] = neighbors
    
            insert_data("country", data_struct)
    
    def insert_data(collection, data_struct):
        coll = base[collection]
        try:
            coll.insert_one(data_struct)
        except Exception as e:
            raise
    
    filename = argv[1]
    parse_xml(filename)

    Python учЮ... говно?

    rds, 19 Апреля 2016

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

    +3

    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
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    def making_field(size):
    	field = []
    	for i in range(size):
    		field.append([0] * size)
    	return field
    size = 1001
    quad = making_field(size)
    
    def print_quad(quad):
    	for i in range(0,len(quad)):
    		print '\n'
    		for y in range(0,len(quad[i])):
    			c = str(quad[i][y])
    			if len(c) == 1: c = '00' + c
    			elif len(c) == 2: c = '0' + c
    			print c,
    			
    def get_new_direction(direction):
    	if direction == 'right': return 'down'
    	elif direction == 'down': return 'left'
    	elif direction == 'left': return 'up'
    	elif direction == 'up': return 'right'
    
    def making_step_rules(size):
    	steps = [1]
    	for i in range(1,size*size):
    		steps.append(i)
    		steps.append(i)
    	return steps
    
    steps = making_step_rules(size)
    
    def making_step(steps):
    	steps.pop(0)
    	return steps[0]
    	
    def step_by_step(quad, y, x, direction, steps, fill):
    	if fill-1 == size*size-steps: steps -= 1
    	if direction == 'right':
    		for i in range(0,steps):
    			fill += 1
    			quad[y][x+i] = fill
    			x = x + steps - 1
    		y = y + 1
    	elif direction == 'left':
    		for i in range(0,steps):
    			fill += 1
    			quad[y][x-i] = fill
    		x = x - steps + 1
    		y = y - 1
    	elif direction == 'up':
    		for i in range(0,steps):
    			fill += 1
    			quad[y-i][x] = fill
    		y = y - steps + 1
    		x = x + 1
    	elif direction == 'down':
    		for i in range(0,steps):
    			fill += 1
    			quad[y+i][x] = fill
    		y = y + steps - 1
    		x = x - 1
    	return fill, y, x
    	
    def fill_quad(quad):
    	fill = 1
    	x, y = size/2, size/2
    	direction = 'up'
    	quad[y][x] = fill
    	x += 1
    	while fill < size*size-1:
    		step = making_step(steps)
    		direction = get_new_direction(direction)
    		fill, y, x = step_by_step(quad, y, x, direction,  step, fill)
    
    fill_quad(quad)
    
    print 'Sum :' , sum(quad[i][i]+quad[i][(len(quad)-1)-i] for i in range(0,len(quad)))-1

    Пытался изобрести велосипед по 28 задачке Euler
    https://projecteuler.net/problem=28

    hootie, 14 Апреля 2016

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

    +3

    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
    NATAL_KEYBOARD = (('1234567890-=',
                       'йцукенгшщзхъ',
                       'фывапролджэээ',
                       'ячсмитьбю.ьб'),
                      ('1234567890-=',
                       'qwertyuiop[]',
                       'asdfghjkl;\'\\',
                       'zxcvbnm,.///'))
    
    def natal_typo(char):
        if not char.isalnum():
            return char
     
        char_lower = char.lower()
        for keyboard in range(len(NATAL_KEYBOARD)):
            for row in range(len(NATAL_KEYBOARD[keyboard])):
                if char_lower in NATAL_KEYBOARD[keyboard][row]:
                    col = NATAL_KEYBOARD[keyboard][row].index(char_lower)
                    if random_bool(0.7):
                        col_new = bounds(0, len(NATAL_KEYBOARD[keyboard][row]) - 1,
                                         col + random.choice([-1, 1]))
                        row_new = row
                    else:
                        col_new = col
                        row_new = bounds(0, len(NATAL_KEYBOARD[keyboard]) - 1,
                                         row + random.choice([-1, 1]))
                    if char.isupper():
                        return NATAL_KEYBOARD[keyboard][row_new][col_new].upper()
                    else:
                        return NATAL_KEYBOARD[keyboard][row_new][col_new]
        return char

    Натализационный ворецианизатор 0.2. Подробности на говнофоруме/viewtopic.php?pid=2372.

    gost, 09 Апреля 2016

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

    +2

    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 vorec_char(char):
        for i in range(len(vorec_keyboard)):
            if char in vorec_keyboard[i]:
                idx = vorec_keyboard[i].index(char)
                if idx > 0:
                    if idx < len(vorec_keyboard[i]) - 1:
                        if random_bool(0.5):
                            idx -= 1
                        else:
                            idx += 1
                    else:
                        idx -= 1
                else:
                    idx += 1
                    
                y = i
                if y > 0:
                    if y < len(vorec_keyboard) - 1:
                        if random_bool(0.5):
                            y -= 1
                        else:
                            y += 1
                    else:
                        y -= 1
                else:
                    y += 1
                return vorec_keyboard[y][idx]
        return char

    Ворецианизатор текстов: жалкая попытка подражания стилю Мастера Вореций.
    Скачать бесплатно без смс тут http://pastebin.com/EWFTxyC4. По исходнику тоже прошёлся ворецианизатором, да.

    python[4] (мфа:; в ра4пространено русском языке название питбн[5]) — высокоуровневый прог1аммирования назначения2ориентированн4й общего язык на повышение производительностр разработчик и читаемн5ти ядра минималистичен. кода. синтаксис python то в времы же стандартная библио1ек3 большой вкллчает 5ескол0ко объём полезных18ункций.

    python поддерживает 1арадигм программирования чиыле том в структ4р1ое, объектно-бриентированное, чу7кциональное, императи0ное основные и архитектур6ые аспектно-ориенти0оваоное. ч4рты — динамическа памятью,6п9лная управление типизация, обработки автоматическо3 интроспекция исключений, механи9м вычислений поддержка многопоточных удобные и высокоуровневые в данных. код стьуктуры python организовываетс в функции и классы которые объединят2ся в модулр могут (они в очередь объединены свол в быть могут являетыя реализуцией python интерпретатор паке4ы).

    эталон15й поддерживающий cpython используемых больш4оство он п7атфогм[6]. активно распространяетс под счободной лицензией software python позво7яющей license foundation иыпол0зовать его 2 любых приложениях без ограничений включая проприета2ные[7]. есть реализации (с возможностью для jvm msil компиляции) интерпр4таторов (6 возможнн3тью llvm других
    66129т0 21227390 664133 9687736 3858726080 т8237900378 100562 25077

    и предла2а0т pypy компиляции), проект реализацию 25мом python python за2раты измен0ная что6уменьшаео н на я6ык2 и экспериментов0над пос6ановку возможностями.

    gost, 07 Апреля 2016

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

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if not self.squad:
    			magus = Magus(0, 0)
    			ranger = Ranger(12, 18)
    			knight = Knight(32, 11)
    			sage = Sage(21, 26)
    			self.squad = [magus, ranger, knight, sage]
    AttributeError: 'GameWindow' object has no attribute 'squad'
    ...
        if self.selection.actions < self.active_skill.actions:
    AttributeError: 'WardSigil' object has no attribute 'actions'
    ...

    Посоны, суть такова. На один буржуйский конкурс пришла игра, а я в жюри. Игра вроде бы классная (новый xcom+ascii графон+инквизиция), но есть проблема - автор почему-то считает что питон должен на несуществующие поля возвращать nil\false\0, а у меня python 2.7 просто падает с приведенной ошибкой. Ну а питон 3 ругается на print, т.е. игра явно на питоне 2.х.
    В общем может есть какая-нибудь опция, старая версия питона которая так себя вела или какой-нибудь хак, чтоб заставить питон вести себя как у автора? Иначе придется 1 балл ставить, автор на связь не выходит а игр еще сотни.
    Да, он еще написал что тестировал только на MacOS - там какая версия по дефолту стоит?

    kipar, 20 Марта 2016

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

    +8

    1. 1
    length = (length, 200)[length>200]

    Хакатон хакатоном, а так делать всё же не стоит....
    https://habrahabr.ru/post/278995/

    Vindicar, 17 Марта 2016

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

    +7

    1. 1
    2. 2
    damage, self.magic_shield_hp = sorted([0, magic_shield_hp - damage])
    damage = -damage

    Интуитивно понятный способ реализовать урон, пробивающий защиту.

    Soul_re@ver, 15 Марта 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    price = 32.3
    product = input("Введите количевство продуктов\n")
    print(product * 32.3)
    input("")

    Меня вырвало смотря на мой же код.

    govnococo1, 14 Марта 2016

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

    −2

    1. 1
    https://pony7.fr/ctf:public:32c3:cryptmsg

    Исполнение кода в pycrypto - почти дефолтовой криптобиблиотеке питона. Патченой версии нет, т.к. pycrypto заброшен. Охуенно, че.

    3_14dar, 14 Марта 2016

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