在一个问题中,我有两个String.printable谜团。
首先,在Python 2.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不是有意的性别偏见,那么有什么不同呢?
发布于 2009-01-06 13:15:37
“可打印”与“可在屏幕上显示”有所不同。您的终端将低ascii打印机控制代码0x0B和0x0C显示为阳符号和阴符号,因为这是字体中的索引所包含的符号。这些字符更准确地描述为垂直制表符和换页字符。这两个字符以及\t \r和\n都是可打印的,并且在打印机上可以很好地定义内容。
https://stackoverflow.com/questions/418176
复制相似问题