gpt4 book ai didi

python - string.printable 中的控制字符有什么用?

转载 作者:行者123 更新时间:2023-12-02 07:08:41 24 4
gpt4 key购买 nike

我正在学习迷你语言格式,我向上滚动查看一些字符串内容,我想知道 Python 认为什么是可打印的,所以我检查了:

>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'

最后请注意,除了其他普通的可打印控制类型字符(如 ^I、^J 和 ^M)之外,还有 ^B 和 ^C。

这些有什么用?

最佳答案

\x0b 是 U+000B、行制表符,\x0c 是 U+000C、换页 (FF)。

太棒了。这是什么意思?为什么它们被认为是可打印的?

早在电传打字机时代,ASCII 就提供了这些字符来通过打印机传送一张纸。行制表字符对于换行就像水平制表符对于空格一样。打印机可以有一组定义的垂直制表位,并且行制表字符将被解释为前进到当前行之后的下一个字符的请求。

换页将前进到下一页的顶部,但设备定义了页面。 (如果使用连续进纸,则一个“页”将被视为 66 行,如果当前位于第 60 行,则换页将简单地前进 7 行,到达下一页的第 1 行。)

在现代终端模拟器上,它们往往没有任何特定含义。简单的测试表明,在 xterm 上,它们都被视为与换行符后跟空格相同:

>>> print("x\x0cy")
x
y
>>> print("x\x0by")
x
y
>>>

更新:看到https://stackoverflow.com/a/58421132/1126841后,它看起来不仅仅是换行符后面的一个空格,而是一个换行符而不是,后面跟着一个回车符,即光标前进一行而不返回到该行的开头;与 print("\n") 相比,无论光标当前位于何处,都会前进到下一行的开头。 (这更有意义,我应该记住这一点。)

关于python - string.printable 中的控制字符有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58421027/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com