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