Python中的'\b'是什么作用?

5
为什么print('helloo\b')的结果不是hello,同时print('heeee\b\b\blo')的结果也不是hello
答案是hellooheloe

3
行为取决于您用来查看结果的工具,例如终端或类似less的工具。 Python与此无关。 - MisterMiyagi
请注意,"hello!\b?" != "hello?"\bprint 期间具有影响,但不会影响字符串的内容。 - norok2
1个回答

4

为什么print('helloo\b')的结果不是'hello'

因为\b并不会删除字符,它只是将光标向后移动一个位置。由于\b后面没有任何内容,因此没有任何字符被覆盖。最终输出的结果类似于:

hello
    ^

其中 ^ 代表光标。

而且执行 print('heeee\b\b\blo') 的结果不是 'hello'。正确答案是 'helloo' 和 'heloe'

因为在这个例子中,你将光标向后移了 3 个位置,并且在第二个和第三个 e 上写入了 lo

heeee
  ^

Becomes:

heloe

请注意,所有这些都是关于像终端这样的地方“打印”字符串,该终端可以识别回退字符(根据您在问题中提到的内容) - 存储器中的字符串仍然是相同的,包括\b字符。也可以参见“backspace”转义字符‘\b’:意外行为?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接