Python中的奎因
Quine 是一个不接受任何输入但输出自己代码副本的程序。我们已经在 C 中讨论了奎因。
Python中最短的quine只是一行代码!
_='_=%r;print _%%_';print _%_
在 Python3.x 的情况下
_='_=%r;print (_%%_)';print (_%_)
解释:
上面的代码是字符串格式化的经典用法。首先,我们定义一个变量_并将其赋值为 '_=%r;print _%%_'。其次,我们正在打印_%_ 。在这里,我们打印 _ 和 _ 作为字符串格式的输入。所以 _ 中的%r得到了 _ 的值。您甚至可以使用%s代替%r 。我们在 '_=%r;print _%%_' 中使用了 double %来转义% 。
但是你可能会说下面的代码是最小的,对吧!
print open(__file__).read()
您需要注意,它确实是最小的Python程序,可以打印自己的源代码,但它不是 quine,因为 quine 不应该使用open()函数来打印其源代码。