4.3.5. 행(Lines)과 들여쓰기(Indentation)

C와 같은 많은 언어들이 구문이 끝날 때 문장의 뒤에 구문의 종료를 알리는 세미콜론( ; ) 을 적습니다. 하지만 파이썬은 구문이 끝나고 다음 줄로 내려갈 때 세미콜론이 필요 없습니다. 줄이 바뀌면 자동으로 구분이 종료되었음을 인식합니다.

파이썬은 프로그램 코딩을 할 때, 가독성을 위해 들여쓰기를 합니다. 다른 프로그램 언어에서는 중괄호 { } 을 사용하여 영역을 지정하지만 파이썬은 들여쓰기를 사용하여 영역을 지정합니다. 그렇기 때문에 파이썬에서 들여쓰기란 문법적인 강제사항입니다.

들여 쓰기의 공백 수는 가변적이지만 블록 내의 모든 명령문은 동일한 양만큼 들여쓰기가 되어야 합니다. 예를 들어 다음 코드 블록은 정상이지만

if True:
   print "True"
else:
   print "False"

그러나 다음 블록은 오류를 생성합니다.

if True:
print "Answer"
print "True"
else:
print "Answer"
print "False"

들여쓰기의 방법은 한칸, 두칸, 4칸, 탭 등 여러가지 방식이 있습니다. 중요한 것은 같은 블록 내에서는 들여쓰기 칸 수가 같아야 한다는 것입니다. 위반시에는 "IndentationError: unexpected indent"라는 에러를 출력합니다.

다음 예제는 다양한 문장 블록을 가지고 있습니다. 이 시점에서 프로그램 로직을 이해하려고 노력하지 말고 중괄호없이 여러 블록을 이해했는 지만 확인하시기 바란다.

import sys

try:
   # open file stream
   file = open(file_name, "w")
except IOError:
   print "There was an error writing to", file_name
   sys.exit()
print "Enter '", file_finish,
print "' When finished"
while file_text != file_finish:
   file_text = raw_input("Enter text: ")
   if file_text == file_finish:
      # close the file
      file.close
      break
   file.write(file_text)
   file.write("\n")
file.close()
file_name = raw_input("Enter filename: ")
if len(file_name) == 0:
   print "Next time please enter something"
   sys.exit()
try:
   file = open(file_name, "r")
except IOError:
   print "There was an error reading file"
   sys.exit()
file_text = file.read()
file.close()
print file_text

파이썬의 문장은 일반적으로 새로운 라인으로 끝납니다. 그러나 파이썬은 행 연속 문자 (\)를 사용하여 행이 계속 연결된다는 것을 표시합니다. 예를 들어

total = item_one + \
        item_two + \
        item_three

대화식 인터프리터 세션에서 다중 행 문을 종료하려면 빈 행을 입력해야 합니다.

[ ] , { } 또는 ( ) 호 내에 포함된 문은 줄 연속 문자를 사용할 필요가 없습니다. 예를 들어 다음과 같이 대괄호를 사용할 경우 행 연속 문자를 사용할 필요가 없습니다.

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

한 줄에 여러 개의 명령문 입력하려면 세미콜론(;)을 사용합니다. 다음은 세미콜론을 사용하는 샘플입니다.

import sys; x = 'foo'; sys.stdout.write(x + '\n')

단일 코드 블록을 만드는 개별 명령문 그룹을 파이썬에서 스위트(suites)라고 합니다. if, while, def 및 class와 같은 복합 또는 복합 명령문에는 헤더 행과 스위트가 필요합니다.

헤더 행은 명령문을 시작하고 (키워드 사용) 콜론 (:)으로 끝나며 그 뒤에 하나 이상의 행이 따라옵니다. 예를 들어 다음과 같이 코딩합니다.

if expression : 
   suite
elif expression : 
   suite 
else : 
   suite

Last updated