- 1
for smth in filter(None, [something]): do(smth)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−94
for smth in filter(None, [something]): do(smth)
лопата
−179
a=0
b=0
c=0
d=0
...
z=0
A=0
B=0
C=0
D=0
...
Z=0
ile=int(input())
while ile>0:
pom=0
ile-=1
slowo=input()
dlugosc=len(slowo)
while dlugosc>0:
dlugosc-=1
if slowo[pom]=='a':
a=a+1;
if slowo[pom]=='b':
b=b+1
if slowo[pom]=='c':
c=c+1
if slowo[pom]=='d':
d=d+1
...
if slowo[pom]=='z':
z=z+1
if slowo[pom]=='A':
A=A+1
if slowo[pom]=='B':
B=B+1
if slowo[pom]=='C':
C=C+1
if slowo[pom]=='D':
D=D+1
...
if slowo[pom]=='Z':
Z=Z+1
pom+=1
if(a>0):
print('a', a)
if(b>0):
print('b', b)
if(c>0):
print('c', c)
if(d>0):
print('d', d)
...
if(z>0):
print('z', z)
if(A>0):
print('A', A)
if(B>0):
print('B', B)
if(C>0):
print('C', C)
if(D>0):
print('D', D)
...
if(Z>0):
print('Z', Z)
Чел походу не знает о существовании массивов и циклов.
... заменено, уж больно код длинный.
Типичный пример китайского кода.
Оригинал - http://ideone.com/kkZ51,8lrxt
З.Ы. Да, в питоне не массивы, а списки, но так понятнее
−84
a=[1,4,6,3,4,5,6,6,7,7,9,9,4,3,4,7,7,7,4,3,5,7,3,6,3,]
print a
def removeDoubles(a):
nonD=range(len(a))
for i in range(len(a)):
for j in range(i+1,len(a)):
if a[i]==a[j]:
nonD.remove(i)
break
b=[]
for i in nonD:
b.append(a[i])
return b
def removeDoubles2(a):
#b=sorted(a)
def quickSort(a):
def qSort(i,j):
global a
if j==i:
return
elif j-i==1:
if a[i]>a[j]:
c=a[j]
a[j]=a[i]
a[i]=c
return
else:
l=(j+i)/2
qSort(i,l)
qSort(l+1,j)
join(i,l,j)
return
def join(i,l,j):
global a
k=i
n=l+1
m=0
s=j
t=l
b=range(j-i+1)
while 1:
if a[k]<a[n]:
z=k
k=n
n=z
z=s
s=t
t=z
b[m]=a[n]
m+=1
n+=1
if n>s:
for g in range(t-k+1):
b[m+g]=a[k+g]
break
for g in range(j-i+1):
a[i+g]=b[g]
qSort(0,len(a)-1)
c=a
quickSort(c)
b=[]
b.append(c[0])
for i in range(1,len(c)):
if c[i]>c[i-1]:
b.append(c[i])
return b
print removeDoubles(a)
print removeDoubles2(a)
Удаление дублей из массива. Взято отсюда:
http://www.0chan.ru/c/res/181489.html
−98
# -*- coding: cp1251 -*-
beer = u"бутылок пива стоят на столе. Одна упала."
botle = 100
for i in range(1, 100):
print (botle-i), beer
print u"Нету больше пива на столе :-("
Пива не будет :-(
−180
auto = False
if self.options.has_key('auto') and self.options['auto']:
auto = True
−180
#обработка формы
if request.method == 'POST':
form = MdatForm(request.POST)
#проверка правильности заполнения полей формы
if form.is_valid():
cd = form.cleaned_data
#переменные для проверки правильности ввода данных
valid1 = cd['sername']+cd['name']+cd['ssername']
valid2 = cd['get']+cd['born']+cd['adres']
#проверка ФИО
for i in valid1:
if (re.match(u"^[A-Za-z0-9]+$", i))or(i in errorfio):
return redirect_with_message(request, 'error', 'Корректно введите ФИО', reverse(changemet))
#проверка адрес, дата роэждения, кем выдано
for i in valid2:
if (re.match(u"^[A-Za-z]+$", i))or(i in errorvmb):
return redirect_with_message(request, 'error', 'Корректно введите "Место рождения", "Адрес", "Кем выдан"', reverse(changemet))
#сохранить изменения
changemetadd(cd, request.user)
#запись действия в журнал
userlogpath(request.user, 'Осуществлено редактирование метаданных')
#вывод сообщения
return redirect_with_message(request, 'success', 'Данные были сохранены в системе регистрации изображений', reverse('home.views.index'))
#форма первичной регистрации
class PhForms(forms.Form):
email = forms.EmailField(label='Email*', error_messages={'required': 'Заполните поле'})
sername = forms.CharField(max_length=50, label='Фамилия*', error_messages={'required': 'Заполните поле'})
name = forms.CharField(max_length=50, label='Имя*', error_messages={'required': 'Заполните поле'})
ssername = forms.CharField(max_length=40, label='Отчество', required=False)
databorn = forms.DateField(label='Дата рождения:', widget=SelectDateWidget(years=range(year, year-101, -1)), required=False)#forms.DateField(label='Дата рождения:*',initial=datetime.date.today, input_formats=('%d-%m-%Y',),
#widget=SelectDateWidget(input_format='%d-%B-%Y', years=range(year, year-101, -1)))
pasportserial = forms.IntegerField(max_value=9999, label='Паспорт серия', required=False)
pasportnomer = forms.IntegerField(max_value=999999, label='Паспорт номер', required=False)
get = forms.CharField(max_length=100, label='Кем выдан*', required=False)
dataget = forms.DateField(label='Дата выдачи:', widget=SelectDateWidget(years=range(year, year-101, -1)), required=False)#forms.DateField(label='Дата выдачи*:', initial=datetime.date.today, input_formats=('%d-%m-%Y',),
#widget=SelectDateWidget(input_format='%d-%B-%Y', years=range(year, year-101, -1)))
born = forms.CharField(max_length=200, label='Место рождения*', required=False)
adres = forms.CharField(max_length=200, label='Адрес*', required=False)
#text = forms.CharField(label='Семейное положение', max_length=200)
#изображения и мииатюры
class Image(models.Model):
user = models.ForeignKey('User')
publication_date = models.DateTimeField(auto_now_add=True)
nomersertifikata = models.IntegerField()
imgname = models.CharField(max_length=200)
tip_foto = models.ForeignKey('img_subj.ImageSubjects')
public = models.BooleanField()
img = models.ImageField(upload_to=get_upload_to)
mini_img = models.ImageField(upload_to=mini_get_upload_to)
#создание миниатюры
def save(self):
THUMBNAIL_SIZE = (100, 100)
image = PIL.Image.open(self.img)
if image.mode not in ('L', 'RGB'):
image = image.convert('RGB')
image.thumbnail(THUMBNAIL_SIZE, PIL.Image.ANTIALIAS)
temp_handle = StringIO()
image.save(temp_handle, 'png')
temp_handle.seek(0)
suf = SimpleUploadedFile(os.path.split(self.img.name)[-1],
temp_handle.read(), content_type='image/png')
self.mini_img.save(suf.name+'.png', suf, save=False)
super(Image, self).save()
Вот так кодят в универах.
−176
def reverse(s, rs=''):
for i in range(1, len(s)):
rs = rs + s[len(s)-i]
return rs+s[0]
Reverse String по-питоновски с говном
−181
charref = re.compile(r'(CREATE PROCEDURE)',re.IGNORECASE)
Str=re.sub(charref,'r(CREATE PROCEDURE', Str)
PosStr=Str.find('CREATE PROCEDURE')
l=len(Str)
Proc = Str[PosStr:l]
Вечером написал, утром посмеялся)
Str=re.search(r'(?s)(CREATE PROCEDURE).+',Str)
−97
#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <sys/wait.h>
void sighndlr_1(int signo) { //obrabot4ik dlya 1go processa
printf("I'm child process #1. I've got SIGINT! :) So, I won't do anything...\n"); //prosto vyvod na ekran soobscheniya o polu4enii signala
}
void sighndlr_2(int signo) { //dlhya 2go
printf("I'm child process #2. I've got SIGINT :)\n");
}
int main(int argc, char **argv) {
pid_t pid1,pid2,pid3,pid4; //4 do4ernih processa
static struct sigaction act1,act2,act3; //3 struktury dlya 3h processov
act1.sa_handler = sighndlr_1; //ustanovka obrabot4ika dlya 1 struktory
act2.sa_handler = sighndlr_2; //dlya 2i
act3.sa_handler = SIG_IGN; //ignoriruem signal v 3 strukture
switch(pid1 = fork()) { //sozdaem 1 do4erniy process
case -1: //vihodim pri oshibke sozdaniya
printf("Error fork\n");
exit(1);
break;
case 0:
printf("Child process #1 started (pid = %d)\n", getpid()); //soobshenie ob uspeshnom sozdanii i vyvod pid
sigaction(SIGINT,&act1,NULL); //ustanovka struktury obrabot4ika dlya SIGINT
for(;;) pause(); //beskone4nyi cikl
break;
default:
switch(pid2 = fork()) { //sozdaem 2 process
case -1:
printf("Error fork\n");
exit(1);
break;
case 0:
printf("Child process #2 started (pid = %d)\n", getpid());
sigaction(SIGINT,&act2,NULL); //dlya SIGINT
sigaction(SIGQUIT,&act3,NULL); //ignorim SIGQUIT
for(;;) pause();
break;
default:
switch(pid3 = fork()) { //3 process
case -1:
printf("Error fork\n");
exit(1);
break;
case 0:
printf("Child process #3 started (pid = %d)\n", getpid());
sigaction(SIGINT,&act3,NULL); //ignorim SIGINT
for(;;) pause();
break;
default:
switch(pid4 = fork()) { //4 process
case -1:
printf("Error fork\n");
exit(1);
break;
case 0:
printf("Child process #4 started (pid = %d)\n", getpid());
setsid(); //menyaem identifikator seansa dlya processa
printf("Process #4 changed sid\n");
for(;;) pause();
break;
default:
printf("Finishing parent process... (pid = %d)\n", getpid());
exit(0); //zavershaetsya roditelsky process
break;
}
break;
}
break;
}
break;
}
}
Лаба по курсу операционных систем. Нужно было создать 4 дочерних процесса, и для каждого процесса создать свои обработчики для сигнала SIGINT или SIGQUIT. Полученный говнокод полон повторяющихся конструкций, и слишком сильно запутан операторами switch-case.
−87
index_photo = ThumbnailField(
verbose_name=_('Photo in catalog'),
upload_to='uploads/girls/index/',
size=(172, 253),
help_text=_('This photo is shown in a list of girls. Size 172x252.'))
Кажется кто-то кого-то пытается обмануть