我在一个问题里有两个可打印的谜团。
首先,在Python2.6中:
>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
看看字符串的末尾,您会发现“\x0b\x0c”像拇指一样突出。他们为什么在那里?我使用的机器设置为澳大利亚设置,所以不应该有任何重音字符或类似。
接下来,尝试运行以下代码:
for x in string.printable: print x,
print
for x in string.printable: print x
第一行成功地打印出由空格分隔的所有字符。这两个奇怪的字符变成了男性和女性的象征。
第二行成功打印除最后一行由换行符分隔之外的所有字符。男性符号打印;女性符号替换为丢失的字符(方框)。
我敢肯定Python并不是有意偏袒性别的,那么有什么区别呢?
“可打印”与“可在屏幕上显示”有区别。终端将低位ascii打印机控制代码0x0B和0x0C显示为阳性和阴性符号,因为字体中的索引包含这些符号。这些字符更准确地描述为垂直制表符和表单馈送字符。这两个字符以及\t\r和\n都是可打印的,在打印机上可以执行定义良好的操作。
从cmd.exe中:
Emacs内部:
以下是formats(5)手册页的摘录:
相关问题 更多 >
编程相关推荐