- 1
- 2
- 3
- 4
- 5
- 6
m = 1
for i in range(100):
for j in range(100):
for k in range(100):
m *= i*j*k
#Почему m = 0?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−85
m = 1
for i in range(100):
for j in range(100):
for k in range(100):
m *= i*j*k
#Почему m = 0?
Ещё один перл автора 7568 и 7545
−88
#-----------view:
def catalog(request):
subcatalog_list = SubCatalog.objects.all().order_by('index')
objects_list = Object.objects.all().order_by('subcatalog')
t = loader.get_template('catalog.html')
c = RequestContext(request, {
'subcatalog_list': subcatalog_list,
'objects_list': objects_list,
})
return HttpResponse(t.render(c))
#-----------template:
{% if subcatalog_list %}
{% for subcatalog in subcatalog_list %}
<div class="section_name clear">{{ subcatalog.name }}</div>
<div class="clear"></div>
{% if objects_list %}
{% for obj in objects_list %}
{% if obj.subcatalog.id == subcatalog.id %}
<div class="section">
<a class="clear" href="{{ obj.link }}/">{{ obj.name }}</a>
{% if obj.description %}
<div class="description">{{ obj.description|safe }}</div>
{% endif %}
{% if forloop.counter0|divisibleby:3 %}
{% endif %}
{% endif %}
{% endfor %}
{% else %}
<h2>No objects available.</h2>
{% endif %}
{% endfor %}
{% else %}
<h1>No subcatalogs available.</h1>
{% endif %}
#-------И еще печенька напоследок:
<a onclick="window.location = '/create/' + {{ subcatalog.id }} + '/'"></a>
Django
дико, дико.
−97
i = 0
t = 12
r = 0
g = 0
while r!=1:
i = i + 1
if t%i==0:
g = g + 1
if i==5000:
print t, ' - ',g
i, g = 0, 0
t = t + 1
if t==203:
r = 1
Нахождение дилителей.
Вот так-вот, человек видимо на любит юзать цикл for=)
−86
#Ханойские башни, для ручного решения.
start = [3,2,1]
a, b, c = [s for s in start], [], []
def printTower( n ):
s = ''
if n.lower() == 'a':
s = a
elif n.lower() == 'b':
s = b
elif n.lower() == 'c':
s = c
else:
raise
print(n.upper()+':',s)
def printTowers():
printTower('a')
printTower('b')
printTower('c')
def getLast( n ):
if n.lower() == 'a':
return 1000 if len(a)==0 else a[-1]
elif n.lower() == 'b':
return 1000 if len(b)==0 else b[-1]
elif n.lower() == 'c':
return 1000 if len(c)==0 else c[-1]
else:
raise
def getTower( n ):
if n.lower() == 'a':
return a
elif n.lower() == 'b':
return b
elif n.lower() == 'c':
return c
else:
raise
def moveTower():
fromP = input('С какой башни двигать?').lower()
toP = input('На какую башню двигать?').lower()
lastF = getLast(fromP)
lastT = getLast(toP)
if lastT>lastF:
getTower(toP).append(getTower(fromP).pop())
else:
raise
printTowers()
printTowers()
while b!=start:
moveTower()
Принял слабого снотворного и сел читать Корнилова (Программирование шахмат и других логических игр) (думал быстро усну, книга очень скучная).
Когда пришёл в себя увидел на экране ЭТО.
P.S. Оно работает.
−85
(1 if not i%2 else 2)
−92
def clean_node(node, debug=False):
"""
Этот пример скопипащен из книги
"Как не должен выглядеть код"
"""
if node['sub']:
sub = []
num = 1
for item in node['sub']:
i = clean_node(item, debug)
if i:
sub.append(i)
num += i['num']
node['sub'] = sub
node['num'] = num
else:
node['num'] = 1
if node['deleted']:
if node['sub']:
return node
else:
return node
return None
Мне достался в наследство большой проект, в котором порой встречается вот такое. Единственное, что радует это подобные комментарии )
−88
exec "a" * 300000000 + " = 'FUCKING_LONG_VARIABLE'" # Создание переменной с длиннннным именем
exec "print " + ("a" * 300000000) # Выведет 'FUCKING_LONG_VARIABLE'
Это был эксперимент (не повторять дома!). Хотелось узнать количество значащих символов в имени переменной, оказалось что все:).
Первая строка кода ужирает около 270 МБ памяти.
−83
def get(a='',x=-1):
b,c,d,e,f=a.split('\n'),[],[],0,0
for i in range(len(b)):
if i==0: c+=[i]; e+=len(b[i])+1; f+=len(b[i]); d+=[f]
elif i==len(b)-1: f+=len(b[i]); d+=[f]; c+=[e]
else: f+=len(b[i])+1; c+=[e]; d+=[f]; e+=len(b[i])+1
for i in range(len(c)):
if range(c[i], d[i]+1).count(x): return i
Это код чувака, который хочет получить индекс строки по индексу символа.
>>> get('a\nb', 0) # 0 - позиция символа "а"
0
>>> get('a\nb', 1) # 1 - позиция символа "\n"
0
>>> get('a\nb', 2) # 2 - позиция символа "b" (уже вторая строка)
1
Простой эквивалент кода:
GetNewlineCount = lambda s, p: s.count('\n', 0, p)
−89
#weather.pyw
from urllib import request
from tkinter import *
import tkinter
import threading
from threading import *
import time
i = 0
active = True
def timerTick( toSleep ):
global active
while active:
refreshCall(0)
time.sleep(toSleep)
def refreshCall(event):
t = Thread(target = refresh)
t.start()
def refresh(*event):
global i
ref['text'] = str(i)
i+=1
r = request
page = str(r.urlopen('http://realmeteo.ru/moscow/1/current/').read())
temperature = page.split('</tr><tr id="num_data"><td>')[1].split(' ')[0]
pressure = page.split(' </td><td>')[1].split(' ')[0]
wind = page.split('<tr id="num_data"><td></td><td>')[1].split(' ')[0]
dest = page.split('<param name="movie" value="/.swf/wind_dir/')[1].split('.swf')[0]
destination = ''
for c in dest:
if c is dest[-1]:
destination += {'N':'Север','S':'Юг','W':'Запад','E':'Восток'}[c]
else:
destination += {'N':'Северо-','S':'Юго-','W':'Западо-','E':'Востоко-'}[c]
#print( temperature, pressure, wind, destination )
l1['text'] = 'Температура: '+temperature
l2['text'] = 'Давление : '+pressure
l3['text'] = 'Сила ветра : '+wind
l4['text'] = 'Направление: '+destination
r = request
page = str(r.urlopen('http://realmeteo.ru/moscow/1/current/').read())
temperature = page.split('</tr><tr id="num_data"><td>')[1].split(' ')[0]
pressure = page.split(' </td><td>')[1].split(' ')[0]
wind = page.split('<tr id="num_data"><td></td><td>')[1].split(' ')[0]
dest = page.split('<param name="movie" value="/.swf/wind_dir/')[1].split('.swf')[0]
destination = ''
for c in dest:
if c is dest[-1]:
destination += {'N':'Север','S':'Юг','W':'Запад','E':'Восток'}[c]
else:
destination += {'N':'Северо-','S':'Юго-','W':'Западо-','E':'Востоко-'}[c]
form = tkinter.Tk()
l1 = Label(form,text='Температура: '+temperature,justify='left'); l1.pack()
l2 = Label(form,text='Давление : '+pressure,justify='left'); l2.pack()
l3 = Label(form,text='Сила ветра : '+wind,justify='left'); l3.pack()
l4 = Label(form,text='Направление: '+destination,justify='left'); l4.pack()
ref = Button(form, text = 'Обновить'); ref.pack()
ref.bind('<Button-1>',refreshCall)
timerThread = Thread(target = timerTick, args=(5,))
timerThread.start()
form.mainloop()
active = False
Угадайте, с какого языка пересел автор. (не пэхапэ)
−99
# разбираюсь с питоном, может растолкуете почему так
>>> z = [lambda: i for i in [1,2,3]]
# почему вот такой результат?
>>> z[0](), z[1](), z[2]()
(3, 3, 3)
# каждый элемент списка - отдельная функция
>>> z[0] == z[1], z[0] is z[1]
(False, False)
# вот таким образом выходит правильно.
>>> z = [lambda: 1, lambda: 2, lambda:3]
>>> z[0](), z[1](), z[2]()
(1, 2, 3)
Автор - я. Меня действительно интересует, почему так происходит.