\o问题
为什么我在Shell输入 print("\x41") 会输出 A ,而我输入 print("\o41") 却只会输出 \o41谁能解释一下原因?{:10_269:} 就没有\o这个转义字符好不好。。。 qiuyouzhi 发表于 2020-5-2 17:05
就没有\o这个转义字符好不好。。。
\o不是八进制数代表的字符吗? aaron.yang 发表于 2020-5-2 17:08
\o不是八进制数代表的字符吗?
那是%o。。。。 aaron.yang 发表于 2020-5-2 17:08
\o不是八进制数代表的字符吗?
请查看 只听说 python3 有 \x 这样的转义,没听说有 \o 这样的转义。
注意:
'\x41' 本质上是一个字符串,不是十六进制数,十六进制数是 0x41,注意没有引号。只是 python3 中有 \x 这样的转义,它遇到 '\x41' 就会理解这个字符串该把 '\x' 后面的字符 '41' 转为十六进制数(int('41', 16) == 0x41 == 65) 并把结果还原为对应字符 'A'。
你说的 '\o41' 本质也是一个字符串,不是八进制数,八进制数是 0o41,注意没有引号。只是 python3 没中有 \o 这样的转义,它该是一个字符串还是字符串,python3 不会对它有什么特殊想法,直接输出 '\\o41'。
那如何把一个八进制数转为字符串呢?用 chr(0o41),输出对应字符 '!'。 咩听说过
页:
[1]