본문 바로가기

반응형

진리는어디에

(291)
[Python] 변수 #6 mutable vs immutable 변수 이번 포스트에서는 파이썬의 mutable변수와 immutable변수에 대해 알아 보도록 하겠다. 어렵지 않은 내용이지만 제대로 이해하지 못하면 버그를 양산 할 수 있으므로 꼭 이해하고 넘어가도록 하자(관련 버그에 대한 내용은 [여기]에서 자세하게 다루고 있다). 최소한 mutable은 "변경이 가능한 것", immutable은 "변경이 불가능한 것" 만큼이라도 알고 다음으로 넘어 가도록 하자. 이번 포스트를 이해하기 위해서는 파이썬의 변수란 '메모리 어딘가에 값을 가지고 있는 값 객체'를 가리키고 있는 참조자라는 것을 먼저 이해하고 있어야 한다. 모른다면 먼저 [여기]를 살펴 보고 오도록 하자. 목차 파이썬 변수의 소개 변수의 타입 변수의 다양한 정보 확인 ctype 모듈을 활용한 변수의 정보 확인 ==..
[Python] 변수 #5 == 와 is 연산자 필자가 처음 파이썬을 시작 할 때 == 와 is 연산자의 차이를 알지 못하고 그냥 같은 역할을 하는 연산자인데 코드 가독성을 위해 is라는 것을 추가했나 보다라고 짐작하고 개발을하다 버그를 만들어 한참을 고생한 적이 있다. 이번 포스트는 이 두 연산자의 차이에 대해 알아 보도록하겠다. 이번 포스트를 이해하기 위해서는 파이썬의 변수란 '메모리 어딘가에 값을 가지고 있는 값 객체'를 가리키고 있는 참조자라는 것을 먼저 이해하고 있어야 한다. 모른다면 먼저 [여기]를 통해 살펴 보고 오도록 하자. 목차 파이썬 변수의 소개 변수의 타입 변수의 다양한 정보 확인 ctype 모듈을 활용한 변수의 정보 확인 >> == 와 is 연산자 mutable 변수와 immutable 변수 변수의 삭제 파이썬 정수는 Overfl..
[Python] 파이썬 기초부터 시작하기 - Coding Style 이번 포스트에서는 다른 프로그래밍 언어와는 사뭇 다른 파이썬만의 코딩 스타일에 대해 살펴 보겠다. 가벼운 마음으로 머리 식힐겸 한번 읽어 보면 되는 내용이다. 파이썬에는 ++연산자가 없다 n = 10 n = n + 1 n += 1 ++n # 버그. 파이썬은 ++연산자가 없다 정수를 1씩 증가 할 때, C/C++, C#, Java에서는 ++ 연산자를 이용해 간단하게 증가 시킬 수 있지만 파이썬에는 ++연산자가 없기 때문에, 1씩 증가하는 코드를 작성하려면 위 예제의 2 또는 3라인 처럼 작성해야 한다. ++ 로 작성된 코드는 단순히 +연산자를 두번쓴것으로 인식하고 아무것도 하지 않는다. 에러도 발생 시키지 않는 무의미한 코드이므로 버그를 유발 할 수 있으니 파이썬에서는 ++연산자는 사용하지 말도록 한다. ..
[Python] 변수 #3 변수의 다양한 정보 확인 이번 포스트는 [Python] 파이썬 기초부터 시작하기 - 변수에서 연장 되는 잠시 쉬어가는 페이지 정도로 생각하면 된다. 알면 좋지만 모른다고해서 당장 문제 될것은 없으니 이런 것들이 있구나하는 마음으로 가볍에 읽고 나중에 필요 할 때 다시 와서 찾아 보면 된다. 목차 파이썬 변수의 소개 변수의 타입 >> 변수의 다양한 정보 확인 ctype 모듈을 활용한 변수의 정보 확인 == 와 is 연산자 mutable 변수와 immutable 변수 변수의 삭제 파이썬 정수는 Overflow가 없다? 들어가기 전에 이전 [Python] 파이썬 기초부터 시작하기 - 변수에서 파이썬 변수는 값 자체를 가지고 있는 것이 아니라, 메모리 어딘가에 생성 되어 있는 값을 가진 객체를 참조하는 참조자라고 이야기 했다. 여기서 ..
[Python] 변수 #1 소개 이번 포스트에서는 파이썬 언어의 변수에 대해 살펴 보도록 한다. 간단하게 변수의 선언과 사용에서 시작하여 변수의 메모리 구조와 형태에 대해 좀더 깊게 알아 보도록 할 것이다. 목차 >> 파이썬 변수의 소개 변수의 타입 변수의 다양한 정보 확인 ctype 모듈을 활용한 변수의 정보 확인 == 와 is 연산자 mutable 변수와 immutable 변수 변수의 삭제 파이썬 정수는 Overflow가 없다? 파이썬 변수의 선언과 사용 프로그래밍 언어에서 "변수"란 정보를 저장할 수 있는 공간(메모리)에 이름을 붙인 것이다. 메모리에 우리가 프로그래밍에서 사용하는 값을 저장하고 변수의 선언 시 붙여준 이름을 통해 그 값에 접근하여 읽고 쓸 수 있도록 해준다. C/C++, C#, Java와 같은 언어와는 다르게 파..
[Python] 파이썬 기초부터 시작하기 - Overview 이번 포스트는 파이썬 프로그래밍 언어를 배우는데 있어 기본중의 기본을 다룬다. 완벽하게 이해하려는 자세보다는 파이썬에는 이런 것들이 있구나 하는 정도의 가벼운 마음으로 읽고 넘어가면 된다. 두번 볼것도 없다. 한번 봤는데 이해가 안된다고해도 그냥 넘어가도록 한다. 자세한 사항은 이어지는 포스트들을 통해 자세히 알려드릴 것이며 중요하게 이해해야 하는 부분들은 중요하다고 따로 언급을 할 것이다. 본 포스트의 제일 마지막 [부록1. 같이 보면 좋은 글]에서 각 항목들을 자세히 다룬 포스트들의 링크를 준비 했으니 잘 활용하도록 하자. 파이썬 설치 본 튜토리얼을 수행하기 전 가장 먼저 해야 할 일은 파이썬을 설치하는 것이다. 파이썬은 파이썬 공식 홈페이지[여기]의 Download 페이지에서 각자의 OS에 맞는 파..
[C++] std::priority_queue 다익스트라 알고리즘을 구현하다 우선 순위 큐가 필요해 만들다 보니 C++에서 이미 표준 라이브러리로 priority queue를 제공하고 있음을 이제야 알게 되어 포스트를 작성한다. 우선 순위 큐는 일반 큐의 기능에 추가하여 엘리먼트가 삽입될때 마다 값(우선순위가)이 가장 큰(또는 가장 작은) 엘리먼트를 큐의 가장 앞에 위치한다. 이를 이용하여 우선 순위가 높은 작업을 먼저 처리 한다던지의 적용이 가능하다. 다익스트라 알고리즘에서는 오름차순으로 정렬하도록하여 가장 거리가 가까운 노드들을 먼저 방문하는데 사용 할 수 있다. std::priority_queue #include template< class T, class Container = std::vector, class Compare = std::les..
다익스트라(Dijkstra) 알고리즘 안 가본 노드 중에 가장 빨리 갈 수 있는 노드에 가서 거리 기록하는 일을 반복 #include #include #include #include constexpr int VERTEX_COUNT = 5; constexpr int distances[5][5] = { { 0,-1, 6, 6,-1}, { 3, 0,-1,-1,-1}, {-1,-1, 0, 2,-1}, {-1, 1, 1, 0,-1}, {-1, 4,-1, 2, 0}, }; /* constexpr int VERTEX_COUNT = 6; constexpr int distances[VERTEX_COUNT][VERTEX_COUNT] = { { 0, 2, 5, 1,-1,-1}, { 2, 0, 3, 2,-1,-1}, { 5, 3, 0, 3, 1, 5}, { 1,..
[VBA] csv 임포트 지난 포스트에서는 엑셀의 워크시트들을 각각의 csv 파일로 내보내는 방법에 대해 살펴 보았습니다. [여기] 이번 포스트에서는 csv파일을 엑셀의 워크시트로 읽어오는(import) VBA 스크립트를 살펴 보도록 하겠습니다. VBA 스크립트 - import csv Alt + F11로 VBAProject 창을 띄웁니다. '모듈 > 삽입 > 모듈' 을 선택해 프로젝트에 모듈을 추가 합니다 모듈의 이름을 'Import'로 변경합니다. 원하신다면 다른 이름으로 해도 상관 없습니다. ※ 이름을 변경하기 위해 F2를 눌러도 아무런 소용이 없습니다. 추가 하신 모듈을 선택 하고 속성창에서 직접 변경 해줘야 합니다. 아래 코드를 복사해서 붙여 넣습니다. Sub OpenDialog() Dim fd As FileDialog ..
[C++] 윈도우 콘솔에서 UTF-8 출력하기 들어가며 C++을 이용해서 UTF-8로 인코딩된 파일의 내용을 읽어와 콘솔창에 출력 할 때, 특히 윈도우의 경우 '?쒓??뚯뒪?' 처럼 텍스트가 깨져서 콘솔에 출력 된다. 기본적으로 유닉스 베이스 OS 콘솔은 코드페이지가 UTF-8을 지원하지만, 윈도우 콘솔은 기본 아스키 코드 페이지이기 때문에 SetConsoleOutputCP 함수를 이용해 프로그램과 연결된 콘솔의 코드페이지를 변경해주어야 한다. ※ SetConsoleOutputCP함수의 보다 자세한 사항은 [여기]를 참고하자. Example 아래는 '한글테스트'라고 적혀 있는 utf-8로 인코딩 된 파일을 읽어와 출력하는 예제다. NOTE : 티스토리 코드 블록 버그인지 아래 코드를 그대로 복붙해서 빌드하면 컴파일 에러가 발생하므로 첨부 파일을 다운..

반응형