>백엔드 개발 >파이썬 튜토리얼 >Python이 문자열 표현에 이중 백슬래시를 표시하는 이유는 무엇입니까?

Python이 문자열 표현에 이중 백슬래시를 표시하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-24 12:21:15411검색

Why Does Python Show Double Backslashes in String Representation?

Python 문자열에서 백슬래시의 이중 표현

Python 문자열에서 일련의 백슬래시()를 발견하면 중복 효과가 관찰되는 것이 일반적입니다. . 이 동작은 Python이 내부적으로 문자열을 나타내는 방식에서 비롯됩니다.

표현 대 실제 내용

문자열을 변수(예: my_string)에 할당하면 변수는 다음을 유지합니다. 해당 문자열의 내부 표현입니다. 이 표현은 __repr__() 메서드를 사용하여 생성됩니다. 그러나 문자열(예: print(my_string))을 인쇄하면 중복된 백슬래시 없이 문자열의 실제 내용이 표시됩니다.

예를 들어 다음 문자열을 고려하세요.

my_string = "why\does\it\happen?"

repr() 메소드는 이 문자열을 다음으로 변환합니다.

'why\does\it\happen?'

표현에서 이중 백슬래시를 확인하세요. 그러나 my_string을 인쇄하면 다음과 같은 메시지가 나타납니다.

why\does\it\happen?

왜 중복됩니까?

Python은 백슬래시를 이스케이프 문자로 사용합니다. 예를 들어 n은 개행을 나타내고 t는 탭을 나타냅니다. 의도된 이스케이프 시퀀스와 리터럴 백슬래시를 구별하기 위해 Python은 문자열 표현에 사용된 모든 백슬래시를 다른 백슬래시로 이스케이프합니다.

혼란 해결

실제 백슬래시를 얻으려면 단일 백슬래시를 포함한 문자열 내용은 print() 함수를 사용합니다. 문자열 표현이 필요한 경우, repr() 내장 함수를 사용하여 액세스할 수 있습니다:

print(my_string)             # why\does\it\happen?
print(repr(my_string))     # 'why\does\it\happen?'

백슬래시 이스케이프

문자열에 리터럴 백슬래시가 있는 경우 다른 백슬래시를 사용하여 이스케이프해야 합니다. 이렇게 하면 Python이 백슬래시를 이스케이프 문자로 해석하는 것을 방지할 수 있습니다. 예:

"this\text\is\what\you\need"  # Produces: this\text\is\what\you\need

위 내용은 Python이 문자열 표현에 이중 백슬래시를 표시하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.