打印\ 78在控制台中发出嘟嘟声

Nik*_*s R 2 python windows

为什么下面的代码让我的机器发出嘟嘟声?

print '\78'
Run Code Online (Sandbox Code Playgroud)

我在交互式解释器中测试了它并在命令行中运行了一个脚本.我也在嵌入式环境中对它进行了测试,并没有在那里调用蜂鸣声.

Joe*_*oey 8

它解释\7八进制转义,因此它是带有ASCII码7的BEL.这是一个字符,当打印在终端上时,响铃.是的,古代的文字钟与电传(甚至是一些终端).因为我们为不让20世纪60年代的技术浪费而感到自豪,所以每个终端模拟器都具有在看到角色时发出声音的相同能力.为什么它在嵌入式环境中不起作用:嗯,它可能不是你在那里的终端模拟器.

文档"在标准C中,最多接受三个八进制数字."由于8没有有效的八进制数字,它会停止\7.

如果你想要文字字符串\78,前缀为r:

print r'\78'
Run Code Online (Sandbox Code Playgroud)

如果你想要字符0x78(x),那么添加一个x:

print '\x78'
Run Code Online (Sandbox Code Playgroud)

但是,如果你问我,除非为它们发明新的转义码,例如\o123字符串或0o153文字,否则任何八进制细节都应该禁止编程语言.这两个约定从C转移到无数的编程语言只是因为它不费力地这样做是因为我的拙见被误导和愚蠢.