如何在没有任何print语句的情况下打印Hello World

Him*_*hra 8 python

我在Python中找到了这个代码,它在不使用字符串"Hello World"的情况下打印"Hello World".它是一行代码,单个表达式(即没有打印语句).

(lambda _, __, ___, ____, _____, ______, _______, ________: getattr(__import__(True.__class__.__name__[_] + [].__class__.__name__[__]), ().__class__.__eq__.__class__.__name__[:__] + ().__iter__().__class__.__name__[_____:________])(_, (lambda _, __, ___: _(_, __, ___))(lambda _, __, ___: chr(___ % __) + _(_, __, ___ // __) if ___ else (lambda: _).func_code.co_lnotab, _ << ________, (((_____ << ____) + _) << ((___ << _____) - ___)) + (((((___ << __) - _) << ___) + _) << ((_____ << ____) + (_ << _))) + (((_______ << __) - _) << (((((_ << ___) + _)) << ___) + (_ << _))) + (((_______ << ___) + _) << ((_ << ______) + _)) + (((_______ << ____) - _) << ((_______ << ___))) + (((_ << ____) - _) << ((((___ << __) + _) << __) - _)) - (_______ << ((((___ << __) - _) << __) + _)) + (_______ << (((((_ << ___) + _)) << __))) - ((((((_ << ___) + _)) << __) + _) << ((((___ << __) + _) << _))) + (((_______ << __) - _) << (((((_ << ___) + _)) << _))) + (((___ << ___) + _) << ((_____ << _))) + (_____ << ______) + (_ << ___))))(*(lambda _, __, ___: _(_, __, ___))((lambda _, __, ___: [__(___[(lambda: _).func_code.co_nlocals])] + _(_, __, ___[(lambda _: _).func_code.co_nlocals:]) if ___ else []), lambda _: _.func_code.co_argcount, (lambda _: _, lambda _, __: _, lambda _, __, ___: _, lambda _, __, ___, ____: _, lambda _, __, ___, ____, _____: _, lambda _, __, ___, ____, _____, ______: _, lambda _, __, ___, ____, _____, ______, _______: _, lambda _, __, ___, ____, _____, ______, _______, ________: _)))
Run Code Online (Sandbox Code Playgroud)

因为它是单行代码,所以这是一个格式良好的代码,更具可读性.

它仅由函数,属性访问,列表,元组,基本数学,一个True和一个star-args组成.它有最小的内置使用(__import__,getattr,和chr各一次).

我很难理解它.有什么可能解释它的作用吗?

在这里,顺便说一下,就是代码的作者解释它是如何工作的.

Chr*_*ter 13

所写问题的答案:代码print通过os.write()输入stdout文件描述符来避免语句,即1:

getattr(__import__("os"), "write")(1, "Hello world!\n")
Run Code Online (Sandbox Code Playgroud)

其余的解释详见https://benkurtovic.com/2014/06/01/obfuscating-hello-world.html.而不是在这里摘要,只需阅读原文!