Python Quine 介绍

一个Quine是一个产生其源代码作为输出的计算机程序。该程序不需要输入,并输出其源代码的副本。

Quine很有趣,因为它们似乎违背了编程的目的,即根据输入生成输出。在某些情况下,Quine可能是有帮助的,例如当您需要生成程序源代码的副本时。


运行Python Quine

创建一个Quine并不特别困难,但需要一些思考。基本思想是利用编程语言的内置功能输出程序的源代码。

在Python中,您可以使用内置的repr函数来输出给定对象的源代码。

当然,简单地对程序的源代码调用repr函数并不能产生一个有效的Quine,因为输出还将包括repr函数本身。为了解决这个问题,您可以使用一些技巧来创建一个不包括repr过程的自引用字符串。

一旦您有了一个自引用字符串,您可以打印它以生成一个有效的Quine,就是这样!只需几行简短的代码,您就可以创建一个具有其源代码副本的程序。

代码示例:

python 复制代码
print((lambda s:s%s)('print((lambda s:s%%s)(%r))'))
print((_:='print((_:=%r)%%_)')%_)
exec(s:='print("exec(s:=%r)"%s)')

输出:

python 复制代码
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语句输出代码即可。

相关推荐
小鸿的摸鱼日常20 分钟前
Kivy,一个上天入地的 Python 库
python·kivy·python 库之旅
Banana08401 小时前
seq2seq翻译实战-Pytorch复现
人工智能·pytorch·python
计算机编程-吉哥1 小时前
计算机毕业设计 基于Python的汽车销售管理系统 Python+Django+Vue 前后端分离 附源码 讲解 文档
python·django·计算机毕业设计·计算机毕业论文·计算机毕业设计选题·软件工程毕业设计论文·汽车销售管理系统
二十雨辰1 小时前
[Linux]用户管理指令
linux·运维·服务器
朝九晚五ฺ2 小时前
【Linux探索学习】第一弹——Linux的基本指令(上)——开启Linux学习第一篇
linux·运维·学习
mariokkm2 小时前
Python一分钟:装饰器
开发语言·python
不良人龍木木2 小时前
环境部署-环境变量
linux·python
eeee~~2 小时前
特征工程与交叉验证在机器学习中的应用
python·机器学习·jupyter·信息可视化·数据分析
好度2 小时前
python网站创建001:内容概览
开发语言·python
全栈技术负责人2 小时前
vue3中使用nexttick
前端·javascript·vue.js