正文

Python 是一个设计优美的解释型高级语言,它提供了很多能让程序员感到舒适的功能特性。但有的时候,Python 的一些输出结果对于初学者来说似乎并不是那么一目了然。

这个有趣的项目意在收集 Python 中那些难以理解和反人类直觉的例子以及鲜为人知的功能特性,并尝试讨论这些现象背后真正的原理!

虽然下面的有些例子并不一定会让你觉得 WTFs,但它们依然有可能会告诉你一些你所不知道的 Python 有趣特性。我觉得这是一种学习编程语言内部原理的好办法,而且我相信你也会从中获得乐趣!

如果您是一位经验比较丰富的 Python 程序员,你可以尝试挑战看是否能一次就找到例子的正确答案。你可能对其中的一些例子已经比较熟悉了,那这也许能唤起你当年踩这些坑时的甜蜜回忆~

如果你不是第一次读了, 你可以在这里获取变动内容.

  • 更新说明:https://github.com/satwikkansal/wtfpython/releases/
  • 项目地址:https://github.com/leisurelicht/wtfpython-cn
  • 英文版:https://github.com/satwikkansal/wtfpython
  • pdf 版:http://www.satwikkansal.xyz/wtfpython-pdf/

那么,让我们开始吧...


python的rpa库 rpa for python_github


python的rpa库 rpa for python_github_02


python的rpa库 rpa for python_python 且_03


python的rpa库 rpa for python_python 且_04


Structure of the Examples/示例结构

所有示例的结构都如下所示:

> 一个精选的标题 *

标题末尾的星号表示该示例在第一版中不存在,是最近添加的。

# 准备代码.# 释放魔法...

Output (Python version):

>>> 触发语句
出乎意料的输出结果

(可选):对意外输出结果的简短描述。

说明:

  • 简要说明发生了什么以及为什么会发生。

如有必要, 举例说明

Output:

>>> 触发语句 # 一些让魔法变得容易理解的例子# 一些正常的输入

注意: 所有的示例都在 Python 3.5.2 版本的交互解释器上测试过, 如果不特别说明应该适用于所有 Python 版本.

Usage/用法

我个人建议,最好依次阅读下面的示例,并对每个示例:

  • 仔细阅读设置例子最开始的代码。如果您是一位经验丰富的 Python 程序员,那么大多数时候您都能成功预期到后面的结果。
  • 阅读输出结果,
  • 确认结果是否如你所料。
  • 确认你是否知道这背后的原理。
  • 如果不知道, 深呼吸然后阅读说明 (如果你还是看不明白, 别沉默!可以在这 (https://github.com/satwikkansal/wtfPython) 提个 issue)。
  • 如果知道,给自己点奖励,然后去看下一个例子。

PS: 你也可以在命令行阅读 WTFpython. 我们有 pypi 包 和 npm 包 (支持代码高亮)。(译: 这两个都是英文版的)

安装 npm 包 wtfpython(https://www.npmjs.com/package/wtfpython)

$ npm install -g wtfpython

或者, 安装 pypi 包 wtfpython(https://pypi.python.org/pypi/wtfpython)

$ pip install wtfpython -U

现在, 在命令行中运行 wtfpython, 你就可以开始浏览了.

Examples/示例

Section: Strain your brain!/大脑运动!

> Strings can be tricky sometimes/微妙的字符串 *

1.

>>> a = "some_string"
>>> id(a)140420665652016
>>> id("some" + "_" + "string") # 注意两个的id值是相同的.
140420665652016

2.

>>> a = "wtf"
>>> b = "wtf"
>>> a is bTrue
>>> a = "wtf!"
>>> b = "wtf!"
>>> a is bFalse
>>> a, b = "wtf!