【问题标题】:I have a problem with deleting a character in python3 chr(8)我在删除 python3 chr(8) 中的字符时遇到问题
【发布时间】:2020-06-05 11:06:03
【问题描述】:

例如

print("a" + chr(8)) 结果是a,但是当我运行print("a" + chr(8) + "b") 结果是b,即使我这样做了

print("a" + chr(8) + "") 结果是a 为什么会这样?为什么我的第一行代码不直接删除这个字符?

【问题讨论】:

    标签: python python-3.x character


    【解决方案1】:

    Python 本身并没有特别对待退格。您可能看到的是终端通过向左移动光标(不删除任何内容)专门解释退格键。

    在终端中,退格键将光标向后移动,打印另一个字符会覆盖它。因此,当您提供 b 时,您不会看到 a

    >>> s = "a" + chr(8) + "b"
    >>> print(s)
    b
    >>> s
    'a\x08b'
    
    >>> s = ("a" + chr(8))
    >>> s
    'a\x08'
    
    

    【讨论】:

      【解决方案2】:

      不会删除,你的字符串有转义字符,你可以自己查看:

      In [115]: mystr = "a" + chr(8) + "b"                                                                                                                                                                        
      
      In [116]: mystr                                                                                                                                                                                             
      Out[116]: 'a\x08b'
      
      In [117]: print(mystr)                                                                                                                                                                                      
      b
      

      【讨论】:

        【解决方案3】:

        在 ascii 表中,字符 8 是退格。退格键由您的操作系统处理。要问的问题是您的操作系统如何处理退格键,因为 python 所做的只是将 \x08 添加到字符串中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-29
          • 1970-01-01
          相关资源
          最近更新 更多