Python 원시 문자열
raw string으로 부른다.
원시 문자열은 Windows의 정규식이나 디렉터리 경로 와 같이 백슬래시가 많은 문자열을 처리할 때 유용하다
r" " 형식으로 문자열 혹은 주석 앞에도 붙여서 (r""" """)사용할 수 있으며 백슬래시("\")를 리터럴 문자로 처리한다
이전 백준 입출력과 사칙연산 문제의 [고양이]/[개] 문제에서 백슬래시는 바로 뒤의 문자를 출력하도록 사용할 수 있는 정규식 문자라는 부분을 공부했었다.
일반 문자열에서는 백슬래시를 이스케이프 코드로써 이후 문자에 대한 출력방식을 정하는데에 사용하지만,
r string에서는 주로 link, 경로를 처리하기 때문에 백슬래시를 무시하지 않는 결과를 반환하는 것이다.
#일반 문자열
s = 'lang\tver\nPython\t3'
print(s)
출력 :
lang ver
Python 3
#r string 사용 시
s = r'lang\tver\nPython\t3'
print(s)
출력 :
lang\tver\nPython\t3
이처럼 백슬래시를 그대로 문자로 취급하여 출력한다.
주의점은 r string의 첫 시작 문자에 enter를 치거나 \ 백슬래시만 넣었을 경우
**SyntaxError: EOL while scanning string literal** 오류가 발생하여 출력형식이 잘못되었다는 오류를 볼 수 있다.
아래처럼 백슬래시만 넣을 경우 오류발생!
b = r"\"
print(b)
c = r"\\\"
print(c)
enter를 칠 경우 vscode에서는 정상적으로 출력되는 듯 보이나 enter가 함께 출력되고(\n을 문자로 인식한 듯함)
백준에 제출했을때는 출력형식이 잘못되었다는 오류가 발생한다.
a = r"""
\asdfghjkl
"""
print(a)
참고 : https://www.pythontutorial.net/python-basics/python-raw-strings/
'알고리즘 풀이' 카테고리의 다른 글
[알고리즘] 프로그래머스 | 구명보트 (0) | 2023.09.01 |
---|---|
[알고리즘] 프로그래머스 | 짝지어 제거하기 (페어) (0) | 2023.08.31 |
[알고리즘] 프로그래머스 | 올바른 괄호 (1) | 2023.08.28 |
[알고리즘] 프로그래머스 | 신고 결과 받기 (0) | 2023.08.26 |
[알고리즘] 프로그래머스 | JadenCase 문자열 만들기 (0) | 2023.08.25 |