변수, 상수, 리터럴
·
dev/python
파이썬은 모든 것이 객체로 이루어져 있다. 그렇다면 변수는 파이썬의 객체에 이름표, 포스트잇 정도로 생각하면 된다. a = 10이라고 했다가 다음 줄에 a = "hi"라고 적어도 돌아가는 것을 다들 경험해봤을테니까 그 정도로 생각하면 될 듯하다. 이를 컴퓨터 메모리 관점에서 본다면 a는 10이라는 데이터를 지닌 메모리를 참조했다가 포스트잇을 떼서 "hi"라는 데이터를 지닌 메모리로 옮겨갔다고 볼 수 있다. 파이썬에서 상수는 지원하지 않고 모듈로써 지원은 하다만 사실 완벽하게 구현되어 있지 않다. 여튼, 상수는 위에서 보았던 메모리 이동을 막아놓은 경우로 상수를 만들면 메모리를 변경할 수 없게 된다. 그렇다면 리터럴은 무엇일까? 리터럴이란 메모리 위치 안에 해당하는 그 데이터 값 자체(literally란 ..
강타입과 약타입
·
dev/python
파이썬은 강타입(strong type)언어이다. 정의를 설명하기 앞서 간단한 예시를 들겠다. 약타입 언어로 예부터 들자면 javascript가 있는데 좀 속된 표현으로 말하자면 개떡같이 말해도 찰떡같이 알아듣는게 약타입이다. 가령 이런 거... javascript에서는 1 + '1'이라 하면 알아서 11로 바꿔준다. 하지만 파이썬에서 저렇게 하면 절대 할 수 없다고 뜬다. 강타입의 정의란 객체의 타입을 바꿀 수 없는 것이다. 심지어 그 값이 가변인 경우에도 타입을 바꿀 수 없다. 따라서 위와 같은 표현을 하기 위해서는 파이썬에서는 명시적으로 적어줘야 한다. 파이썬에서 str(1) + '1'이런 식으로 적어주면 11이라 반환할 것이다. 반면 자바스크립트는 명시적으로 말 안해줘도 눈치껏 바꿔주는 약타입이라 ..
정적언어와 동적언어
·
dev/python
c나 java같은 언어를 보면 javascript와 python과는 다른 점을 확인할 수 있다. c의 경우 정수형 변수를 선언할 때 int count = 10; 이런 식으로 선언하는 것과는 다르게 javascript의 경우 var count = 10; python의 경우 count = 10 이런 식으로 선언을 한다. c나 java의 경우는 compile을 할 때 해당 변수의 타입이 정해져 버린다. 따라서 나중에 count = "hello world!" 와 같은 문구를 적으면 에러 메세지를 뿜어낸다. 반면에 동적 언어(스크립트 언어라고도 함)의 경우 10이라 적으면 int로 10.이라 적으면 float형으로 알아서 interpreter가 타입을 바꿔준다. 이런 과정들이 (런타임 시에)파일이 실행되면서 진행..
파이썬 정리해볼려고
·
dev/python
앞으로 살면서 파이썬은 일단 많이 사용할 것 같은데 파이썬 언어에 대한 이해가 깊지 않은 것 같다는 생각이 든다. 정적 언어니 동적 언어니 iterator니 generator니 comprehension같은 거나 regular expression같은 단어를 최근에야 알게 된 게 내 자신이 조금 실망스러워서 옛날에 고3 졸업하고 교보문고에 가서 샀던 책을 매일매일 조금씩 정리할까보다. http://www.yes24.com/Product/Goods/29289816 처음 시작하는 파이썬 - YES24 파이썬으로 프로그래밍에 입문하자!데이터 분석, 금융, 자연 과학 등 다양한 분야에서 각광받는 언어 파이썬. 개발자가 아니더라도 개발자가 되고 싶다면, 개발자지만 파이썬을 처음 시작한다 www.yes24.com 책은..