Anaconda 또는 miniconda를 활용해 가상 환경을 생성하고 활용하는 것은 파이썬 프로젝트 작업에서 매우 중요하다. 파이썬 버전에 따라 사용되는 패키지 버전이 다르고 일부 문법이 다르기 때문에 버전을 통일한 상태에서 협업을 해야 코드가 뒤엉키는 일이 없다. 예전에 가상 환경 없이 2개의 프로젝트를 진행하다 버전이 엉켜서 양쪽 다 정상적으로 작동하지 않는 일이 발생했었다. Anaconda | The World's Most Popular Data Science Platform Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open sou..
구조체 재정의 struct만을 활용해 구조체를 정의할 수 있지만 typedef를 활용하면 구조체를 데이터 타입과 같이 활용할 수 있다. // typedef struct (구조체_이름) { 구조체_필드 } 구조체_자료형_이름; typedef struct { int num; char string[5]; } NewStruct; int main(void) { NewStruct var; return 0; } 구조체 포인터 #include #include typedef struct { int x; int y; } Point; void InitStruct(Point*); int main(void) { Point* p = (Point*) malloc(sizeof * p); if (p == NULL) return -1;..
현재 대부분의 Python 코드는 표준적으로 3.6 이상의 버전을 사용하지만 간혹 2.x 버전의 코드를 읽어야 하는 상황이 생겨 일부 변경 사항을 정리해 보았다. 이곳에 작성되지 않은 변경 사항은 공식문서에서 확인할 수 있다. Python 2.7 실습: https://workat.tech/ide/online-python2-compiler 문자(열) 2.x: ASCII 3.x: UTF-8 2.x에서 UTF-8으로 인코딩하기 위해서는 아래 주석을 소스 코드 첫 줄에 작성해야 했다. # -*- coding: utf-8 -*- 2.x의 unicode 자료형(u'...')은 3.x에서 binary(b'...')가 되었다. 그리고 str과 binary를 섞어서 사용할 수 없다. 숫자 # 2.x >>> 3 / 2 1..
포인터(Pointer)는 주소값을 저장하는 변수이다. char var = 'A'; 만약 var이라는 변수에 'A'가 저장되어 있다면 var이라는 변수명을 통해 데이터에 접근할 수 있다. 하지만 var 대신 다른 변수에 주소값을 저장하고 사용할 수도 있다. 만약 var이 메모리 100번째에 저장되어 있다면 포인터는 100이라는 주소값을 가지고 있는 것이다. 그리고 이러한 포인터의 주소값을 활용해 해당 변수에 접근할 수 있다. 포인터 선언 // 데이터_자료형* 변수명; char* pointer; char *pointer; char *p1, *p2; 포인터를 선언하기 위해서는 포인터가 가르킬 값의 자료형을 선언해 주어야 한다. 그리고 *을 붙이면 포인터를 선언할 수 있게 된다. *의 위치는 자료형 뒤에 붙이거..
Python 3.10이 업데이트되면서 변화되거나 추가된 사항들이 있다. 공식문서: https://www.python.org/downloads/release/python-3100/ match / case 패턴 매칭은 C 언어에서 제공하는 switch/case 문과 유사하다. 하지만 패턴이 일치하면 해당 구문을 실행한 후, break 없이도 match문을 빠져나간다. a = 50 match a: case 50: print("50") case 100: print("100") case _: print("Nothing") # Output: 50 마지막 case _ 는 일치하는 값이 없을 때, 실행하는 구문이다. 만약 case _ 를 선언하지 않으면 아무 실행 없이 match 문을 종료한다. num = 1, 2 m..
C 언어의 문자열은 char의 배열로 이루어진다. 그리고 배열의 끝은 '\0'(NUL)로 끝난다. "DeneV" {'D', 'e', 'n', 'e', 'V', '\0'} "DeneV"라는 문자열은 "DeneV\0"로 구성되어 있기 때문에 6 Byte의 크기를 가진다. 선언 char str[] = {'D', 'e', 'n', 'e', 'V', '\0'}; char str[] = "DeneV"; char str[5] = "DeneV"; // 주의 char str[5] = "abc"; // {'a', 'b', 'c', '\0', '\0'} 배열과 같은 방식으로 선언하거나 " "(큰 따옴표)를 활용해 선언할 수 있다. 선언된 문자열보다 배열의 크기가 클 경우, 빈 공간은 '\0'로 선언된다. 입출력 char s..