Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python语句中,打印'\b';密码?_Python - Fatal编程技术网

在Python语句中,打印'\b';密码?

在Python语句中,打印'\b';密码?,python,Python,可能重复: 我注意到了 1.如果我只打印backspaces,即Python中的\b序列,那么它是完全空白的。 2.如果我打印后跟空格的字符,即“sssss\b\b\b\b”,则它将打印多个“s”字符 但是如果我打印类似“ssss\b\b\b\baaaa”的内容,那么退格,\b实际上就像我键入退格并删除“s”字符一样 我正在Windows XP上使用Python 2.6。这是预期的行为。若我尝试获取退格字符的长度,它将打印为1 这是我的测试代码- >>> print 'sss

可能重复:

我注意到了 1.如果我只打印backspaces,即Python中的\b序列,那么它是完全空白的。 2.如果我打印后跟空格的字符,即“sssss\b\b\b\b”,则它将打印多个“s”字符 但是如果我打印类似“ssss\b\b\b\baaaa”的内容,那么退格,\b实际上就像我键入退格并删除“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”时,预期的行为是什么?为什么删除只在特定情况下有效?

正如Alexis在评论中所说,它将光标向后移动(向左移动一个字符)。然后,当您打印时,它将覆盖字符(仅适用于当前文本行)


没有特定于Python的内容,扩展答案证明了这一点:退格不会删除任何内容,它会将光标向左移动,并被您随后编写的内容覆盖。如果你正在向一个可以显示超链接的设备(比如老式的“硬拷贝”终端,它的工作原理类似于打字机),你实际上会在旧字符的上面看到新字符。这就是backspace具有这些语义的真正原因


在unix命令行上,可以将shell设置为将backspace解释为“擦除”——除非它设置为仅以这种方式处理delete。但这取决于程序读取您的输入。

退格不会删除任何内容,它会将光标向左移动,然后被您随后编写的内容覆盖。当然是这样,但我不喜欢答案(作者似乎从未听说过硬拷贝终端),所以我在这里添加了我自己的。没错,这在作为文件输出到设备时很容易看到
>>> print 'abc\b'
abc
>>> print 'abc\b\b\b'
abc
>>> print 'abc\b1'
ab1
>>> print 'abc\b\b\b123'
123