본문 바로가기
컴퓨터 언어/Python

[ Python ] print 함수 사용하기 - 특수문자출력

by SuperMemi 2022. 6. 9.
반응형

 

[ Python ] print 함수 사용하기 - 특수문자출력 

 

목차

  • 문제상황 : 특수문자 출력
  • 해결방법 : raw string format, escape code

 


 

이전글 : [컴퓨터 언어/Python] - [ Python ] print 함수 사용하기 - 기초 (문자열, sep, end)

 

[ Python ] print 함수 사용하기 - 기초 (문자열, sep, end)

[ Python ] print 함수 사용하기 - 기초 (문자열, sep, end) 글의 목차 print() 의 기본구조 출력 문자열 (작은 따옴표, 큰따옴표, 삼중따옴표) 다중 출력 문자열 sep=' ' 의 역할 end='\n'의 역할 prin..

supermemi.tistory.com

 

 


문제 상황

 

파이썬을 쓰다보면 print에서 특수문자 출력에 관련된 문제가 발생하는 경우가 있습니다.

이는 보통 몇가지 특수 문자들이 특정한 기능을 담당하고 있기 때문이죠!

 

예시를 통해 몇가지 문제 상황을 알아봅시다.

 


1. 따옴표 오류

 

print 함수는 문자열을 입력으로 받습니다.

문자열은 따옴표로 정의할 수 있습니다.

 

아래의 경우 따옴표가 문자열 속에서 사용되었습니다.

이때, 문자열을 의미하는 따옴표출력하고자 하는 문장 속의 따옴표가 충돌하게 됩니다.


2. 백슬래쉬(\) escape code

 

평상시에는 아무 문제가 없이 잘 출력됩니다.

 

그러나 특정한 상황에선 다른 기능으로서 사용되어 문자로 출력되지 않는 문제가 발생합니다.

 

python 에서 백슬래쉬(\)를 특별한 문자로 취급하기 때문에 발생하는 문제입니다.

 

백슬래쉬(\) 는 escape character 라고 불리는데요.

문자열에서 문자로서 인식 되지 않고

특별한 기능을 수행하기 위해 백슬래쉬 뒤쪽 문자를 탈출시키는 문자라고 생각할 수 있습니다.

 

백슬래쉬(\)가 뒤이은 문자 n과 t를 탈출 시켜서 사전에 정의된 특별한 역할을 수행하도록 합니다.

그래서 \n,\t 는 문자 그대로 출력되지 않습니다.

 

escape sequence(code) 는 아래 표와 같이 정의되어 있습니다.

출처 : https://stackoverflow.com/questions/35223869/in-programming-why-are-escape-sequences-for-regex-and-escape-sequences-for-stri

 


해결 방법

 

  • 따옴표 오류 : 다른 종류의 따옴표를 사용한다 or 백슬래쉬를 따옴표 앞에 붙여준다.
  • 백슬래시 오류 : raw string format 사용 or 백슬래쉬를 백슬래쉬 앞에 붙여준다.

 

하나씩 알아봅시다.

 

1. 따옴표 오류

 

[첫번째 방법] 다른 종류의 따옴표 사용하기

 

출력하고싶은 내용적인 따옴표와 

문자열을 나타내는 기능적인 따옴표

구분지어주면 됩니다.

 

하지만 이러한 방법은 두 종류의 따옴표가 내용에 모두 존재한다면 오류를 발생시킵니다 !!

 


[두번째 방법] escape character (\) 붙여주기

 

앞에서 escape character를

"특별한 기능을 수행하기 위해 백슬래쉬 뒤쪽 문자를 탈출시키는 문자"

라고 설명했는데요

 

반대로 여기서는 따옴표의 문자열 정의 기능을 탈출시켜

그냥 출력하고 싶은 내용이라고 표현할 수 있습니다.

print('I\'m supermemi')

 


2. 백슬래쉬(\) escape code

 

[첫번째 방법] raw string format 사용하기

 

raw string 이란 백슬래쉬를 그냥 문자로서 취급하겠다라는 의미로 사용됩니다.

print(r" ") 의 형태로 사용합니다.

 

차이가 느껴지시나요?

print(r"a\n\m\t\c") # raw string
print("a\n\m\t\c")  # back slash considered as escape character

 


[두번째 방법] escape code 활용

 

백슬래쉬 앞에 백슬래쉬를 붙여줘 문자로서 사용하는 것입니다.

 

 

사실 아래의 escape sequence 만 잘 사용한다면 문자열 사용에서 큰 문제가 없으실 겁니다 :)

출처 : https://stackoverflow.com/questions/35223869/in-programming-why-are-escape-sequences-for-regex-and-escape-sequences-for-stri


 

반응형