为什么下面的代码会让我的机器发出嘟嘟声?
print '\78'
我已经在交互式解释器中testing了它,并在命令行中运行了一个脚本。 我也在embedded式环境中testing过它,它并没有在那里调用一个响声。
它将\7
解释为八进制转义,所以它是带有ASCII码7的BEL。这是一个在终端打印时敲响一个钟的字符。 是的,远古时代的文字钟(甚至有些终端)。 由于我们自豪于不让60年代的技术浪费每一个终端仿真器都具有相同的能够在角色视觉上发出声音的能力。 为什么它不能在嵌入式环境中工作:那么,它可能不是你在那里的终端模拟器。
该文件说: “在标准C,最多可接受三个八进制数字。”因为8
是无效的八进制数字,它停在\7
。
如果你想要字符串\78
,前缀一个r
:
print r'\78'
如果你想要字符0x78
( x
),然后添加一个x
:
print '\x78'
如果你问我,任何八进制细节都应该被禁止使用编程语言,除非为它们创建了新的转义码,例如字符串为\o123
或文字为0o153
。 这两个从C这里转化为无数编程语言的惯例,就是因为我毫不费力地这样做,愚蠢而愚蠢。