Python Quine 介绍
一个Quine是一个产生其源代码作为输出的计算机程序。该程序不需要输入,并输出其源代码的副本。
Quine很有趣,因为它们似乎违背了编程的目的,即根据输入生成输出。在某些情况下,Quine可能是有帮助的,例如当您需要生成程序源代码的副本时。
运行Python Quine
创建一个Quine并不特别困难,但需要一些思考。基本思想是利用编程语言的内置功能输出程序的源代码。
在Python中,您可以使用内置的repr函数来输出给定对象的源代码。
当然,简单地对程序的源代码调用repr函数并不能产生一个有效的Quine,因为输出还将包括repr函数本身。为了解决这个问题,您可以使用一些技巧来创建一个不包括repr过程的自引用字符串。
一旦您有了一个自引用字符串,您可以打印它以生成一个有效的Quine,就是这样!只需几行简短的代码,您就可以创建一个具有其源代码副本的程序。
代码示例:
print((lambda s:s%s)('print((lambda s:s%%s)(%r))'))
print((_:='print((_:=%r)%%_)')%_)
exec(s:='print("exec(s:=%r)"%s)')
输出:
print((lambda s:s%s)('print((lambda s:s%%s)(%r))'))
print((_:='print((_:=%r)%%_)')%_)
exec(s:='print("exec(s:=%r)"%s)')
总结
Quine是用于创建其源代码输出的程序。名称来自于“quote”的单词,意味着逐字重复某些内容。
Quine用作测试编程语言处理自引用代码的能力。在Python中,编写Quine相对容易。
您只需要将代码用引号括起来,然后使用print语句输出代码即可。
相关文章
Python 复利计算器
发布时间:2023/06/21 浏览次数:172 分类:Python
-
Python是用于金融分析的优秀语言,其中之一是可以使用Python计算复利。复利是指利息不仅仅在本金(原始金额)上支付,还包括已累计的利息。本文将讨论Python复利函数。
Python中内存缓存的使用
发布时间:2023/06/21 浏览次数:171 分类:Python
-
本文将讨论准备内存缓存操作和主要的 Memcached 用法。 它还将讨论使用 Python 缓存和设置的高级模式。
Python 缓存库
发布时间:2023/06/21 浏览次数:197 分类:Python
-
Python 缓存库是必不可少的,因为它允许系统管理缓存。 缓存库可以通过提供一种访问缓存数据和管理缓存的方法来帮助提高系统性能。
管理 Python 依赖项
发布时间:2023/06/20 浏览次数:110 分类:Python
-
使用 Python 的挑战之一是管理依赖项。 在本文中,我们将讨论和学习 Python 依赖项的管理。
Python 中的语言检测
发布时间:2023/06/20 浏览次数:66 分类:Python
-
本文介绍了我们如何使用 Python 检测语言。 我们可以使用库或 API、语言模型和语言交叉集。 在 Python 中检测语言时,使用 Python 库是一种常用的技术。
在 Python 中创建 SFTP 功能
发布时间:2023/06/20 浏览次数:99 分类:Python
-
本文向您展示如何在 Python 中使用 SFTP 来移动数据和文件。使用 pysftp 在 Python 中创建 SFTP 功能
Python 中的 sscanf() 功能
发布时间:2023/06/20 浏览次数:180 分类:Python
-
这篇 Python 文章将使您更好地理解 sscanf() 必须提供什么以及我们如何在 Python 脚本中模仿它。Python 中的 sscanf() 功能
Python 本地服务器
发布时间:2023/06/20 浏览次数:151 分类:Python
-
本篇文章将向我们展示如何在 Python 中创建 HTTP 服务器。 在学习完本篇文章后,我们只需几行代码就可以轻松搭建一个 HTTP 服务器。
Python 中的一行 FTP 服务器
发布时间:2023/06/20 浏览次数:135 分类:Python
-
FTP 是文件传输协议的缩写。 它允许您通过计算机网络在客户端和服务器之间传输文件。使用 pyftpdlib 在 Python 中创建一行 FTP 服务器