반응형

프로그래밍/python 38

파이썬(python)의 형변환

파이썬의 형 변환은 매우 간단해서 기가 막힐 정도입니다. 수치 형 변환 S='1234' 위 문자열을 정수형으로 바꾸려면 어떻게 할까? Int(s) 문자열은 정수형 모양 이어야 한다. 실수로 바꾸기 Long형으로 바꾸기 암시적 형 변환은 상황에 맞게 허용 자료가 변형되지 않는 범위에서 가능, 예를 들어, int->long은 ok, long->int 안됨, int->float는 ok, float->int 안됨 복소수 형으로 바꾸기 문자열로 변환하기 참고 str대신 repr을 사용해도 되는데, 약간의 차이가 있다 세세한 부분 이므로 패스 리스트를 문자열로 변환하면 단순히 str()을 사용하여 리스트를 문자열로 변환하려고 하면 위 처럼 리스트 모양의 문자열이 생긴다. 각 요소만 뽑아서 문자열을 만들려면 여러 가..

파이썬에서의 얕은복사와 깊은 복사 및 레퍼런스 카운트(Reference Count)

파이썬은 언어 차원으로 포인터를 다루지 않기 때문에, 얕은 복사와 깊은 복사에 대한 언어의 구조적인 이해보다는 사용법을 이해하는 것이 바람직하다 생각한다. C와 C++에 익숙해져서 그런지, 얕은 복사 깊은 복사부분은 감동도 없고 재미도 없었다. 지금은 파이썬을 C/C++ 다음의 써드(third)언어로 택했고 파이썬의 강력함에 기가 찰 때도 있지만, 배우면서 느끼는 심오함은 C/C++에 비할게 아니다. 파이썬은 마치 최신 기술 잡지는 읽는 듯한 느낌이라면 C/C++은 깊이 알면 알수록 철학적 사고를 느끼게 하는 철학공부를 하는 듯한 착각에 빠지는 건 나만일까? 아무튼 파이썬에 대한 글이니 파이썬은 세련된 언어라고 결론 내려야겠군... 얕은 복사와 깊은 복사에 대한 것은 다음 그림 하나로 충분하다고 생각된다..

파이썬(python) 딕셔너리(dictionary)-사전 기초

딕셔너리(Dictionary) 말 그대로 사전, 예를 들어 아주 간단한 사전을 만든다고 생각하면 다음과 같이 만들 수 있다. left:1 center :0 right :2 … :의 왼편의 값은 key :오른편 값은 value라고 한다. 위 출력 결과를 잘 보면 입력한 순서와 다르다는 것을 알 수 있다. 이는 해시(hash)의 특징으로 파이썬의 사전은 해쉬를 이용하는 것을 알 수 있다. 여러 자료형을 키(key)값과 value 값에 넣을 수 있다. 단, 키 값은 고정된 값이므로 리스트나 사전이 올 수 없다. 이유는 해시의 특성상 키 값이 바뀌면, 저장 위치를 새로 바꾸어 주어야 하기 때문에 이 값은 고정 값만 올 수 있는 것이다. value는 다음과 같이 바꿀 수 있다. 다음과 같이 value 값으로 함수..

파이썬(python) 리스트(list), 튜플(tuple) 에 대한 이해

리스트(list) 사용빈도가 높은 녀석이다. 이 녀석은 말 그대로 자료를 리스트화해서 보관한다. 또한 보관 자료형들의 타입들이 달라도 다르지 않아도 상관없다. C언어의 경우는 보통 자료구조에 보관하는 타입이 일정하다. 만약 여러 타입을 위와 같이 보관하려면 void* 타입을 사용해야 할 것이다. 뭐 구현할 수도 있겠지만, 매우 귀찮을 것이다. 기본적으로 C언어는 타입을 체크하는 방법은 없다. 프로그래머가 하나하나 알고 있어야 한다. 타입의 사이즈는 sizeof로 알 수 있지만, 타입을 체크하는 방법은 C11의 _Generic을 이용하는 방법이 있다고 들었는데 사용해 보진 않았다. 정확히 선언된 타입이 아니면 에러를 내 뿜는 C와 달리 파이썬의 이런 유동적인 면은 편하게 보이지만, 잘못된 대입에 관용적이기..

파이썬(python) 내장 자료형(Data Type) 숫자, 문자열

'자료형', 또는 Data type 또는 Type이라고 한다. 파이썬의 자료형은 매우 단순하고 직관적이다_. C언어의Data Type_들은 같은 숫자라 해도 int, short, unsigned int, unsigned short, float, double long….. 등등 메모리를 얼마나 차지하는지 또는 숫자를 어떻게 표현하는지에 따라 세분화 된다. 이런 세분화된 자료형을 잘 사용하면 성능(performance)를 향상시키지만, 잘 못 사용하면 그 반대의 효과 또는 알 수 없는 오작동, 또는 에러가 발생한다. 32비트 시스템과 64비트 시스템의 자료형의 호환성을 위한 매크로 사용은 당신을 멘붕의 세계로 안내한다.(32비트 시스템의 int는 32bit 64비트 시스템에서의 int는 64비..

파이썬 설치와 HelloWorld

그 동안 win32api에 빠져 있느냐 파이썬을 소홀히 했네요. 최근에는 워낙 다양한 언어와 다양한 개발방법이 있고, 예전보다 하드웨어의 성능이 워낙 좋아져서, 완성도 있고 빠른 개발이 빠른 성능보다 더 중요한 위치를 차지하게 되었습니다. 이제 개발 언어는 워낙 다양해지고, 프로그래머들 간 프로그래밍 언어 선호도가 다르기 때문에, 어떤 언어가 좋다 말할 순 없죠. 또 특정 분야에 특화된 언어가 있기 마련이긴 하지만, 하나의 언어가 전체를 아우를 수 없는 시대가 왔습니다. 결국 하나의 언어로는 먹고 살기 힘들죠? ㅎㅎ 아무튼 파이썬을 공부할수록 파이썬은 참 기능이 많은 언어라 생각합니다. 그리고 문법도 직관적이기 때문에, 배우기 쉽다고도 합니다. 근데 배우기 쉽다는 부분은 개인적으로는 동의하지 않습니다. ..

파이썬(python) 강좌를 시작하며

파이썬(python)에 대한 자료를 찾는 중 C나 C++ 문법과 비교를 한 자료가 없는 듯 하여, 필자 본인이 파이썬(python)과 C/C++을 비교해 나가며 정리하려 합니다. 나의 베이스 언어는? 우선 시작에 앞서 식상한 이야기지만 모든 언어의 기본은 C/C++이라고 생각하며, 그 생각은 변함이 없습니다. 자신의 기본 베이스 언어를 무엇으로 택하는가 결정하는 것은 중요합니다. 저는 C를 감히 추천 드립니다. C/C++을 추천하는 이유는 다음과 같습니다. 처음 배우기는 어렵지만, C를 어느 정도 다룰 줄 알면 다른 언어들을 쉽게 이해할 수 있고, 빠른 시간 내에 익힐 수 있다. 하지만, 취미로 택한다면 베이스로 python의 선택도 나쁘지 않다고 생각합니다. C언어/C++언어의 기본 문법을 익히는 데는..

반응형