- 1
- 2
- 3
- 4
- 5
- 6
n = 0
for i in range(n):
pass
print i
NameError: name 'i' is not defined
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−146
n = 0
for i in range(n):
pass
print i
NameError: name 'i' is not defined
−85
In [19]: 1..real
Out[19]: 1.0
Работает в 2.х и 3.х
−125
print "value: %s" % str(e)
А вдруг tuple?
−126
def price_request(self, response):
# ебануцо
t = TakeFirst()
magic_data = {'__ASYNCPOST': 'true'}
# --- забираю зашитые данные из форм
keys = [
'__BOOKMARKERbmTabs',
'__VIEWSTATE',
'__VIEWSTATEGENERATOR',
'__EVENTVALIDATION',
'HiddenField'
]
for k in keys:
val = response.xpath('//input[contains(@id, "%s")]/@value' % k).extract()
key = response.xpath('//input[contains(@id, "%s")]/@name' % k).extract()
if key:
magic_data[t(key)] = t(val) or ''
val = response.xpath('//input[contains(@value, "btnGetPrice")]/@value').extract()
key = response.xpath('//input[contains(@value, "btnGetPrice")]/@name').extract()
if key:
magic_data[t(key)] = t(val) or ''
# --- неведомая херня из js
# вызов получения цены
js = response.xpath(u'//script[contains(text(), "$(document).ready(function ()")][contains(text(), "__doPostBack")]').re(
"__doPostBack\('([^']+)','([^']*)'\)")
# [\$\w0]+btnGetPrice
magic_data['__EVENTTARGET'] = js[0]
# обычно ''
magic_data['__EVENTARGUMENT'] = js[1]
# ключ от сервера, скорее всего он связан с сессией
js = response.xpath(u'//script[contains(text(), "Sys.Application.setServerId")]').re('\("([^"]+)", "([^"]*)"\)')
super_magic_key = js[1]
# --- опять данные из формы которые туда должны при ините странице соваться
js = response.xpath(u'//script[contains(text(), "Sys.WebForms.PageRequestManager._initialize")]').re("'form1', \[([^\]]+)\]")[0]
super_magic_values = re.findall("'([^']+)'", js)
super_magic_value_1 = super_magic_values[0]
for m in super_magic_values[1:len(super_magic_values)]:
if m:
magic_data[m] = ''
# хер его знает почему, но первую букву надо откусить, обычно это t
super_magic_value1 = super_magic_value_1[1:len(super_magic_value_1)]
# составное значение вида [\$\w0]+=[\$\w0]+$updPrice|[\$\w0]+btnGetPrice
magic_data[super_magic_key] = super_magic_value1 + '|' + magic_data['__EVENTTARGET']
return FormRequest(url=response.url,
formdata=magic_data,
dont_filter=True,
meta=response.meta,
callback=self.parse_price,
method='post',
headers={'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest',
'X-MicrosoftAjax': 'Delta=true',
'Origin': 'http://www.exist.ru',
'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate',
'User-Agent': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-gb) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27'
})
То что случается если жалко ресурсов на запуск js при парсинге )
−267
import execjs
js = '{"1": "2", "3": [4,5]}'
default = execjs.get()
print default.eval(js)
Раз уже астрологи объявили неделю ебанутого парсенья json.
−120
sqlalchemy.orm.relationship(argument, secondary=None, primaryjoin=None, secondaryjoin=None, foreign_keys=None, uselist=None, order_by=False, backref=None, back_populates=None, post_update=False, cascade=False, extension=None, viewonly=False, lazy=True, collection_class=None, passive_deletes=False, passive_updates=True, remote_side=None, enable_typechecks=True, join_depth=None, comparator_factory=None, single_parent=False, innerjoin=False, distinct_target_key=None, doc=None, active_history=False, cascade_backrefs=True, load_on_pending=False, strategy_class=None, _local_remote_pairs=None, query_class=None, info=None)
Охуенный АПИ: прочитал и сразу запомнил.
−123
def run(code):
def func(operator):
from functools import reduce
add = lambda a, b: float(a) + float(b)
mul = lambda a, b: float(a) * float(b)
div = lambda a, b: float(a) / float(b)
deduct = lambda a, b: float(a) - float(b)
d = {
'+': lambda arr: reduce(add, arr),
'*': lambda arr: reduce(mul, arr),
'/': lambda arr: reduce(div, arr),
'-': lambda arr: reduce(deduct, arr)
}
return d[operator]
def lex(token):
if token in ('+', '-', '/', '*', '%'):
return "operator"
elif token == '(':
return "lbracket"
elif token == ')':
return "rbracket"
elif token[0].isalpha():
return "name"
elif token[0] == token[-1] and token[0] in ('"', "'"):
return "string"
else:
try:
float(token)
return "number"
except:
raise ValueError
def getArgs(words):
args = []
arg = []
i = 0
for word in words[2:]:
if word == '(':
i += 1
arg.append(word)
elif word == ')':
i -= 1
arg.append(word)
if i == 0:
args.append(arg)
arg = []
elif i == 0:
arg.append(word)
args.append(arg)
arg = []
else:
arg.append(word)
return args
def expr(words):
args = getArgs(words)
args_ = []
for arg in args:
if len(arg) == 1:
args_.append(arg)
else:
args_.append(expr(arg))
if lex(words[1]) == "operator":
return func(words[1])(list(map(lambda a: (type(a) in (list, tuple) and a[0]) or a, args_)))
lines = code.split("\n")
for line in lines:
word = ''
words = []
chars = tuple(line)
for i in tuple(line):
if i in ('(', ')'):
if word: words.append((word, lex(word)))
words.append((i, lex(i)))
word = ''
elif i == ' ':
if word: words.append((word, lex(word)))
word = ''
else:
word += i
if word: words.append((word, lex(word)))
words_ = list(map(lambda arr: arr[0], words))
print(expr(words_))
функция считает лиспоподобные арифметические выражения, например так:
run("(+ 2 (* 3 4))") # 14
в своё оправдание могу лишь сказать, что писал это в электричке на планшете
−129
except Exception:
raise
−119
import inspect
def phpformat(fmt):
return fmt.format(**inspect.getouterframes(inspect.currentframe())[1][0].f_locals)
surname = "Бонд"
name = "Джеймс"
num = 7
print(phpformat("{surname}. {name} {surname}. Агент {num:03d}."))
PHP'шная интерполяция строк теперь и в питоне.
Родилось в http://govnokod.ru/18147#comment285697
−94
# Мы хотели бы подключиться к базе данных. Мы не знаем, верны ли логин и пароль
# Если соединение с базой будет неуспешно, то
# Он бросит исключение. Обратите внимание, что MyDatabase и DatabaseException
# НЕ являются реальными классами, мы просто используем их в качестве примеров.
try:
database = MyDatabase(db_host, db_user, db_password, db_database)
database_connection = database.connect()
except DatabaseException:
pass
if database_connection is None:
print('The database could not connect')
else:
print('The database could connect')
Часто вы хотите выполнить действие, которое может работать либо завершиться неудачно. Используя None, вы можете проверить успех действия. Вот пример: