Поведение Backspace в инструкции Python, правильное поведение при печати '\ b' в коде?

Возможный дубликат:
странность символа backspace

Я заметил, что 1. Если я печатаю только обратные пространства, т.е. Последовательность из \b в Python, то она полностью пуста. 2. Если я печатаю символы, за которыми следуют обратные пространства, т.е. Sssss\b\b\b\b\b, то он будет печатать несколько символов 's' Но если я напечатаю что-то вроде 'ssss\b\b\b\baaaa', тогда backspace,\b, будет действовать так, как будто я набираю обратное пространство и удаляю символы 's'.

Я использую Python 2.6 в Windows XP. Это ожидаемое поведение. Если я попытаюсь получить длину символа backspace, он будет напечатан как 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'

>>>

Мой вопрос: каково ожидаемое поведение при печати '\ b' в Python и почему удаление действительно работает только в конкретном случае?

Ответ 1

Расширенный ответ: обратное пространство ничего не удаляет, оно перемещает курсор влево и закрывается тем, что вы пишете впоследствии. Если вы пишете на устройстве, которое может отображать чрезмерный (например, старомодный "жесткий экземпляр" ), который работает как пишущая машинка), вы бы увидели нового персонажа поверх старого. Что истинная причина backspace имеет эту семантику.

В командной строке unix оболочка может быть настроена так, чтобы интерпретировать обратное пространство как значение "стереть" - если только оно не будет применяться только для удаления этого способа. Но это до программы, читающей ваш вход.

Ответ 2

Как сказал Алексис в комментарии, он перемещает курсор назад (слева на один символ). Затем, когда вы печатаете, он перезаписывает символ (применяется только к текущей строке текста)

>>> print 'abc\b'
abc
>>> print 'abc\b\b\b'
abc
>>> print 'abc\b1'
ab1
>>> print 'abc\b\b\b123'
123

Ничего особенного Python, о чем свидетельствует "backspace character wiredness"