推荐学习书目
› 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 Python Style Guide
› Code Style from The Hitchhiker's Guide
gossip
V2EX  ›  Python

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

  •  
  •   gossip · Oct 13, 2021 · 3534 views
  •   You need to sign in to view this topic
    This topic created in 1843 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   ·   Privacy   ·   Solana   ·   2570 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 13:51 · PVG 21:51 · LAX 06:51 · JFK 09:51
    ♥ Do have faith in what you're doing.