스터디 그룹/ProjectH4C

ProjectH4C 2개월 1주차 과제 C & Python

📖C언어와 Python의 문법적 차이

그냥 코딩도장에서 파이썬과 C언어를 복습해보며 느낀 점이다.

문법적 차이만 적기에는 분량이 많지 않을 것 같아 다른 차이점까지 생각을 해보았다.

 

먼저 가장 체감이 되는것은 딱 두가지라고 생각된다.

 

첫 번째로, C언어에서 세미콜론은 필수지만 Python에서는 그렇지 않다.

C언어에서 세미콜론은 해당 줄의 코드가 끝났다는 것을 명시해주는 역할을 한다.

하지만 파이썬의 경우 한 줄에 여러 코드를 적고자 할 때만 코드를 분리시켜주기 위해 세미콜론을 사용한다.

 

두 번째로 느껴지는 것은 무엇보다 변수이다.

C언어에서는 하나의 변수를 선언할 때 자료형은 무조건 정해진다.

예를 들어 정수형 변수를 하나 선언하고 그 변수에 배열을 넣는다면 그것은 오류가 발생한다.

하지만 파이썬의 경우 자료형이 계속 변할 수 있다. int에서 str로, str에서 list로, dict로, tupple로 ...

이렇게 파이썬에서는 하나의 변수가 다양하게 변할 수 있으므로 자유도가 매우 뛰어난 프로그래밍 언어라고 생각된다.

 

이 두 가지가 가장 체감이 심한 차이점이라고 생각된다.

 

세 번째로 느껴지는 것은 컴파일러와 인터프리터의 차이이다.

c언어는 컴파일 방식이다. 그래서 c언어 코드를 작성하고 난 후 컴파일이라는 과정을 거쳐 한번에 기계어로 번역해 실행파일을

만든다. 그래서 gcc라는 컴파일러를 주로 사용한다. 그래서 파이썬 처럼 셸이 지원되지 않는다.

하지만 파이썬은 인터프리터 방식이다. 내가 한 줄 입력할 때 마다 그 때 그 때 기계어로 번역해서 실행되는 방식이다.

파이썬도 물론 코드를 작성하여 한번에 실행할 수 있지만, 컴파일러와는 다르다.

컴파일러는 말 그대로 그걸 한번에 기계어로 바꿔버리고, 인터프리터는 한 줄 한 줄 바꿔가며 실행이 된다.

 

네 번째로 C는 절자치향, Python은 객체지향이다. 

C는 절차지향이기에 위에서 아래로 내려가는 순서대로만 프로그래밍이 실행된다.

하지만 파이썬의 경우 객체지향이기에, 하나의 모듈을 만들어 재사용할 수 있다. 그래서 여러 군데에서 재사용할 수 있다.

 

다섯 번째로는 C언어는 포인터, Python은 id를 통해 주소를 알아낸다.

C언어에서 포인터는 이해가 된다. 파이썬에서 id도 이해가 가는데 그 id값이 어디에 위치한 주소인지를 모르겠다.

근데 일정 범위 이상을 넘어간 정수에 대해서 id값이 바뀌는 것을 보면 메모리에 위치한 값도 아닌 것 같다.

 

이상.