为什么我们都要有两个像空格这样的字符呢?为什么空间是chr(32)而不是chr(0)?
还有chr(160)是半个空格??

发布于 2017-08-31 15:24:57
chr(0)实际上不是一个空格,它是一个空字符。chr(n)返回数字n的ASCII character。
当您print(chr(0))时,它只打印空字符的表示形式,即nothing。
请注意:
>>> print('hi'+chr(0)+'hello')
hihello
>>> print('hi'+chr(32)+'hello')
hi hello请注意,NULL不是None,甚至不是空字符串:
>>> chr(0) is None
False
>>> chr(0) == ''
False从字面上看,它什么都不是。
发布于 2017-08-31 15:33:53
chr(0)是NULL字符,这是非常重要的,而chr(32)是' '。例如,NULL字符的作用是终止字符串。所以你看到的x = "abcd"是真正的x = "abcd\00",当然\00和chr(0)是一样的。如果没有null字符,您将无法确定字符串的结尾,因为可能发生的情况是逐字节读取字符串,但是紧跟在"abcd"之后,内存中存储了其他内容,例如y = "efgh"。如果在x的末尾没有空字符,则调用print(x)将打印'abcdefgh',甚至可能打印更多非x的垃圾,因为计算机将不知道何时停止。
发布于 2017-08-31 15:27:18
如果没有错误,chr( int )将int(十进制值)转换为ascii code中的字符...
char(0)为空char(32)为空格
https://stackoverflow.com/questions/45975573
复制相似问题