鱼C论坛

 找回密码
 立即注册
查看: 1157|回复: 6

[已解决]\o问题

[复制链接]
发表于 2020-5-2 17:03:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么我在Shell输入 print("\x41") 会输出 A ,而我输入 print("\o41") 却只会输出 \o41
谁能解释一下原因?
最佳答案
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),输出对应字符 '!'。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-2 17:05:30 | 显示全部楼层
就没有\o这个转义字符好不好。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-2 17:08:38 | 显示全部楼层
qiuyouzhi 发表于 2020-5-2 17:05
就没有\o这个转义字符好不好。。。

\o不是八进制数代表的字符吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-2 17:09:13 | 显示全部楼层
aaron.yang 发表于 2020-5-2 17:08
\o不是八进制数代表的字符吗?

那是%o。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-2 17:13:16 | 显示全部楼层
aaron.yang 发表于 2020-5-2 17:08
\o不是八进制数代表的字符吗?

请查看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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),输出对应字符 '!'。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-2 19:07:20 | 显示全部楼层
咩听说过
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-18 18:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表