Quine in Python
Quine is a program which takes no input but outputs a copy of its own code. We have discussed quine in C.
The shortest possible quine in python is just a single line of code!
_ = '_=%r;print _%%_' ; print _ % _ |
In case of Python3.x
_ = '_=%r;print (_%%_)' ; print (_ % _) |
Explanation:
The above code is a classic use of string formatting. Firstly, we are defining a variable _ and assigning it ‘_=%r;print _%%_’. Secondly, we are printing _%_. Here we are printing _ with _ as input to string formatting. So %r in _ gets the value of _. You can even use %s instead of %r. We used double % in ‘_=%r;print _%%_’ to escape %.
But you may say that the below code is the smallest, right!
print open (__file__).read() |
You need to note that it is indeed the smallest python program that can print its own source code but it is not a quine because a quine should not use open() function to print out its source code.