프로그래머스 파이썬 기초 해석 :: 특수문자 출력하기 (raw string)

프로그래머스 URL

https://school.programmers.co.kr/learn/courses/30/lessons/181948#



프로그래머스 코딩테스트 카테고리 

코딩 기초 트레이닝

Day 1 출력

Lv.0





문제 설명

아래 특수문자 출력하기 

!@#$%^&*(\'"<>?:;




문제 이해

 (백슬러시) ' (작은따음표) " (큰따음표)는 파이썬에서 특별한 기능을 하는 문자이므로, 충돌을 주의해야한다. 

문자열을 표현할때 list = " ~~~" 또는 ' ~~~ ' 처럼 따음표 세트를 써서 열고 닫는다. 

그래서, 이 문자열을 표현하는 따음표 세트랑 안에서 문자 그자체로 쓰는 따음표를 비교하기 위해서는 백슬러시(\) 를 쓴다.  

즉, \ 는 \n, \t와 같이 줄바꿈, 탭 역할을 하기도 하고 
문자열 안에서 \' , \" 처럼 따음표랑 같이 썼을때는 문자열 속에서 '  또는 " 를 표현하기로 쓴다. 




문제점

1) !@#$%^&*(\'"<>?:;  를 표현할때 중간에 있는 \가 바로 뒤에있는 작은따음표랑 붙어서-> \' 가 되는것 

2) 출력할때 양옆을 따음표 세트로 채워야 하는데, 중간에 있는 따음표 들이랑 충돌 




문제 해답

3가지 방법 


가장 일반적인 방법 - \를 표현하기 위해서 \\로 표시하고, 작은따음표를 표시하기 위해서 \' 로 표시한다.

print('!@#$%^&*(\\\'"<>?:;')               


문자열을 감쌀 때, 따음표 세트 ' ~ ' , " ~ " 로 하는게 대부분이지만, '''~ ''', """ ~ """ 따음표 세개를 연달아서 하는 세트도 있음

그래서, 따음표 삼세트로 문자열을 닫아서 안에 있는 따음표랑 구분 지을 수 있다.

그리고, 안에있는 백슬러시는 \\로 표현해야 \가 출력됨 

  

print("""!@#$%^&*(\\'"<>?:;""")            

print('''!@#$%^&*(\\'"<>?:;''')                


문자열 앞에 r이 붙으면 그 문자열 안의 모든 '\' 문자가 자동으로 '\\' 문자로 치환한다.

print(r'!@#$%^&*(\'"<>?:;')                  







------------------------



이 글에서 쓰는 코드소스를 잘 보이게 할려고 HTML을 수정했는데 아래 사진처럼 특수문자 때문에 HTML 태그랑 충돌이 생겨서 코드를 그냥 일반 텍스트로 넣었다... 

코드를 하면서 특수문자가 가지는 기능이랑 단순 텍스트로써 가지는 의미가 충돌이 생기는걸 이 글을 쓰면서 또다시 느낀다.. 

코드를 짤 때 특수문자를 주의하자













댓글

이 블로그의 인기 게시물

[KT 에이블스쿨 - IT 트랜드] 국내외 AI 관련 규제

KT 에이블스쿨 : 6-7차 미니프로젝트 - 제안서 기반 솔류션 기획 및 설계

KT 에이블스쿨 : 클라우드 서비스 1일차 정리