Comments 26
Если у вас нет питона
Call your mother!
Здорово! Как раз задачу для собеседования искал)
Дальше можно не разбираться, ибо модуль «os» имеет только один метод, начинающийся на «wr» и это, очевидно, write
А напрасно, как раз в этом месте ломается совместимость программки. Можно было бы сделать её немного хитрее, чтобы она работала и в python2 и в python3. Разница в названии класса:
# python2
In [4]: ().__iter__().__class__.__name__
Out[4]: 'tupleiterator'
# python3
In [4]: ().__iter__().__class__.__name__
Out[4]: 'tuple_iterator'
Да, и в python3 помимо
os.write()
есть os.writev()
.Спасибо за статью, познавательная. Пытался разгадывать параллельно, но застрял на лямбдах.
Некст левел:
(взято отсюда). Ну или здесь попроще :)
`[`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%(((~(~(~(~(({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%((((~(~(~(~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%(~(~(~(~((~(~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%((((((({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%(~(((~((~(~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%(~(~((((~(~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%(~(~(~((~(~(~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%(~(~(~(~((~(~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%((((((({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%(~(~((~(~(~(~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%(~((~((~((~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%((((((({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%(~((((~(~(~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%((~(((~(~(~({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))),`'%\xcb'`[{}<[]::~(~({}<[])<<({}<[]))]%((~(((~(({}<[])<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[]))<<({}<[])))]`[(({}<[])<<({}<[]))::~(~(({}<[])<<({}<[]))<<({}<[]))]
(взято отсюда). Ну или здесь попроще :)
А я недавно на checkio решал одно из заданий и написал писал такую штуку (вдохновлялся похожей идеей, реализованной на Perl, плюс стрельнул у одного чувака часть кода, которая регистрирует название функции). Писал на Python 3.
(lambda _: globals().__setitem__(_.lower().translate(dict(enumerate(('_', None),
1<<5))), lambda: _))((lambda _: ''.join([chr(int(''.join([len(s).__str__() for s
in''.join(_.split()).split('O')][i:i+15:5]))-111)for i in range(4,210,15)]))("""
0O0O0O0O0O0O0O0O0 O000 00000O0O0O
0O0O0000O0O0O0O0O0 O0O0O0 O0O0000O0O0
O0O0 O00 0O0 O0O 0O0 O00
O0O0 O0O 0O0 O0O 0O0O0O0000
0000 0O0 O0O0O0O00O0O 0O0 O0O0
0O0O0O0O0O00 O0O 0O0O0O00O0O0O0 O0O 00O0O0O0O0O0
00000000O0O 0O0 O0O0 0O0O 0O0 O0O0O0O0O0O
0O00O OO0O 0O0O0 O0O0 O0O0000O0O OO0O000O0O
0O0O0 O0O0O0 O0O0O 000000 000O0OO0O0O 0O0O0O0O0O0
0O0O0O0O0O000O0O OO0 O00 O0O 0O0 O0O00
O0O0O0OO00O0O0 O0O O00 00000O0O0O 0O0O0
0O0O0 O0O0O 0O0O0O0O0O00 000 O0O0 O0O0O
00O OOO O00OO0OO0O00OO OOO 00O0OOOO00OOOOO0
O O OOO0 OOOO O00 00OO0O0O0O0000
"""))
Это получается для python 3.4 можно написать вот так:
?
def recursive_print(number):
if number:
print(chr(number % 256), end="")
recursive_print(number // 256)
else:
return
recursive_print(882504235958091178581291885595786461602115)
?
Да, а что вас смущает? Вообще else: return здесь лишнее. Да и лучше делать без рекурсии:
А вообще, на python2 это можно сконвертировать совсем просто:
while number:
print(chr(number % 256), end="")
number //= 256
А вообще, на python2 это можно сконвертировать совсем просто:
print ("0%x" % 882504235958091178581291885595786461602115).decode("hex")[::-1]
Sign up to leave a comment.
Разгадываем картинку из твиттера компании Intel