- 1
- 2
- 3
- 4
- 5
try:
os.mkdir(conf_path)
except WindowsError,e:
if "[Error 183]" not in str(e):
QMessageBox.critical(self, "Logon error","Я блять настоящий индус!")
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−178
try:
os.mkdir(conf_path)
except WindowsError,e:
if "[Error 183]" not in str(e):
QMessageBox.critical(self, "Logon error","Я блять настоящий индус!")
−165
def getrows(c):
return \
sum( # суммируем по категориям
map(
lambda category:
sum( # суммируем по itemid
map(
lambda itemidset:
sum( # суммируем по itemstring
map(
lambda itemstring:
map(
lambda info:
transaction(category, itemstring, info),
itemidset[itemstring].values()
),
itemidset.keys()
),
[]),
c[category].values()
),
[]
),
("completedAuctions", "failedAuctions", "completedBidsBuyouts")
),
[]
)
Залез в свой старый скрипт, генерирующий отчеты, думал кое-что подправить...
Увидел одну из функций (эту) и решил лучше забить тут что-то править хД
Причины такого ужаса - наверно отсутствие явной типизации в питоне и средств рефакторинга (rename variable, extract method, ...) в "IDE"
−83
class ClassifierChoiceForm(forms.ModelChoiceField):
def __init__(self, dict, empty_label=u"---------", cache_choices=False,
required=True, widget=forms.Select, label=None, initial=None, help_text=None, to_field_name=None, with_classes=False):
try:
...
# до хуя всего
...
except Exception, e:
super(forms.ModelChoiceField, self).__init__()
прелесть
−100
s = 'blablabla'
if s[:7] <> 'http://':
s = 'http://%s' % s
−181
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 проекте
−94
# -*- 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 способа).
Везде сплошной говнокод. Как ПРАВИЛЬНО найти самый часто встречающийся элемент в массиве?
Наверное, можно ещё отсортировать массив и пробежать по нему храня текущий элемент и количество и обновляя соответствующие переменные?
−79
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() выравнивает длины списков, дополняя короткий нулями с начала).
И никогда не пишите таких матерных однострочников !
−305
if random.randint(1, 9999) is 42:
−83
#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, ());
Скрипт МТС'ного инета
−171
sys.path = ['/home/username/webapps/django', '/home/username/webapps/django/lib/python2.5'] + sys.path
индусы в моих джангах. pascal style