“this”模块的源代码是做什么的?

2023-12-13

如果您打开 Python 解释器,然后输入“import this”,如您所知,它会打印:

《Python 之禅》作者:Tim Peters

美丽总比丑陋好。
显式的比隐式的好。
简单总比复杂好。
复杂总比复杂好。
扁平比嵌套更好。
稀疏比密集好。
可读性很重要。
特殊情况还不足以违反规则。
尽管实用性胜过纯粹性。
错误永远不应该悄无声息地过去。
除非明确沉默。
面对歧义,拒绝猜测的诱惑。
应该有一种——最好只有一种——明显的方法来做到这一点。
尽管这种方式一开始可能并不明显,除非您是荷兰人。
现在总比没有好。
尽管从来没有比永远更好right now.
如果实现很难解释,那就是个坏主意。
如果实现很容易解释,这可能是一个好主意。
命名空间是一个非常棒的想法——让我们多做一些这样的事情吧!

在 python 源代码(Lib/this.py)中,这段文本是由一段奇怪的代码生成的:

s = """Gur Mra bs Clguba, ol Gvz Crgref

Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcnefr vf orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
Nygubhtu cenpgvpnyvgl orngf chevgl.
Reebef fubhyq arire cnff fvyragyl.
Hayrff rkcyvpvgyl fvyraprq.
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
Abj vf orggre guna arire.
Nygubhtu arire vf bsgra orggre guna *evtug* abj.
Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

d = {}
for c in (65, 97):
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c)

print "".join([d.get(c, c) for c in s])

这就是所谓的rot13编码:

d = {}
for c in (65, 97):
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c)

为大写(这是 65 的用途)和小写(这是 97 的用途)字符构建转换表。

print "".join([d.get(c, c) for c in s])

打印翻译后的字符串。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“this”模块的源代码是做什么的? 的相关文章

随机推荐

  • Java Unsafe.copyMemory java.lang.IllegalArgumentException

    我对来自 Unsafe 的 copyMemory 有疑问 我花了2天的时间来解决它 但没有结果 下面提供的代码始终以 IllegalArgumentException 结束 你能帮我看看问题出在哪里吗 public void testMem
  • 将数据从一个模型分成两个后,如何重写我的猫鼬查询?

    在我的应用程序中 我存储评论 以前我的模型是这样的 var CommentsSchema new Schema username type String display name type String facebook username
  • 如何在 PHP 中的 cURL POST HTTP 请求中包含授权标头?

    我正在尝试通过 Gmail OAuth 2 0 访问用户的邮件 并且我正在通过 Google 的 OAuth 2 0 Playground 解决这个问题 在这里 他们指定我需要将其作为 HTTP 请求发送 POST mail feed at
  • 如何使用OpenCV进行人脸识别? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在尝试使用 OpenCV 做一些人脸识别 不是检测 的事情 我发现这篇文章有一些代码 http www cognotics com opencv
  • pandas-python 数据框更新一列

    假设我有一个包含品牌名称的品牌列表 BRANDS Samsung Apple Nike 数据框 A 具有以下结构 row item title brand name 1 Apple 6S Apple 2 Nike BB Shoes na l
  • 为 ios 构建一个具有电子签名功能的应用程序,可能使用单点触控?

    这只是一个简单的问题 因为我在谷歌上搜索并只找到了已经具有此功能的应用程序 但我如何着手创建一个能够捕获电子签名的应用程序 这可能吗 Xamarin 的组件商店有一个签名板执行此操作的组件 我也从头开始写过类似的东西 这并不是特别困难 代码
  • Tensorflow Estimator API 以 eval 模式保存图像摘要

    目前 我尝试使用 Tensorflow 的新 Estimator API 在自定义图像数据集上训练自动编码器 到目前为止一切正常 我遇到的唯一问题是当模型处于评估模式时将输入和输出图像保存为摘要 我在训练模式下创建的所有图像摘要都正确存储并
  • 该解决方案中信号量的使用是否正确?

    Problem 我必须增加 x1 和 x2 变量 这应该由单独的线程完成 并且在两个变量的上一个增量未完成之前不应调用两个变量的下一个增量 建议的解决方案 初始化 4 个信号量并调用单独的线程来单独递增变量 2 个信号量用于将消息传递到线程
  • C++/CX WinRT 指针的引用计数的线程安全

    我的印象是 考虑到用例 WinRT 对象的引用计数是线程安全的 但我遇到了一个错误 我不知道有什么其他方法可以解释 例如 以下代码很快就会崩溃 ref class C sealed public C virtual C Windows Fo
  • 带复选框的 Java 结果集到 JTable

    我有这段代码 它可以显示数据库中的数据 它运行良好 但我希望它在最后一列有复选框 我在这里找到了一些代码 但它仅适用于预定义的值 而不是来自数据库 如何向 JTABLE swing 添加复选框 截屏 Code public print in
  • Java 初学者 - 计算句子中的单词数

    我应该使用方法来计算句子中的单词数 我写了这段代码 但我不太确定为什么它不起作用 无论我写什么 我只收到 1 个字的计数 如果你能告诉我如何修复我写的内容而不是给我一个完全不同的想法 那就太好了 import java util Scann
  • 是否有“临时函数”之类的东西? [复制]

    这个问题在这里已经有答案了 有临时视图和临时表 是否有 临时函数 我有一个函数 我想在事务期间使用 然后丢弃 类似于临时表的用例 此外 我希望两个并发事务能够创建具有相同名称的相同函数 而无需锁争用 没有CREATE TEMP FUNCTI
  • SurfaceView 中带有 SimpleOnGestureListener 的 Android GestureDetector

    public class GameActivity extends Activity private static final String TAG GameActivity Override public boolean onTouchE
  • 如何在 Angular 中的本地存储中存储文件(2 及更高版本)

    我只想将图像或 pdf 或任何类型的文件存储在本地存储中 那么 有没有办法将文件存储在LocalStorage中呢 这是一个适用于 Angular 6 7 8 的独立服务 它在本地存储中下载 存储和检索文件 import Injectabl
  • 检测 Java 应用程序是否以 Windows 管理员身份运行

    我有一个 Java 应用程序 无论如何 我可以判断该进程是否在 Windows 7 上以管理员权限运行 我找到了一种似乎与平台无关的不同解决方案 它尝试编写系统首选项 如果失败 则该用户可能不是管理员 As 托马斯 扎托建议 您可能希望抑制
  • 使用改造上传文件时出现错误(没有此类文件或目录)

    我正在开发 Android 应用程序 我需要将带有文件的请求发布到服务器 我在用retrofit这样做 我这样做MultipartAPI 请求 然后我用Intent createChooser选择文件 当我这样做的时候问题就出现了enque
  • 使用 Storyboard 在 Mac sdk 中自定义字体

    如何在 Mac 应用程序开发中向情节提要添加自定义字体 我浏览了一些博客 并尝试添加字体书并使用故事板使用这种自定义字体开发一个 NStextfield 但这是系统相关的 我创建了 DMG 并安装在另一台计算机上 它使用默认字体 我以编程方
  • Android 列表视图填充内容的高度

    我在 xml 中定义了一个列表视图 现在我正在设置内容视图setContentView R layout topic layout 我里面有 5 个项目 目前它只填充列表视图高度的一半 但我希望它完全填充高度 这样我在底部就没有任何空间 我
  • 如何从文本文件中删除标点符号[重复]

    这个问题在这里已经有答案了 import collections import string with open cipher txt as f f f read replace replace n lower f f strip stri
  • “this”模块的源代码是做什么的?

    如果您打开 Python 解释器 然后输入 import this 如您所知 它会打印 Python 之禅 作者 Tim Peters 美丽总比丑陋好 显式的比隐式的好 简单总比复杂好 复杂总比复杂好 扁平比嵌套更好 稀疏比密集好 可读性很