字符串中"\b"不正当行为
我有一小段代码,似乎运行得不太对;我刚开始学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