Possible Duplicate:
backspace character weirdness
我注意到 一。如果我只打印backspaces,即Python中的一个\b序列,那么它是完全空白的。 2。如果我打印字符后接空格,即“sssss\b\b\b\b”,则它将打印多个“s”字符 但如果我打印类似“ssss\b\b\b\baaaa”的内容,那么backspace实际上就好像我在键入backspace并删除“s”字符一样。
我在Windows XP上使用Python 2.6。这是预期的行为吗。如果我尝试获取退格字符的长度,则将其打印为1。
这是我的测试代码-
>>> print 'ssss\b\b\b\b\baaaaa'
aaaaa
>>> print 'ssssssss\b\b\b\b\baaaaa'
sssaaaaa
>>> print 'ssssssss\b\b\b\b\b'
ssssssss
>>> print 'ssssssss\b\b\b\b\baaaaa'
sssaaaaa
>>> print '\b\b\b\b\b'
>>>
我的问题是-当我在Python中打印'\b'时,预期的行为是什么?为什么删除只在特定情况下有效?
正如亚历克西斯在评论中所说,它将光标移回(向左移动一个字符)。然后打印时,它会覆盖字符(仅应用于当前文本行)
没有特定于Python的内容,如"backspace character weirdness"
扩展答案:backspace不会删除任何内容,它会将光标向左移动,然后它会被您随后编写的内容所覆盖。如果你用的是一种可以显示过度排字的设备(比如老式的“硬拷贝”终端,它的工作原理类似于打字机),你会在旧的终端上看到新的字符。这就是backspace有这些语义的原因。
在unix命令行中,可以将shell设置为将backspace解释为“erase”的意思,除非将其设置为仅以这种方式处理delete。但这取决于程序读取你的输入。
相关问题 更多 >
编程相关推荐