Python 为什么转义字符\b显示未知字符?
我有一行简单的代码Python 为什么转义字符\b显示未知字符?,python,python-3.x,utf-8,python-3.5,unicode-escapes,Python,Python 3.x,Utf 8,Python 3.5,Unicode Escapes,我有一行简单的代码 print("Hello \bWorld!") 输出而不是HelloWorld是 有什么问题?我正在使用python 3.5。我从w3school.com获取了代码您的控制台输出无法显示'\b'。这与python无关 它在VisualStudio中工作:您可以通过在调试器中设置断点来验证它,并检查值(大多数IDE都支持UTF-8)-windows控制台f.e.没有 在Visual Studio中调试输出: 与windows中的控制台输出相比: (这里看起来像你的)
print("Hello \bWorld!")
输出而不是HelloWorld是
有什么问题?我正在使用python 3.5。我从w3school.com获取了代码您的控制台输出无法显示'\b'
。这与python无关
它在VisualStudio中工作:您可以通过在调试器中设置断点来验证它,并检查值(大多数IDE都支持UTF-8)-windows控制台f.e.没有
在Visual Studio中调试输出:
与windows中的控制台输出相比:
(这里看起来像你的)
为了
您的控制台输出无法显示'\b'
。这与python无关
它在VisualStudio中工作:您可以通过在调试器中设置断点来验证它,并检查值(大多数IDE都支持UTF-8)-windows控制台f.e.没有
在Visual Studio中调试输出:
与windows中的控制台输出相比:
(这里看起来像你的)
为了
ASCII退格(BS)删除Python 3.x中的前一个字符:
print("ab\bc")
输出:
ac
在您的例子中,它与Python无关,而是控制台本身
我得到:
print("Hello \bWorld") # HelloWorld
ASCII退格(BS)删除Python 3.x中的前一个字符:
print("ab\bc")
输出:
ac
在您的例子中,它与Python无关,而是控制台本身
我得到:
print("Hello \bWorld") # HelloWorld
谢谢你的回答。是不是\b应该删除它前面的最后一个字符?还是我被误解了?为什么输出空间仍然存在?有一个空间和未知字符。图片是为pycharm IDE设计的。而且,即使我将“Hello\bWorld!”写在一个文件中,而不是打印出来,并用notepad++之类的应用程序打开它,即使在那里,它也不会正确显示。@mike,如果你将open(“f.txt”,“w”)改为f:f.write(“Hello\bWorld”)你的文件正好包含了它。。一个空格后跟一个
'\b'
-在写入之前,它不会从字符串中删除空格和\b(以及字符串剩余部分之前/之后)。如果在兼容的shell中打印“Hello\bWorld”
,它将只打印“HelloWorld”
-请参阅上面windows中的控制台输出。您的IDE决定显示完整字符串,而不将\b应用于空格。@Patrick Artner另一个问题。如果你能为我澄清这一点,我将不胜感激。假设我有一个文本文件,其中有一些文本,如果我写(“\b”),是否要删除文件中的最后一个字符?@Mike否-它将向文件中写入另一个字符,即'\b'
(或二进制\x08)。谢谢您的回答。是不是\b应该删除它前面的最后一个字符?还是我被误解了?为什么输出空间仍然存在?有一个空间和未知字符。图片是为pycharm IDE设计的。而且,即使我将“Hello\bWorld!”写在一个文件中,而不是打印出来,并用notepad++之类的应用程序打开它,即使在那里,它也不会正确显示。@mike,如果你将open(“f.txt”,“w”)改为f:f.write(“Hello\bWorld”)你的文件正好包含了它。。一个空格后跟一个'\b'
-在写入之前,它不会从字符串中删除空格和\b(以及字符串剩余部分之前/之后)。如果在兼容的shell中打印“Hello\bWorld”
,它将只打印“HelloWorld”
-请参阅上面windows中的控制台输出。您的IDE决定显示完整字符串,而不将\b应用于空格。@Patrick Artner另一个问题。如果你能为我澄清这一点,我将不胜感激。假设我有一个文本文件,其中有一些文本,如果我写(“\b”),是否要删除文件中的最后一个字符?@Mike no-它将向文件中写入另一个字符,即'\b'
(或二进制\x08)