• 목록
  • 아래로
  • 위로

0f6019e15f1d8ae07e7e8ea16d242676.png.jpg

안녕하세요?

 

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 언어, PHP 또는 Javascript 등을 사용하시는 분들은 구문의 끝에 세미콜론(;)을 붙이는 것에 익숙하시기 때문에

 

파이썬에서 엔터를 입력하면 구문이 나눠지는 것을 어색하게 생각하실 수도 있을 것 같습니다 ^^

 

그런데 파이썬에서도 원칙적으로 엔터로 구문을 분리하는 것이지,

 

결코 세미콜론의 사용을 금지하는 것은 아닙니다 ㅎㄷㄷ

 

예컨대 다음과 같이 세미콜론을 사용하는 것이 문법상 허용됩니다.

 

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에 따르면 이는 권장되지 않는다고 알고 있습니다 :)

 

gamb1t님 gamb1t 포함 3명이 추천

추천인 3

작성자
이니스프리 119 Lv. (0%) 1876250/115200000EXP

당분간 일신상의 사정으로 쪽지나 댓글로 답변을 드리기 어렵습니다. 죄송합니다.

 

CSVpuymXAAAVVpd.jpg

댓글 0

권한이 없습니다.
번호 제목 글쓴이 날짜 조회 수
29 [Python] 그누보드 자동 글 작성 + 멀티 파일 업로드 스크립트 1 image 이니스프리 이니스프리 21.05.16.09:32 23690
28 [Python] GIF 파일에 프로그레스바 삽입하기! (Adding progress bar into GIF) image 이니스프리 이니스프리 22.05.14.13:14 12581
27 [BeautifulSoup] 자식태그를 제거하기 - .decompose() & .extract() 10 image 이니스프리 이니스프리 20.01.16.00:07 9249
26 [Pillow] 파이썬 Pillow 라이브러리를 이용하여 이미지의 배경을 transparent하게 만들기 11 image 이니스프리 이니스프리 19.08.04.13:40 7801
25 [Requests] Selenium을 이용한 Cloudflare의 우회 8 image 이니스프리 이니스프리 20.01.08.19:51 6245
24 [번외편] 네이버 동영상에서 자막을 파일로 추출하는 방법 2 image 이니스프리 이니스프리 19.12.25.22:34 5598
23 22. [OpenPyXL] 엑셀 문서 저장하기 / 시트 추가하기 / 셀에 입력하기 14 image 이니스프리 이니스프리 20.02.02.00:46 5577
22 [Selenium] Requests의 session을 Selenium으로 보내기 image 이니스프리 이니스프리 19.12.07.14:17 4666
21 [Selenium] Selenium에서 send_keys를 막아놓은 경우 해결책 이니스프리 이니스프리 19.07.04.05:52 4342
20 [번외편 - 구글뉴스] 리뉴얼된 구글뉴스에서 RSS 피드를 생성하는 방법 6 image 이니스프리 이니스프리 18.10.07.17:58 3532
19 [번외편 - 유튜브] Youtube API를 이용하거나 또는 이용하지 않고 채널ID를 추출하는 방법 2 image 이니스프리 이니스프리 19.07.16.17:55 2745
18 [번외편 - 아미나] 그누보드/아미나에서 게시글의 날짜를 최종수정일로 변경하고, 목록스킨 및 위젯을 최종수정일 순으로 정렬하기 2 image 이니스프리 이니스프리 18.11.11.22:36 2572
17 1. 반복문 (1) - while 문 7 image 이니스프리 이니스프리 19.12.06.20:50 2501
16 [디지털포렌식전문가] 제21회 필기시험 합격 후기 9 image 이니스프리 이니스프리 23.10.29.16:11 2475
15 6. 리스트와 관련된 기본함수 및 메서드 7 image 이니스프리 이니스프리 19.12.10.21:16 2090
14 [python-telegram-bot] 4096자 글자수 제한을 우회하는 방법 image 이니스프리 이니스프리 20.01.12.11:25 2049
13 [Selenium] proxy를 사용하지 않고 개발자도구에서 Network 탭의 로그를 얻기 image 이니스프리 이니스프리 21.03.06.23:35 1555
12 [Requests-HTML] Requests와 비교할 때의 장점! (네이버 뉴스 등 크롤링) 7 image 이니스프리 이니스프리 20.05.14.19:08 1420
11 [번외편 - 법률] 현행 저작권법 제30조(사적이용을 위한 복제)에 대하여 - 음원 다운로더의 처벌과 관련하여 6 이니스프리 이니스프리 18.12.07.14:16 1313
10 21. [OpenPyXL] 엑셀 문서를 열고 시트에서 셀의 값을 얻기 3 image 이니스프리 이니스프리 20.02.01.23:46 1269