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

    −100

    1. 1
    2. 2
    3. 3
    s = 'blablabla'
    if s[:7] <> 'http://':
       s = 'http://%s' % s

    blednolicui, 26 Октября 2010

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

    −181

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def get_children(self, **kwargs):
        q = super(Classifier, self).get_children()
        try:           
            for i in kwargs['related']:
                q = q.filter(classifiers = super(Classifier, self).get_by(i, key='translit'))
        except:
            pass
        return q

    такое в django проекте

    t0ster, 12 Октября 2010

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

    −94

    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
    # -*- coding: utf-8 -*-
    
    # На входе: не пустой b-массив
    # На выходе: словарь из 1-ого элемента {самый часто встречающийся элемент:количество}
    
    # 1. Сначала составляем словарь, потом ищем максимум и возвращаем
    def Freq1(b):
      assert len(b) > 0
      d = {}
      for x in b: # Пробегаем в цикле исходный массив
        d[x] = d[x] + 1 if d.has_key(x) else 1 # Если ключ уже есть, прибавляем 1, если нет, записываем 1
      v = max(d, key=d.get) # v ключ из словаря соответствующий максимальному значению
      return {v:d[v]} # Возвращаем ответ
    
    # 2. Ищем максимум прямо при составлении словаря
    def Freq2(b):
      d = {}
      m, i = 0, 0 # Максимальная частота и индекс в словаре
      for x in b: # Пробегаем в цикле исходный массив
        d[x] = d[x] + 1 if d.has_key(x) else 1 # Если ключ уже есть, прибавляем 1, если нет, записываем 1
        if d[x] > m:
          m, i = d[x], x # Запоминаем максимум и его индекс
      return {i:m}
    
    # 3. Без использования словаря (сложность квадратичная - "тупой метод")
    def Freq3(b):
      m, i = 0, 0 # Максимальная частота и соответствующее ему значение
      for x in b:
        c = b.count(x) # Сколько раз встречается x в массиве b?
        if c > m:
          m, i = c, x
      return {i:m}
    
    # Проверка (примитивный unit-тест)
    def Check(inData, expected):
      assert Freq1(inData) == expected
      assert Freq2(inData) == expected
      assert Freq3(inData) == expected
    
    Check(["banana", "banana", "apple", "banana", "banana", "apple", "onion"], {'banana': 4})
    Check([2, 3, 9, 3, 6, 6], {3: 2})
    Check([True, True, True, False, False, True], {True: 4})

    Самый часто встречающийся элемент в массиве (3 способа).
    Везде сплошной говнокод. Как ПРАВИЛЬНО найти самый часто встречающийся элемент в массиве?
    Наверное, можно ещё отсортировать массив и пробежать по нему храня текущий элемент и количество и обновляя соответствующие переменные?

    denis, 09 Октября 2010

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

    −79

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    def coord_to_name(zoom,x,y,type):
    	hex_x = list(hex(x)[2:])
    	hex_y = list(hex(y)[2:])
    	(hex_x, hex_y) = align_lists(hex_x,hex_y)
    	xy_pairs = zip(hex_x,hex_y)
    	xy_pairs_glued = [''.join(p) for p in xy_pairs]
    	path_xy = os.path.join(*xy_pairs_glued)
    	#print hex_x,hex_y,xy_pairs,xy_pairs_glued,path_xy
    	path = os.path.join(str(zoom),path_xy) + str(type)
    	return path
    	
    	#return reduce(os.path.join,[str(zoom)]+map(''.join,zip(list(hex(x)[2:]),list(hex(y)[2:]))))+str(type)

    Из моей программы, просмотрщик кэшей мобильных Яндекс-карт.

    Говно закомментировано в назидание будущим археологам, в нём баг, попробуйте найти. (Подсказака - функция align_lists() выравнивает длины списков, дополняя короткий нулями с начала).
    И никогда не пишите таких матерных однострочников !

    cryptomancer, 20 Сентября 2010

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

    −305

    1. 1
    if random.randint(1, 9999) is 42:

    Ockonal, 11 Сентября 2010

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

    −83

    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
    #Access Point: MTS Internet GPRS
    import gprsd
     #импортируем класс GPRS-демона
    import socket
    import thread
    import math
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    gs = gprsd.getConn()
     #сокет с телефоном
    ga = gprsd.getConnAddr()
     #конечный адрес
    s.connect(ga);
    def thread_1():
      global gs, s;
      while 1:
        for i in range(0, 10005000):tmp=math.sin(math.acos(random.randint(-100500, 100500)));
     #выполняем сложное и неоправданное арифметическое дейстивие 100500 раз в цикле
        tmp = s.recv(8);
        gs.send(tmp);
        if tmp<8:
          break;
    def thread_2():
      global gs, s;
      while 1:
        for i in range(0, 10005000):tmp=math.sin(math.acos(random.randint(-100500, 100500)));
     #выполняем сложное и неоправданное арифметическое дейстивие 100500 раз в цикле
        tmp = gs.recv(8);
        s.send(tmp);
        if tmp<8:
          break;
    
    thread.start_new_thread(thread_1, ());
    thread.start_new_thread(thread_2, ());

    Скрипт МТС'ного инета

    startapp, 09 Сентября 2010

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

    −171

    1. 1
    sys.path = ['/home/username/webapps/django', '/home/username/webapps/django/lib/python2.5'] + sys.path

    индусы в моих джангах. pascal style

    awsum, 07 Сентября 2010

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

    −101

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #TROLOLO GENERATOR!
    def trololo(x):
        print 'tro'+('lo'*x)
        
    trololo(100)

    Если нужно потроллить!

    boltayka, 27 Августа 2010

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

    −80

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    class SimpleStruct:
        def __init__(self, arg1, arg2):
            self.arg1 = arg1
            self.arg2 = arg2
    # Далее класс в переменную или в массив:
    a = []
    a.apppend(SimpleStruct("dd", "er"))
    b = SimpleStruct("DFGH", "dj")
    # И тест:
    print a[0].arg1, a[0].arg2, b.arg1, b.arg2
    #dd er DFGH dj

    Однажды одному чудаку понадобилась структура в питоне и он намутил это.
    Хотя если бы он хоть немного подумал о том, что такое класс, писать ему бы ваще нихрена не пришлось!

    hromjo, 22 Августа 2010

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

    −168

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if request.user.is_superuser:
            content["stuff"] = stuff_list
            content["content_stuff"] = content_stuff_list
            content["domain_url"] = settings.DOMAIN_URL or "http://boo.com"
            if request.user.is_superuser:
                content["active_hotels"] = Hotel.objects.filter(is_active=True)

    долго понимал, так и не понял

    iscarface, 11 Августа 2010

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