字符串中"\b"不正当行为

1 投票
1 回答
2238 浏览
提问于 2025-04-17 15:33

我有一小段代码,似乎运行得不太对;我刚开始学Python,可能是我忽略了什么。代码如下:

bs = ("\b", "\b", "\b", "\b", "\b", "\b", "\b", "\b", "\b");
print "b%ra%rc%rk%rs%rl%ra%rs%rh%r" % bs;
print "b%sa%sc%sk%ss%sl%sa%ss%sh%s" % bs;

当我在Powershell中运行这段代码时,输出是:

b\x08a\x08c\x08k\x08s\x08l\x08a\x08s\x08h\x08
h

为什么最后的 h\b 在使用字符串输出(%s)时显示为 h,而在原始输出(%r)中看起来应该被删除呢?

1 个回答

1

你并不是用 \b 来“擦除”字符,而只是向后退了一位。

所以,接下来打印的字符会覆盖掉之前的字符。要让它正常工作,可以加个空格:

>>> print "b%sa%sc%sk%ss%sl%sa%ss%sh%s " % bs

撰写回答