迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python Quine 介绍

作者:迹忆客 最近更新:2023/06/21 浏览次数:

一个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语句输出代码即可。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便