2017-02-22 3 views
0

에서 다르게 작동하고 나는이 조각에 도착 : positionStr 이전에 정의 된 문자열 인파이썬 : B를 것은 내가 <em>automate_the_boring_stuff_with_python_2015</em> 읽고 있어요 책의 설명

print(positionStr, end='') 
print('\b' * len(positionStr), end='', flush=True) 

. 나는 파이썬 이스케이프 시퀀스를 보았고 \ b가 백 스페이스라는 것을 보았습니다. 그러나 제작자가 인쇄 된 문자열을 지워야한다고 말합니다.

텍스트를 지우려면 \ b 백 스페이스 이스케이프 문자를 인쇄하십시오. 이 특수 문자 은 화면의 현재 줄 끝에 문자를 지 웁니다. u의 줄은 문자열 복제를 사용하여 마지막으로 인쇄 된 positionStr 문자열을 지우는 효과가있는 positionStr에 저장된 문자열의 길이만큼 \ b 자를 포함하는 문자열을 생성합니다.

  1. 당신은 내가 백 스페이스 문자의 무리를 가지고 볼 수 있듯이 나는 here (중간 페이지 테이블)
  2. 이 내 결과

을 다릅니다에서 본 어떤 모순과 같은 I 맞춰야 겠네요. (나는 문자열을 인쇄 한 루프를 실행 한 다음 \b 문자열을 사용했습니다.)

이제 책이 잘못되었거나 뭔가해야합니까? 그것을 작동시키기 위해서는 무엇을해야할까요? 또한 이것이 잘못된 경우이 목표를 달성 할 수있는 방법이 있습니까? (문자열을 출력 한 다음 삭제하십시오)

사진에서 볼 수 있듯이, 저는 파이썬 3.5.3을 사용합니다. Windows 8.1에서

+0

는 새 질문을 게시하기 전에 구글을 검색하십시오. – TigerhawkT3

답변

2

모든 콘솔이 삭제 문자, 특히 그래픽 문자 인 \b 문자를 지원하는 것은 아닙니다.

은 기본 쉘 (Windows 또는 Linux가 작동합니다)에 예를 시도하고 문자가 제대로 삭제됩니다 (같은 일이 당신이 파일에 쓸 때, 이전의 문자 중 하나를 삭제되지 않습니다 발생).

윈도우 CMD :

>>> print("a\bc") 
c 

PyScripter (즉 내가 가진 무엇) : 향후

>>> print("a\bc") 
a<strange char>c 
+0

그런 공통적 인 복제본에 대해서는별로 대답 할 필요가 없습니다. – TigerhawkT3

관련 문제