Python 中的 Quine
programmingpythonserver side programming
Quine 是一个程序,它不接受输入,但会产生输出。它将显示自己的源代码。此外,Quine 有一些条件。我们无法在程序内部打开源代码文件。
示例 1
这里是一个简单的字符串格式化。我们定义一个变量"a",在 a 中,我们存储"a=%r;print (a%%a)",然后我们打印 a 的值,并用 a 的值替换 %r。因此,quine 正在工作 −
a='a=%r;print (a%%a)';print (a%a)
输出
a='a=%r;print (a%%a)';print (a%a)
示例 2
我们定义了一个变量 _ 并赋值'_=%r;print _%%_'。然后,我们打印 _%_。我们将打印 _ 并将 _ 作为字符串格式化的输入。因此,_ 中的 %r 获取 _ 的值。
_='_=%r;print (_%%_)';print (_%_)
输出
_='_=%r;print (_%%_)';print (_%_)
不是 Quine
与上述两个示例相比,下面的代码可能看起来是最小的 Quine。但实际上它不是 Quine,因为我们违反了 Quine 规则。我们无法在 Quine 中打开文件。
示例
print(open(__file__).read())