aaron.yang 发表于 2020-5-2 17:03:44

\o问题

为什么我在Shell输入 print("\x41") 会输出 A ,而我输入 print("\o41") 却只会输出 \o41
谁能解释一下原因?{:10_269:}

qiuyouzhi 发表于 2020-5-2 17:05:30

就没有\o这个转义字符好不好。。。

aaron.yang 发表于 2020-5-2 17:08:38

qiuyouzhi 发表于 2020-5-2 17:05
就没有\o这个转义字符好不好。。。

\o不是八进制数代表的字符吗?

qiuyouzhi 发表于 2020-5-2 17:09:13

aaron.yang 发表于 2020-5-2 17:08
\o不是八进制数代表的字符吗?

那是%o。。。。

aaron.yang 发表于 2020-5-2 17:13:16

aaron.yang 发表于 2020-5-2 17:08
\o不是八进制数代表的字符吗?

请查看

hrp 发表于 2020-5-2 18:32:31

只听说 python3 有 \x 这样的转义,没听说有 \o 这样的转义。
注意:
'\x41' 本质上是一个字符串,不是十六进制数,十六进制数是 0x41,注意没有引号。只是 python3 中有 \x 这样的转义,它遇到 '\x41' 就会理解这个字符串该把 '\x' 后面的字符 '41' 转为十六进制数(int('41', 16) == 0x41 == 65) 并把结果还原为对应字符 'A'。

你说的 '\o41' 本质也是一个字符串,不是八进制数,八进制数是 0o41,注意没有引号。只是 python3 没中有 \o 这样的转义,它该是一个字符串还是字符串,python3 不会对它有什么特殊想法,直接输出 '\\o41'。

那如何把一个八进制数转为字符串呢?用 chr(0o41),输出对应字符 '!'。

MIke_python小小 发表于 2020-5-2 19:07:20

咩听说过
页: [1]
查看完整版本: \o问题