字符串和十六进制表示

时间:2014-06-04 19:23:55

标签: python string hex

我正在尝试以下方法:

>>> a = '\01'
>>> a
>>> '\x01'
>>> b = '\11'
>>> b
>>> '\t'
>>> c = '\21'
>>> c
>>> '\x11'

我不明白为什么有时候我会得到十六进制表示而有时候却没有。
在' \ xhh' ' x'是根本与否?

2 个答案:

答案 0 :(得分:5)

简答

您会看到您的本机代码页无法代表您的字符的那些字符的十六进制表示

长答案

假设您使用的是Windows,而您的默认代码页为cp1252,则'\01'是一个不可打印的字符,即ascii控制代码,代表Start of Heading。由于没有已知的字符可打印表示,因此使用十六进制值来显示该值。

答案 1 :(得分:1)

数字\ 11,\ 21是OCTAL数字。 \ 11八进制是\ x09(十六进制)等于' \ t' (tab char)。 \ 21八进制是\ x11十六进制是17位小数。