为了纪念即将到来的 9 月 1 日,我将举办一场自我修正写作比赛Hello world
。
让我立即保留该任务是在 中创建的,但您可以用任何具有与 Python 类似行为的语言Python
编写答案:
- 通过指定括号内的最后一个字符串将字符串传递到标准控制台输出函数
- PL允许你运行一个明显写有错误的程序
您需要编写代码,在代码末尾将指示反向HelloWorld 命令(允许添加工作所需的结构 - 例如end
括号等):
# Любой Ваш код
HelloWorld("print")
启动后,Hello world 应用程序的更正文本将显示在控制台中:
print("HelloWorld")
HelloWorld
在这种情况下,可以更改“发送用于打印”的文本(部分) - 代码应与以下命令类似地工作:
hello_world("print") >>> print("hello_world")
test("print") >>> print("test")
输出的文本是用一个词写成的——就像一个函数一样。
在它之后,输出命令用括号和引号表示- 它自己的 PL。无需提供更改的能力("print")
(或在另一种语言中类似)。
同样,应用程序不必在显示正确的 HelloWorld 代码文本后运行。
JavaScript 中的示例:
# Любой Ваш код
HelloWorld('console.log')
帕斯卡示例:
program Hello;
begin
# Любой Ваш код
HelloWorld('writeln')
end.
胜利标准(平票降序)
- 计票时的最高票数
- 最少数量的代码字符(所有内容都包括在内 - 包括您的代码和最后一行 HelloWorld)
- 最早回复
总结 - 9 月 1 日 21:00 莫斯科时间
根据比赛结果,得票最多的答案是@CrazyElf——通过捕获异常的解决方案NameError
。
但答案同样包含有趣和意想不到的解决方案!
感谢大家的参与!特别感谢Python以外语言的解决方案!
所以@extrn想出了Perl中最短的解决方案——61个字符!
我最初的解决方案也是通过拦截异常来发明的,但它有111 个字符NameError
长:
import sys;sys.excepthook=lambda*a:print(f'''print("{str(a[1]).split()[1].strip("'")}")''')
HelloWorld("print")