爲什麼下面的代碼會使我的機器發出嘟嘟聲?打印 78在控制檯中發出蜂鳴音
print '\78'
我已經在交互式解釋器中測試了它,並在命令行中運行了腳本。我也在嵌入式環境中測試過它,它並沒有在那裏調用嗶嗶聲。
爲什麼下面的代碼會使我的機器發出嘟嘟聲?打印 78在控制檯中發出蜂鳴音
print '\78'
我已經在交互式解釋器中測試了它,並在命令行中運行了腳本。我也在嵌入式環境中測試過它,它並沒有在那裏調用嗶嗶聲。
它解釋\7
作爲八進制逸出,所以它的BEL ASCII代碼7.這是一個字符,印刷在終端上時,環A鍾。是的,遠古時代的文字鍾(甚至有些終端)。由於我們非常自豪地不讓60年代的技術浪費每個終端仿真器具有在角色視覺上發出聲音的能力。爲什麼它不能在嵌入式環境中工作:嗯,它可能沒有終端模擬器。
The documentation說「作爲標準C,最多三個八進制數字都可以接受。」由於8
是它\7
停止沒有有效的八進制數字。
如果你想在文字字符串\78
,可以在前面的r
:
print r'\78'
如果你想要的字符0x78
(x
),然後添加一個x
:
print '\x78'
如果你問我,儘管如此,任何八進制細節都應該被禁止使用編程語言,除非爲它們創建新的轉義碼,例如字符串爲\o123
或文字爲0o153
。這兩個公約從C這裏繼承到無數的編程語言,只是因爲它毫不費力地這樣做,在我的愚見中被誤導和愚蠢。
感謝您的回答。如果我想讓序號爲78的字符呢?即'字符(78)'但在字符串文字? –
這裏沒有內置的逃生。你必須轉換爲十六進制(是的,我在這裏忽略了八進制選項):'\ x4e'。或者只是使用「N」來避免所有角色逃脫的東西。 – Joey
使用十六進制轉義是一種可能的選擇,所以我會使用它。我需要在這裏輸入的字符不是*全部*可由鍵盤上的字符表示。像'\ o78'這樣的東西會很不錯。^^ –
它應該只用「\ 7」 –