答案 0 :(得分:5)
chr(0)
实际上不是空格,它是一个空字符。 chr(n)
会返回数字n的ASCII character。
当你print(chr(0))
时,它只打印NULL字符的表示,这是什么都没有。
观察:
>>> print('hi'+chr(0)+'hello')
hihello
>>> print('hi'+chr(32)+'hello')
hi hello
请注意,NULL不是None,也不是空字符串:
>>> chr(0) is None
False
>>> chr(0) == ''
False
几乎没有。
答案 1 :(得分:2)
如果没有错误chr(int)将int(十进制值)转换为ascii code中的字符...
char(0)为Null char(32)是空间
答案 2 :(得分:2)
chr(0)
是NULL
个字符,非常重要且chr(32)
为' '
。 NULL
字符的关键是终止字符串。因此,您所看到的x = "abcd"
是x = "abcd\00"
,当然\00
与chr(0)
相同。如果没有null字符,您将无法确定字符串的结尾,因为可能发生的是您逐字节读取字符串,但在"abcd"
之后,内存中存储了其他内容,y = "efgh"
例。如果在x
末尾没有空字符,则调用print(x)
将打印'abcdefgh'
,甚至可能更多垃圾而不是x
,因为计算机不知道何时停下来。
答案 3 :(得分:1)
实际上chr(n)不返回ASCII码,而是返回n的Unicode码点。第一个元素Unicode恰好与ASCII格式相同。
亲自尝试:chr(15265)
返回'㮡'在Python 3.6中