我是 Python 新手,正在学习编码/编码、unicode、ascii 等。\n我想根据代码并使用 chr() 函数打印 ASCII 字符。
\ndef table_ascii():\n "proc\xc3\xa9dure imprimant une table des caract\xc3\xa8res ascii avec leur valeurs"\n i = 127\n while i < 258:\n print(f"{i} -> {chr(i)}")\n i += 1\n\ntable_ascii()\nRun Code Online (Sandbox Code Playgroud)\n不幸的是,结果是错误的。它停在代码 157 处:
\n127 -> \n128 -> \n129 -> \n130 -> \n131 -> \n132 -> \n\n133 -> \n\n134 -> \n135 -> \n136 -> \n137 -> \n138 -> \n139 -> \n140 -> \n142 -> \n143 -> \n144 -> \n146 -> \n147 -> \n148 -> \n149 -> \n150 -> \n151 -> \n152 -> \n154 -> \n 155 -> \n\n157 ->\nRun Code Online (Sandbox Code Playgroud)\n我知道这些代码返回空白,但为什么它们会停止该过程?
\n设置:
\n当我在 Visual Studio Code 中运行此代码时,脚本会生成 256 的输出。但在我的控制台 (Linux Mate) 中,它会阻塞。这对我来说很难理解...
\n首先,ASCII 最多只能达到 127 (0x7F)。chr()实际上返回Unicode字符。
我认为问题是,当打印 U+9D (157)操作系统命令 (OSC)时,您的终端启动一个控制字符串并等待字符串终止符,例如 U+9C String Terminator、 U+1B Escape后跟 U+5C反斜杠,或 U+7 BEL。由于这些序列后来都不会被打印,因此终端停止显示输出。有关详细信息,请参阅Wikipedia 上的ANSI 转义代码 \xc2\xa7 Fe 转义序列和C1 控制代码。
\nUnicode 字符 U+80 (128) 到 U+9F (159) 是控制字符,这意味着它们通常不可打印,因此您一开始就不会获得合理的输出。
\n