
在比如 python 的文本处理中,有些符号有特定意义,在文本中我们选择转译\,从而达到输出原字符的目的
但是如果我们就想输出,转译这个字符,那就得再转译。 这样如果从理论上,是否会出现混淆不清的情况。
所以最终的问题是,在极端情况下,是否给定任意的字符串,都能在编程语言中正确地按照人们心愿地输出出来?
1 zoharSoul Oct 13, 2021 是的. raw 文本即可. |
2 ipwx Oct 13, 2021 把爷整乐了,楼主这是刚学习写代码吗 |
3 est Oct 13, 2021 8bit 的 ASCII 是完备的。unicode 有漏洞。 |
6 wangyu17455 Oct 13, 2021 去转义没有歧义,循环读取字符串,如果遇到的不是反斜杠就指针+1 然后记录当前字符,如果是反斜杠那就指针+2 然后记录当前字符,怎么会有歧义呢 |
8 0o0o0o0 Oct 13, 2021 理论上不存在混淆或者不完备,只存在表达错误、语法错误 |
9 gossip OP @wangyu17455 对哦,其实也就是,输入是什么,输出一定唯一确定(或输出错误) 只是,我想问的是,是不是给任意的字符串都可以套到这个规则中去。 也就是,如果 x 是输入,y 作为输出,是否对于每一个 y,都有唯一的 x ? |
12 ipwx Oct 13, 2021 其中 f 就是编程语言的转移规范。 |
14 est Oct 13, 2021 > 对于任意原始字符串 x,是否存在字面量 y,使得 f(y) = x 。 这个没毛病,成立,python 的字符串表达式是没漏的。 > 也就是,如果 x 是输入,y 作为输出,是否对于每一个 y,都有唯一的 x ? 这个倒不唯一了。。。u'\x61' == 'a' == u'\u0061' == u'\U00000061' |
15 45HXlKzal6W56zUJ Oct 14, 2021 但是如果我们就想输出,转译这个字符,请尝试使用 repr 函数 [doge] |