파이썬 기초 질문

파이썬 기초 질문

QA

파이썬 기초 질문

본문

안녕하세요! 제가 파이썬 공부를 하다가 이해가 안돼서 질문드립니다. 

 

 

a="""파이썬

만세"""

print(a) 

 

를하면 결과가 

 

파이썬

만세 

 

라고 나온다는데,  원래 한 행 띄어쓰기를 하려면 ₩n 을 

해야된다고 하지 않았나요? 어떤 이유에서 저렇게 결과값이 나오는지 궁금합니다. 

 

또, 큰 따옴표가 """ 이렇게 3 개가 있어야 오류가 안뜨는데 그 이유도 궁금합니다 

 

a= "파이썬

만세" 

 

print(a) 

 

라고 해보니까 에러가 뜨더라구요. 

 

아시는 선배님들 많이 알려주세요 ㅠㅁㅠ

이 질문에 댓글 쓰기 :

답변 2

안녕하세요? ^^

 

조금 장황하지만 다음과 같이 따옴표 3개에 대해 설명드릴 수 있겠네요!

 

 

1. 따옴표 3개의 의미

 

파이썬 문자열에서의 줄바꿈은 원칙적으로 이스케이프 코드 \n을 입력하여야 하지만,

 

이렇게 하면 문자열이 너무 길어져서 가독성이 떨어지는 단점이 있습니다 ㅠㅠ

 

이를 보완하기 위해 작은따옴표 또는 큰따옴표 3개를 이용하여

 

여러 줄인 문자열을 입력할 수 있도록 지원하고 있습니다.

 

(따옴표 3개로 여러 줄 주석을 사용할 수도 있지만, 질문하신 주제를 벗어나는 내용입니다 ^^)

 

 

2. 여러 줄 문자열에서 따옴표 3개를 사용하면 줄바꿈이 되는 이유

 

따옴표 3개를 사용하면 줄바꿈할 때의 엔터값 자체가 이스케이프 문자가 됩니다.

 

print()에서 repr()를 이용하면 이스케이프 문자를 그대로 출력할 수 있는데,

 

다음과 같은 스크립트를 실행시켜보면 이를 확인할 수 있어요 ^^

 


string = '''Hello,
World!'''
print(string)
print(repr(string))

 

실행결과:

Hello,
World!
'Hello,\nWorld!'

 

 

3. 따옴표 1개를 사용하여 줄바꿈한 경우에 오류 발생 이유 및 해결방법

 

파이썬의 문법은 상당히 엄격한 편이어서, 원칙적으로 한 구문은 한 줄에 작성하여야 합니다.

 

즉 줄바꿈은 구문의 종료를 의미하며, 다른 언어에서 세미콜론(;)을 사용한 것과 동일합니다.

 


string = 'Hello,
World!'

 

위와 같이 작성한다면, 첫 번째 행은 문자열이 따옴표로 감싸지지 않아서 에러가 발생하고,

 

두 번째 행 또한 문자열이 따옴표로 감싸지지 않아서 에러가 발생할 수밖에 없습니다 ㅠㅠ

 

 

한편 파이썬에서 여러 줄 구문을 작성하려면 \를 이용할 수 있어요!

 

\를 사용하면 그 다음 행이 앞의 행에 연속된 것으로 처리됩니다.

 


string = 'Hello, \
World!'

 

실행결과:

Hello, World!

 

 

궁금한 점이 해소되셨기를 기원합니다 :)

 

그럼 즐거운 주말 되세요 ^^

 

 

+)

위 내용과 관련된 내용을 정리하여 글을 작성하였습니다.

https://studyforus.com/innisfree/810970

a="""파이썬

만세"""

a= "파이썬\n만세" 

이게 같은 효과라고 보시면 될 듯합니다.

자세한 것은 다음을 참고하세요.

https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals

shortstring     ::=  "'" shortstringitem* "'" | '"' shortstringitem* '"'
longstring      ::=  "'''" longstringitem* "'''" | '"""' longstringitem* '"""'
shortstringitem ::=  shortstringchar | stringescapeseq
longstringitem  ::=  longstringchar | stringescapeseq
shortstringchar ::=  <any source character except "\" or newline or the quote>
longstringchar  ::=  <any source character except "\">
답변을 작성하시기 전에 로그인 해주세요.
전체 34
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT