- 1
- 2
- 3
- 4
- 5
- 6
# 2017991 => 20/17/99
# 658581 => 65/85
# 6585 => 65
id = id[:(len(id)%2) - 2]
subfolders = ''.join([(i and i % 2 == 0 and '/' or '') + x for i, x in enumerate(id)])
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−99
# 2017991 => 20/17/99
# 658581 => 65/85
# 6585 => 65
id = id[:(len(id)%2) - 2]
subfolders = ''.join([(i and i % 2 == 0 and '/' or '') + x for i, x in enumerate(id)])
В 4 часа утра написал такой вот щит. Можно по вашему мнению это как-то упросить?
−103
def show_vlans(self):
"""Magic people/Voodoo people. All code in this func should be refactored/rewrited."""
self.read_very_eager()#flush
output=self.wr_cmd_sh('sho vlan')
time.sleep(.1)
vlans={}
vlan=''
for string in output:
if re.search(r"VID[\s]*:",string):
vlan=string[re.search(r"[\d]+",string).start():re.search(r"[\d]+",string).end()]
vlans[vlan]={'Member':[], 'Tagged':[], 'Untagged':[]}
if re.search(r"Member Port[s]*[\s]*:[\s]*[\d]+[[-]*[\d]*]*",string):
if '-' in string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()]:
for port in xrange(int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[0]),int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[1])+1):
vlans[vlan]['Member'].append(port)
else:
vlans[vlan]['Member'].append(string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()])
if re.search(r"Current Tagged Port[s]*[\s]*:[\s]*[\d]+[[-]*[\d]*]*",string):
if '-' in string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()]:
for port in xrange(int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[0]),int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[1])+1):
vlans[vlan]['Tagged'].append(port)
else:
vlans[vlan]['Tagged'].append(string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()])
if re.search(r"Current Untagged Port[s]*[\s]*:[\s]*[\d]+[[-]*[\d]*]*",string):
if '-' in string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()]:
for port in xrange(int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[0]),int(string[re.search(r"[\d]+[[-]*[\d]+]*",string).start():re.search(r"[\d]+[[-]*[\d]+]*",string).end()].split('-')[1])+1):
vlans[vlan]['Untagged'].append(port)
else:
vlans[vlan]['Untagged'].append(string[re.search(r"[\d]+[[-]*[\d]*]*",string).start():re.search(r"[\d]+[[-]*[\d]*]*",string).end()])
if vlans=={}:
vlans=self.show_vlans()
#####
return vlans
Императивненько) регекспотренировка при отсутствии group() да и вообще...
−105
def f(x):
return x.strip()
lines = map(f, open("1.txt", "r"))
open("1.txt", "w").write(" ".join(lines))
ХАСКЕЛЕПРОБЛЕМЫ™. Теперь и в питоне.
Исходный файл содержит 3 строчки:
just
as
planned
Питон 2.7:$ python2.7 1.py
$ cat 1.txt
just as planned
Питон 3.0:$ python3.2 1.py
$ cat 1.txt
−102
""" in utils.py"""
try:
mongo = pymongo.Connection(settings.MONGO_HOST).topbrands
except:
# it's ok, nobody dies
mongo = None
''''everywhere"""
from utils import mongo
try:
mongo.objects.save(obj)
except Exception, e:
log.exception(e)
Ну в самом деле пусть везде будет написано о том, что инстанс NoneType не имеет аттрибута objects.
−102
static PyNumberMethods __pyx_tp_as_number_DMetaphone = {
0, /*nb_add*/
0, /*nb_subtract*/
0, /*nb_multiply*/
0, /*nb_divide*/
0, /*nb_remainder*/
0, /*nb_divmod*/
0, /*nb_power*/
0, /*nb_negative*/
0, /*nb_positive*/
0, /*nb_absolute*/
0, /*nb_nonzero*/
0, /*nb_invert*/
0, /*nb_lshift*/
0, /*nb_rshift*/
0, /*nb_and*/
0, /*nb_xor*/
0, /*nb_or*/
0, /*nb_coerce*/
0, /*nb_int*/
0, /*nb_long*/
0, /*nb_float*/
0, /*nb_oct*/
0, /*nb_hex*/
0, /*nb_inplace_add*/
0, /*nb_inplace_subtract*/
0, /*nb_inplace_multiply*/
0, /*nb_inplace_divide*/
0, /*nb_inplace_remainder*/
0, /*nb_inplace_power*/
0, /*nb_inplace_lshift*/
0, /*nb_inplace_rshift*/
0, /*nb_inplace_and*/
0, /*nb_inplace_xor*/
0, /*nb_inplace_or*/
0, /*nb_floor_divide*/
0, /*nb_true_divide*/
0, /*nb_inplace_floor_divide*/
0, /*nb_inplace_true_divide*/
#if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
0, /*nb_index*/
#endif
};
−90
def python_3():
try:
exec("print ''")
return False
except:
return True
Python 2: http://ideone.com/z4NADC
Python 3: http://ideone.com/IcpTUr
−96
def run(self):
count = 0
while True:
if count < 5:
self.saveUsers(self.queue.get())
count += 5
else:
GlobalConfig().setUsers(self.db.selectUsers())
count = 0
self.db.close()
bool не нужен!
−90
def getEML(self):
for i in self.__mandatory_headers:
if i not in self.__headers:
return None
return '{}\r\n\r\n{}'.format('\r\n'.join(['{}: {}'.format(k, v) for k, v in self.__headers.iteritems()]), self.__body)
Наверное, надо подумать, как переписать в виде лямбды для пущего эффекта
−100
(lambda x:request.profile.role if request.profile.role!=5 else 4)(request.profile.role)
−100
size = 3
lines = ["___", "bcd", "___"]
board = [[None]*size]*size
for x in range(0, size):
for y in range(0, size):
if lines[x][y] != '_':
board[x][y] = lines[x][y]
print(board)
я бы, очевидно, хотел видеть результат:
[[None, None, None], ['b', 'c', 'd'], [None, None, None]]
но питоша выводит:
[['b', 'c', 'd'], ['b', 'c', 'd'], ['b', 'c', 'd']]