为什么旧版本的“Python 的一个字节”声称# 是不等于运算符?
Why does an old version of “A byte of Python” claim that # is the less-equals operator?
有人刚刚给我看了 A byte of Python 的旧 PDF 版本。根据本身,它是 3.0 版(本书的,而不是 Python 的),从 2014 年开始。在 Operators 部分, 有一个部分是
#
(less than or equal to)
Returns whether x is less than or equal to y
x = 3; y = 6; x # y
returns True
.
在Python2.7和Python3.6中,这显然是错误的。这也是非常糟糕的设计,因为 #
也是注释运算符。
当前版本已将其从 #
更改为 <=
。
我很好奇为什么旧版本声称这个。
到目前为止我的研究和想法
- 我在 Internet 上找不到任何旧版本的 Python 允许这样做的内容。
- 我找不到关于此的任何更改日志或勘误表。
- 假设错了两次,估计不会是错字
- 我不认为这是自动转换错误,因为它必须将两个 ASCII 字符 (
<=
) 转换为一个 (#
)。
本书的 3.0 版是用 AsciiDoc 编写的。这种标记语言为某些结构定义了特殊含义,例如双左箭头 <=
,它在转换为最终输出时被转换为单个 Unicode 字符 ⇐
。这在 https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/#text-replacement
的语法描述中有记录
现在,似乎在与 PDF 的对话过程中,这个字符丢失了,取而代之的是井号字符。这(以及 <=
序列与箭头字符本身的初始对话)显然是一个错误。
由于本书的当前版本已转换为 Markdown,因此此错误已在那里修复。因此,您可能希望使用本书的当前版本,您可以下载 from GitBook.
有人刚刚给我看了 A byte of Python 的旧 PDF 版本。根据本身,它是 3.0 版(本书的,而不是 Python 的),从 2014 年开始。在 Operators 部分, 有一个部分是
#
(less than or equal to)Returns whether x is less than or equal to y
x = 3; y = 6; x # y
returnsTrue
.
在Python2.7和Python3.6中,这显然是错误的。这也是非常糟糕的设计,因为 #
也是注释运算符。
当前版本已将其从 #
更改为 <=
。
我很好奇为什么旧版本声称这个。
到目前为止我的研究和想法
- 我在 Internet 上找不到任何旧版本的 Python 允许这样做的内容。
- 我找不到关于此的任何更改日志或勘误表。
- 假设错了两次,估计不会是错字
- 我不认为这是自动转换错误,因为它必须将两个 ASCII 字符 (
<=
) 转换为一个 (#
)。
本书的 3.0 版是用 AsciiDoc 编写的。这种标记语言为某些结构定义了特殊含义,例如双左箭头 <=
,它在转换为最终输出时被转换为单个 Unicode 字符 ⇐
。这在 https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/#text-replacement
现在,似乎在与 PDF 的对话过程中,这个字符丢失了,取而代之的是井号字符。这(以及 <=
序列与箭头字符本身的初始对话)显然是一个错误。
由于本书的当前版本已转换为 Markdown,因此此错误已在那里修复。因此,您可能希望使用本书的当前版本,您可以下载 from GitBook.