Python 中的Quine
Quine是一个程序,它不接受输入,但会产生输出。它将显示自己的源代码。此外,Quine还有一些条件。我们不能在程序内部打开源代码文件。
示例1
这里使用了简单的字符串格式化。我们定义了一个变量’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())