3장: 들여쓰기

파이썬에서는 들여쓰기가 매우 중요합니다. 들여쓰기는 코드 블록을 구분하는 데 사용되며, 들여쓰기 방식이 잘못되면 문법 오류가 발생합니다. 이 장에서는 들여쓰기의 중요성과 올바른 사용법에 대해 알아보겠습니다.


#### 3.1 들여쓰기의 중요성


파이썬은 들여쓰기를 통해 코드 블록을 구분합니다. 이는 다른 프로그래밍 언어에서 사용하는 중괄호({})나 세미콜론(;) 대신에 사용되며, 가독성을 높이는 데 큰 도움이 됩니다. 들여쓰기를 제대로 하지 않으면 코드가 실행되지 않거나 예상치 못한 결과를 초래할 수 있습니다.


#### 3.2 들여쓰기의 기본 규칙


파이썬에서는 들여쓰기를 할 때 일반적으로 공백(space) 4칸을 사용합니다. 탭(tab)을 사용할 수도 있지만, 공백과 탭을 혼용해서는 안 됩니다. 들여쓰기의 깊이는 코드의 논리 구조를 반영해야 합니다.


```python

# 올바른 들여쓰기 예제

a = 10

if a > 5:

    print("a는 5보다 큽니다.")

    if a > 8:

        print("a는 8보다 큽니다.")

    else:

        print("a는 8보다 작거나 같습니다.")

else:

    print("a는 5보다 작거나 같습니다.")

```


#### 3.3 들여쓰기 오류


들여쓰기를 잘못하면 파이썬 인터프리터는 `IndentationError`를 발생시킵니다. 이는 코드 블록의 들여쓰기가 일관되지 않거나 잘못된 경우에 발생합니다.


```python

# 들여쓰기 오류 예제

a = 10

if a > 5:

print("a는 5보다 큽니다.")  # IndentationError 발생

```


위 코드에서는 `print` 문이 들여쓰기가 되어 있지 않아 `IndentationError`가 발생합니다. 이 오류를 수정하려면 다음과 같이 들여쓰기를 올바르게 해줘야 합니다.


```python

# 들여쓰기 오류 수정

a = 10

if a > 5:

    print("a는 5보다 큽니다.")

```


#### 3.4 블록 들여쓰기


파이썬에서 조건문, 반복문, 함수, 클래스 등의 코드 블록은 모두 들여쓰기를 통해 구분됩니다. 예를 들어, 조건문 내부의 코드 블록은 조건이 참일 때 실행될 코드이며, 들여쓰기로 구분됩니다.


```python

# 조건문 들여쓰기 예제

a = 10

if a > 5:

    print("a는 5보다 큽니다.")

else:

    print("a는 5보다 작거나 같습니다.")

```


반복문 내부의 코드 블록도 동일하게 들여쓰기로 구분됩니다.


```python

# 반복문 들여쓰기 예제

for i in range(5):

    print(i)

    if i % 2 == 0:

        print(f"{i}는 짝수입니다.")

    else:

        print(f"{i}는 홀수입니다.")

```


#### 3.5 함수와 클래스의 들여쓰기


함수와 클래스 내부의 코드 블록도 들여쓰기로 구분됩니다. 함수는 `def` 키워드를 사용하여 정의되며, 함수 내부의 코드는 들여쓰기를 통해 구분됩니다.


```python

# 함수 들여쓰기 예제

def greet(name):

    print(f"안녕하세요, {name}님!")


greet("Python")

```


클래스는 `class` 키워드를 사용하여 정의되며, 클래스 내부의 메서드와 속성도 들여쓰기를 통해 구분됩니다.


```python

# 클래스 들여쓰기 예제

class Person:

    def __init__(self, name, age):

        self.name = name

        self.age = age

    

    def greet(self):

        print(f"안녕하세요, {self.name}님! 나이는 {self.age}살 입니다.")


person = Person("Python", 30)

person.greet()

```


이상으로, 파이썬의 들여쓰기와 관련된 내용을 마치겠습니다. 다음 장에서는 주석 및 문서화에 대해 더 자세히 알아보겠습니다. 질문이나 요청사항이 있으시면 댓글로 남겨주세요!


---


이 글의 내용은 GoalKicker.com의 Python Notes for Professionals 책을 참조하였습니다.

댓글