SWEA를 듣다가 처음 보는 표현을 들어서 정리해 보려고 한다.
로우 표현법이 대체 뭐지? 옆에 영어로 병기를 해주던가.. 왜 저렇게 썼는지 이해는 되는데 초심자 입장에서는 굉장히 난해한 표현이다. 문제는 그냥 저렇게 띡 "로우표현법"이라고 던지고 다음 챕터로 넘어가는 것 ㅠㅠ
파이썬에서 Raw String(로우 표현법)
String prefix r
, R
사실 이건 로우 표현법이라는 말 자체가 잘못된 것 같다. 적절한 한국어 이름이 생각나지 않는데 그냥 Raw String이라고 하겠다. 파이썬에서 Raw String이라고 하면 보통 다음 방법을 말한다.
raw_string = r'Hi\nHello'
print(raw_string)
실행결과
Hi\nHello
만일 그냥 raw_s = 'Hi\nHello'
라고 했다면 \n
이 Escape Character이기 때문에 줄바꿈이 일어난다.
raw_string = 'Hi\nHello'
print(raw_string)
실행결과
Hi
Hello
하지만 r
을 string 앞에 붙여주어 이게 Raw string임을 표시했기 때문에 '
안의 내용이 그대로(Raw) 출력되는 것을 알 수 있다.
위 방법처럼 Raw string을 사용하려면 string 앞에 r
또는 R
을 붙여주면 된다.
String Literals
그런데 Raw sting을 사용할때 문자 그대로 출력할 수 없는 것이 있다. 바로 String Literal이다. 예를 들어 \'
은 Quote을, \"
은 Double quote을 나타낸다. 원래 String에서 quote mark를 나타내려면 이 표현법을 사용했다.
string = '\''
print(string)
실행결과
'
예상대로 '
가 출력된다. 그런데 문제는 \
를 출력하는 경우이다.
string =r'\'
실행결과
SyntaxError: EOL while scanning string literal
\'
때문에 개행이 되어버려 EOL 에러가 발생한다. 이러한 규칙에 따라 Python Docs에 있는 String Literal은 Raw string으로도 출력할 수 없다.