◽ Python

[Python] IndentationError, 들여쓰기와 동적 타입 개념 정리


IndentationError

  파이썬에서 들여쓰기를 제대로하지 않으면, IndentationError가 발생한다. 자바에서는 들여쓰기를 마음대로해도 grammar에 문제가 없었는데, python에서는 그렇지 않다. 그래서 이러한 문법들을 조금씩 이 글에서 정리하려고 한다.


 

1. 들여쓰기가 코드에서 어떻게 사용되나?

  코드를 보는 것이 가장 직관적이지 싶다. [아래 코드 참고]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 조건문
if 조건식:
    # 조건식이 참(True)인 경우 실행되는 코드 블록
else:
    # 조건식이 거짓(False)인 경우 실행되는 코드 블록
 
# for문
for 변수 in 리스트:
    # 실행할 코드 블록
 
# while문
while 조건식:
    # 실행할 코드 블록
 
# 함수 정의
def 함수명(매개변수):
    # 함수 본문
 
# 클래스 정의
class 클래스명:
    # 클래스 멤버 정의
 
cs

  클래스를 조금 더 자세히 보자면, 아래를 참고

1
2
3
4
5
6
7
8
9
class Dog:
    def __init__(self, name):
        self.name = name
 
    def bark(self):
        print("멍멍")
 
my_dog = Dog("댕댕이")
my_dog.bark()
cs

 

 

 

2. 동적 타입

  자바에서도 11버전부터 var라는 동적 타입을 지원하는데, 파이썬에서는 기본적인 철학이 동적 타이핑으로 되어있다. 하지만, 자바에서는 var로 선언하면 위에서 결정된 타입은 다시 변경이 되지 않지만 파이썬에서는 가능하다. 물론 자바에서도 최상위 클래스인 Object를 사용하면 동적으로 가능하긴 하다.

 

먼저 자바 샘플 코드를 보면, 

1
2
3
4
5
6
7
8
9
10
11
# 가능함
Object dynamicVariable = "This is a dynamic variable";
        System.out.println(dynamicVariable);
        dynamicVariable = 123;
        System.out.println(dynamicVariable);
 
# 컴파일 오류 남. 
var dynamicVariable = "This is a dynamic variable";
        System.out.println(dynamicVariable);
        dynamicVariable = 123;
        System.out.println(dynamicVariable);
cs

 

그리고 파이썬의 샘플 코드를 보면,

1
2
3
4
dynamic_variable = "This is a dynamic variable"
print(dynamic_variable)
dynamic_variable = 123
print(dynamic_variable)
cs

 

 


참고 :

- http://pythonstudy.xyz/python/article/6-Python-%EC%BD%94%EB%94%A9%EC%9D%98-%EA%B8%B0%EC%B4%88


 

푸터바