什么是'chr(32)'和'chr(0)'之间的区别?

时间:2017-08-31 07:22:48

标签: python

为什么我们必须有两个像太空一样的角色? 为什么空格是chr(32)而不是chr(0)

chr(160)也是半空间?

4 个答案:

答案 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",当然\00chr(0)相同。如果没有null字符,您将无法确定字符串的结尾,因为可能发生的是您逐字节读取字符串,但在"abcd"之后,内存中存储了其他内容,y = "efgh"例。如果在x末尾没有空字符,则调用print(x)将打印'abcdefgh',甚至可能更多垃圾而不是x,因为计算机不知道何时停下来。

答案 3 :(得分:1)

实际上chr(n)不返回ASCII码,而是返回n的Unicode码点。第一个元素Unicode恰好与ASCII格式相同。

亲自尝试:chr(15265)返回'㮡'在Python 3.6中