能认为嵌套了转义字符(或者其他类似操作)的表达方式是完备的吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google ython Style Guide
Code Style from The Hitchhiker's Guide
gossip

能认为嵌套了转义字符(或者其他类似操作)的表达方式是完备的吗?

  •  
  •   gossip Oct 13, 2021 3132 views
    This topic created in 1656 days ago, the information mentioned may be changed or developed.

    在比如 python 的文本处理中,有些符号有特定意义,在文本中我们选择转译\,从而达到输出原字符的目的

    但是如果我们就想输出,转译这个字符,那就得再转译。 这样如果从理论上,是否会出现混淆不清的情况。

    所以最终的问题是,在极端情况下,是否给定任意的字符串,都能在编程语言中正确地按照人们心愿地输出出来?

    15 replies    2021-10-14 09:48:46 +08:00
    zoharSoul
        1
    zoharSoul  
       Oct 13, 2021
    是的.
    raw 文本即可.
    ipwx
        2
    ipwx  
       Oct 13, 2021
    把爷整乐了,楼主这是刚学习写代码吗
    est
        3
    est  
       Oct 13, 2021
    8bit 的 ASCII 是完备的。unicode 有漏洞。
    gossip
        4
    gossip  
    OP
       Oct 13, 2021
    @ipwx 是的,接触不多,瞎想想
    ipwx
        5
    ipwx  
       Oct 13, 2021
    @est 不会,UTF-8 是截断安全的。
    wangyu17455
        6
    wangyu17455  
       Oct 13, 2021
    去转义没有歧义,循环读取字符串,如果遇到的不是反斜杠就指针+1 然后记录当前字符,如果是反斜杠那就指针+2 然后记录当前字符,怎么会有歧义呢
    est
        7
    est  
       Oct 13, 2021
    @ipwx 有 normalization 问题。。几个不同的 byte 得到相同的字符。。
    0o0o0o0
        8
    0o0o0o0  
       Oct 13, 2021
    理论上不存在混淆或者不完备,只存在表达错误、语法错误
    gossip
        9
    gossip  
    OP
       Oct 13, 2021
    @wangyu17455 对哦,其实也就是,输入是什么,输出一定唯一确定(或输出错误)
    只是,我想问的是,是不是给任意的字符串都可以套到这个规则中去。

    也就是,如果 x 是输入,y 作为输出,是否对于每一个 y,都有唯一的 x ?
    gossip
        10
    gossip  
    OP
       Oct 13, 2021
    @gossip 也不是唯一的 x 啦,对于任意的 y,存在 x 即可。
    ipwx
        11
    ipwx  
       Oct 13, 2021   1
    @est 不是,楼主只是问:

    对于任意原始字符串 x,是否存在字面量 y,使得 f(y) = x 。
    ipwx
        12
    ipwx  
       Oct 13, 2021
    其中 f 就是编程语言的转移规范。
    gossip
        13
    gossip  
    OP
       Oct 13, 2021
    @ipwx 谢谢是这个意思
    est
        14
    est  
       Oct 13, 2021
    > 对于任意原始字符串 x,是否存在字面量 y,使得 f(y) = x 。

    这个没毛病,成立,python 的字符串表达式是没漏的。

    > 也就是,如果 x 是输入,y 作为输出,是否对于每一个 y,都有唯一的 x ?

    这个倒不唯一了。。。u'\x61' == 'a' == u'\u0061' == u'\U00000061'
    45HXlKzal6W56zUJ
        15
    45HXlKzal6W56zUJ  
       Oct 14, 2021
    但是如果我们就想输出,转译这个字符,请尝试使用 repr 函数 [doge]
    About     Help     Advertise     Blog     API     FAQ     Solana     3649 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 04:33 PVG 12:33 LAX 21:33 JFK 00:33
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86