python 프로그래밍 시작 (1)

     



새로운 프로그래밍 언어가 계속해서 출시되고 있고, 프로그래밍의 형태가 바뀌고 있다.

최근에는 파이썬, 고, 스칼라와 같은 신규 프로그래밍 언어가 조명받고 있는데, 최신 언어의 트랜드는 '생산성' 인것 같다.

프로그래밍 언어가 특정한 로직을 구현하기 위한 수단일 뿐이라고 생각하고 있지만, 같은 로직을 구현하더라도 조금 더 편한 언어가 있는 것은 사실이다. 이것을 프로그래밍 쪽에서는 생산성이라고 표현한다.


내가 기본적으로 가장 많이 사용한는 언어는 C이다. 아무래도 회사에서 하는일이 서버이다 보니 리눅스 터미널에서 vi를 이용해 C언어를 사용한다. vi도 강력한 툴이기는 하지만 다른 개발툴에 비하면 생산성에서 모자란게 사실이다. 자동 완성이나 마우스를 이용하지 못하는 등 불편한게 상당히 많지만, 많이 사용하다보니 그거는 그거대로 편한 상태이다. 


업무 외로 하는 언어로는 JAVA, 안드로이드, PHP, objective-C, swift 등이 있다. 아무래도 모바일 개발에 관심이 많기 때문에 모바일에서 사용되는 언어를 주로 사용했다. 모바일쪽 개발을 할때는 서버쪽 언어는 PHP를 사용해서 만들었는데, node.js도 공부해 보려고 했지만 뭔가 스크립트언어에 거부감이 들고 있다. (이유는 모름 ㅋ)


지금도 업무적으로나 업무외로나 사용하는 언어가 매우 많지만, 새로운 언어를 배우고싶은 욕심은 항상 생긴다. 최근에는 고 아니면 파이썬을 공부해보고 싶었는데, 회사에서 진행하는 학습조직을 계기로 파이썬을 시작하게 되었다.


일단 기본적인 문법을 익히기 위해 서적을 찾아보았는데, 개인적으로 좋아하는 책 시리즈인 Do it!을 구매하게 되었다.




개발환경은 사용하는 PC는 MAC이고 Linux가 편하다보니 그냥 Linux위에서 하기로 했다.

기본적으로  Linux에는 파이썬이 설치되어 있다. 


터미널에서 python -V를 치면 버전정보가 나온다.


공식 홈페이지에서 파이썬을 다운로드 할때 3.x.x와 2.x.x를 선택할 수 있는데, 두 버전의 큰 차이가 있어서 두개를 혼용하여 사용하는 것 같다. 일단 내 맥에 설치된 것은 2버전 대이고, 나스에 설치되어있는 파이썬도 2버전대여서 2버전대를 사용하기로 했다. (Do it은 3버전대를 사용하고 있지만 2버전과 차이점을 지적해주고 있기 때문에 보는데 무리가 없었다.) 


일단 파이썬으로 코딩을 해보는건 두 가지 방법이 있다. 인터프리터를 사용해 대화형으로 코딩하는 법과 에디터를 이용해 코딩하는법이 있는데, 인터프리터의 경우 한줄 한줄 대화형으로 코드를 입력하면 바로바로 답이 나오는 형식이다. 내가 해본 것중에 비슷한 것은.. 매트랩? 과 비슷했다. 물론 일반적인 코딩형식인 에디터를 이용해 코딩하고 컴파일 하는 방법도 있다. vi를 사용할까 고민했지만, sublime text에서도 파이썬을 지원하기 때문에 sublime text를 실행했다.


3시간 정도를 Do it책을 보며 기본적인 문법을 공부했는데, 일단 기본적인 언어들(C나 JAVA)와 비슷한 형식이다. (모든 프로그래밍 언어가 비슷하겠지만..)

그렇다고 완전 똑같은건 아니다. 가장 큰 차이점은 변수타입을 선언하지 않는 점과 세미콜론을 찍지 않는점. 들여쓰기를 꼭 해야되는점. 조건문과 반복문을 사용하는법..? 배열(리스트)를 관리하는법. 등등 기존 언어와 다른점이 존재하는데, 기존에 사용하는 언어보다 간결하게 표현하여 같은 기능을 사용 할 수 있는 점이 편리했다.


예를 들어 다음과 같이 간단하게 더하기 연산을 할 수 있다.



위는 인터프리터를 사용해터미널에서 코딩한 것이다. 변수 타입 선언부분이 없는 것이 눈에 띈다.



예제로 많이 나오는 별 찍기도 한번 작성해 보았다. for문에 다른 언어와 같이 {}가 없는 것을 볼 수 있는데, 들여쓰기를 기준으로 for문안에 포함된 코드인지 아닌지 판단하게 된다. 공백 4개를 쓰거나 탭을 누르면 되는데 공백4개가 대세라고 한다(사실 둘다 똑같은 기능이기는 하지만 커뮤니티에서 의견이 분분하다)


python이 편리하다고 생각한것은 함수를 만들때도 느꼈다. C에서 함수를 만들때 입력받는 인자값들을 const-상수 처리하는 경우가 많다. 일반적으로 특정한 값을 받아서 처리하는 함수들은 입력받는 값을 바꾸면 안된다는 것이 일반적인 논리인데 일일이 const함수를 사용해 상수로 만들지 않아도 python에서는 자동으로 상수처리를 하게 된다. 아래는 여러값을 입력받아 합을 출력하는 함수를 만든것이다.



일단 인자값으로 *arg를 받는다. 뭔가 C의 포인터처럼 생겼다. 받는 값의 수가 일정하지 않을때 위와 같이 *을 사용해서 쓸수있고, 파이썬에서 자동으로 튜플로 만들어준다. 튜플은 리스트와 비슷한 자료형인데 C에서 배열과 비슷하다. 단 상수이기 때문에 수정하는것이 불가능한 배열이다. 즉 자동으로 const로 만들어 주는 것이다


파이썬에서 파일 입출력은 C랑 거의 비슷했다. 하지만 한가지 새로운 점은 파일을 일일이 닫지 않아도 자동으로 닫게해주는  with 문이다.



위와같이 파일을 읽을 때 with문을 앞에 사용한다면, with문이 끝날 때 자동으로 파일을 닫아준다.(f.close)



반응형

댓글

Designed by JB FACTORY