티스토리 뷰

이런 얘기가 있습니다.

백문이 불여일견 백견이 불여일타

"백 번 듣는 것보다 한 번 보는 게 낫고, 백 번 보는 것보다 한 번 치는 게 낫다."

코딩 공부를 할 때 책이나 영상을 보기만 하는 것 보다는 직접 키보드를 치면서 따라하는 게 좋다는 의미인데요, 파이썬에서 위 문장을 출력하려면 이렇게 할 수 있겠죠.

print("백문이 불여일견 백견이 불여일타")

그런데 만약 이 문장을 다음과 같이 두 줄에 찍으려면 어떻게 할 수 있을까요? 

백문이 불여일견
백견이 불여일타

이렇게 하면 될까요?

print("백문이 불여일견
백견이 불여일타")

네, 아마 실행을 시켜보면 에러가 날 거에요.

 

이 때 필요한 것이 바로 탈출문자라는 것입니다. 탈출문자는 역슬래시(\)와 함께 어떤 문자를 사용함으로써 문장 내에서 원하는 값을 처리할 수가 있어요.

 

이렇게 한 번 적어볼까요?

print("백문이 불여일견\n백견이 불여일타")

# 백문이 불여일견
# 백견이 불여일타

이번에는 우리가 원하는대로 두 줄에 걸쳐서 문장을 출력할 수 있습니다. \n 는 문장 내에서 줄바꿈 역할을 수행하기 때문에 \n 뒤에 나오는 부분부터는 새로운 줄에 출력이 되는 것이죠.

 

 

이런 건 어떨까요?

저는 "나도코딩"입니다.

자기 소개를 하기 위해서 이 문장을 있는 그대로 출력하고 싶습니다.

 

이렇게 하면 될까요?

print("저는 "나도코딩"입니다.")

문자열은 따옴표 사이에 적는다고 설명드렸는데 이렇게 문장을 작성하면 실제로는 "저는 " 이라는 문자열과 "입니다." 라는 문자열 사이에 알 수 없는 나도코딩이라는 무언가가 들어가서 에러가 발생하게 됩니다.

 

이렇게는 해볼 수 있겠네요.

print("저는 '나도코딩'입니다.") # 저는 '나도코딩'입니다.

또는

print('저는 "나도코딩"입니다.') # 저는 "나도코딩"입니다.

이렇게요.

 

하지만 첫 번째 방법은 작은 따옴표를 썼으니 우리가 원했던 것과는 조금 다르고, 두 번째 방법은 우리가 지금까지 실습해오던 큰 따옴표로 문자열을 감싸던 습관과는 다르게 작은 따옴표를 사용했으니 조금 헷갈릴 수가 있겠네요.

 

네, 맞습니다. 이 때도 탈출문자를 활용할 수 있습니다. 바로 \" 와 \' 이지요. 이렇게 하면 문자열 내에서 따옴표를 마음껏 사용할 수 있습니다.

print("저는 \"나도코딩\"입니다.") # 저는 "나도코딩"입니다.
print("저는 \'나도코딩\'입니다.") # 저는 '나도코딩'입니다.

 

탈출문자는 이런 경우에도 필요합니다. 컴퓨터에서 어떤 폴더나 파일의 전체 경로를 출력하려고 할 때,

C:\Users\Nadocoding\Desktop\PythonWorkspace>

만약 이런 형태의 문자열을 그대로 출력하면 어떻게 될까요?

print("C:\Users\Nadocoding\Desktop\PythonWorkspace>")

역시나 에러가 발생하게 됩니다. 이 문장은 가만히 보면 탈출문자의 형태를 띈 곳이 보이는데요. \U, \N, \D, \P 와 같은 부분들이 있죠? 이와 같이 유효하지 않은 탈출문자가 포함되어 있거나, 또는 경로 내에 \n 과 같이 유효한 형태의 탈출문자가 있게 되면 실제로 출력하고자 하는 값과는 다르게 두 줄에 출력되는 등의 상황이 발생할 수도 있게 됩니다. 이 때는 \\ 와 같이 하면 경로를 의미하는 \ 가 출력된답니다.

print("C:\\Users\\Nadocoding\\Desktop\\PythonWorkspace>") # C:\Users\Nadocoding\Desktop\PythonWorkspace>

 

참고로 문자열을 있는 그대로 출력하고 싶을 때 문자열 앞에 r 을 넣는 방법도 있습니다. 그러면 문자열 내에서 어떤 값이 포함되어 있던지 개의치 않고 그대로 출력한답니다. 탈출문자가 포함되어 있어도 말이죠. 즉 다음 문장은 올바르게 경로를 잘 출력하게 됩니다.

print(r"C:\Users\Nadocoding\Desktop\PythonWorkspace>") # raw string

 

자주 사용되지는 않지만 탈출문자 중에는 \r 과 \b 도 있습니다.

\r 은 커서를 맨 앞으로 이동시키는 역할을 하는데요. 다음과 같은 문장이 있을 때 "Pine" 의 P 를 출력하기 이전에 커서를 맨 앞으로, 즉 "Red " 앞으로 이동시켜서 마치 "Red " 를 덮어쓰는 효과를 내게 됩니다. 그래서 출력결과는 PineApple 이 되는 것이죠.

print("Red Apple\rPine") # PineApple

 

잠깐!
책의 내용과 다르게 출력되나요?
사용하시는 IDE 가 Visual Studio Code 가 아니라면 (예 : PyCharm) 출력 결과가 조금 다를 수 있습니다. 이는 프로그램 실행 결과가 출력되는 창의 처리 방식에 따른 것이며, 크게 중요한 부분은 아니니 신경쓰지 않고 넘어가셔도 좋습니다. 만약 책과 동일한 결과를 확인하고 싶으신 경우 윈도우가 제공하는 명령 프롬프트(cmd) 에서 python [파일명.py] 명령을 통해 실행해보시면 됩니다.

 

\b 는 키보드의 백스페이스와 같은 역할을 합니다. 즉 앞 글자 하나를 삭제해주는 것이죠. 예제에서는 "Redd" 중 마지막 "d" 를 없앤 값이 출력됩니다.

print("Redd\bApple") # RedApple

 

마지막으로 \t 도 있습니다. 키보드의 탭 (Tab) 과 같이 여러 칸 (보통 8칸 단위) 을 띄어주는 역할을 한답니다.

print("Red\tApple") # Red     Apple

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함