행의 분리 및 결합 / 멀티라인 문자열 정보
행의 분리 및 결합 / 멀티라인 문자열본문
안녕하세요?
https://sir.kr/qa/409006 에 대한 답변을 좀 더 보완해서 이 글을 작성합니다.
파이썬은 대체로 문법이 엄격한 언어로 평가되지만,
(1) 행의 분리 및 결합, (2) 여러 줄 문자열 등을 통하여 보다 유연한 표현을 허용하고 있습니다 ^^
'행의 분리 및 결합' 또는 '여러 줄 문자열'이란 것이 용어만 놓고보면 거창하지만,
파이썬의 기본적인 문법이어서 다들 이미 숙지하고 계실거에요 :)
1. 행 분리
파이썬의 문법상 원칙적으로 한 구문은 한 개의 행에 작성하여야 합니다.
즉 줄바꿈은 구문의 종료를 의미하며, 다른 언어에서 세미콜론(;)을 사용한 것과 동일합니다.
string = 'Hello,
World!'
만약 위와 같이 작성한다면, 첫 번째 행은 문자열이 따옴표로 감싸지지 않아서 에러가 발생하고,
두 번째 행 또한 문자열이 따옴표로 감싸지지 않아서 에러가 발생할 수밖에 없습니다 ㅠㅠ
그렇다면 파이썬에서는 여러 줄 구문을 작성할 수 없을까요??
\를 이용하여 여러 줄 구문을 작성할 수 있습니다!
다음과 같이 \를 사용하면 그 다음 행이 앞의 행에 연속된 것으로 처리됩니다.
string = 'Hello, \
World!'
실행결과:
Hello, World!
그런데 예외적으로 괄호를 사용하는 경우에는 굳이 \를 붙이지 않고서도 여러 줄 구문을 사용할 수 있어요 ^^
참고로 이 경우에는 파이썬의 일반적인 들여쓰기 규칙의 적용을 받지 않습니다.
sum = (1 + 2 + 3 +
4 + 5 + 6)
이는 함수의 파라미터를 여러 개 사용하는 경우에도 마찬가지로 허용됩니다!
print('Hello, world!',
end='')
그리고 나름 유용하게 활용할 수 있는 다음과 같은 용법도 가능합니다 :)
print('Hello, '
'world!')
실행결과:
Hello, world!
2. 행 결합
C나 Java 등을 주로 사용하시는 분들은 구문의 끝에 세미콜론(;)을 붙이는 것에 익숙하시기 때문에
파이썬에서 엔터를 입력하면 구문이 나눠지는 것을 어색하게 생각하실 수도 있을 것 같습니다 ^^
그런데 파이썬에서도 원칙적으로 엔터로 구문을 분리하는 것이지,
결코 세미콜론의 사용을 금지하는 것은 아닙니다 ㅎㄷㄷ
예컨대 다음과 같이 구문의 끝에 세미콜론을 사용하는 것을 허용하고 있습니다.
print('Hello, world!');
더 나아가 다음과 같이 '행의 결합'을 하는 것도 허용됩니다 ^^
print('Hello, ', end = ''); print('world!', end = '');
실행결과:
Hello, world!
3. 멀티라인 문자열
파이썬 문자열에서의 줄바꿈은 원칙적으로 개행을 위한 이스케이프 코드 \n을 입력하여야 하지만,
이러한 방식은 문자열이 매우 길어지는 경우에 가독성이 떨어진다는 단점이 있습니다 ㅠㅠ
파이썬에서는 이를 보완하기 위해 작은따옴표 또는 큰따옴표 3개를 이용하여
다음과 같이 여러 줄인 문자열을 입력할 수 있도록 지원하고 있습니다.
string = """Hello,
world!"""
print(string)
실행결과:
Hello,
world!
멀티라인 문자열과 앞서 살펴 본 행 분리를 결합하여 사용할 수도 있습니다.
따라서 다음 두 스크립트의 결과는 동일하게 되죠 ^^
print('''Goodbye
Yellow
Brick
Road''')
print('''\
Goodbye
Yellow
Brick
Road\
''')
한편 따옴표 3개를 이용하여 여러 줄을 주석 처리할 수도 있는데,
실무적으로도 많이 사용되는 방식이지만, PEP8에 따르면 이는 권장되지 않는다고 알고 있습니다 :)
그럼 다들 좋은 주말 저녁 되세요!
SIR 회원님들께 항상 감사드립니다~ ^-^
!-->!-->!-->!-->!-->!-->!-->!-->!-->!-->1
댓글 0개