본문 바로가기

Python

(18)
Python - np.array vs list python에는 데이터를 다루기 위해 주요 쓰이는 주요한 자료구조가 있습니다. ## 서로의 동작이 사실 좀 다릅니다. 자세한 내용은 다음에... ## list 선언. a = list([1, 2, 3]) a = [1, 2, 3] ## set 선언. b = set([1, 2, 3]) b = {1, 2, 3} ## tuple 선언. c = tuple([1, 2, 3]) c = (1, 2, 3) ## dict 선언 d = dict(k1=1, k2=2, k3=3) d = {"k1": 1, "k2": 2, "k3": 3} List, set, tuple, dict은 다음과 같은 특징을 가지고 있습니다. Type 특징 List 수정, 중복데이터를 허용한다. Set 중복데이터는 허용하지 않는다. Tuple 수정이 불가능..
Python - Int의 크기가 28bytes인 이유 *바쁘신 분들을 위한 3줄 요약 1. 28 bytes = refcnt (8 bytes) + Type pointer (8 bytes) + PySize (8 bytes) + digits (4 bytes) 2. refcnt는 GC를 위한 참조수, Type pointer는 Type을 표현하기 위한 포인터입니다. 3. Pysize, digits의 Array 구조 덕분에 큰 수에 대한 Overflow 걱정이 없습니다. *목차 - Python의 int는 쓸데없이 많은 메모리를 차지한다? - CPython의 코드를 살펴보자 - PyLongObject 분석 - Python의 int는 Overflow 되지 않는다 - Python에서 표현 가능한 가장 큰 숫자는? Python의 Int는 쓸데없이 많은 메모리를 차지한다? 혹..
Python - Mutable vs Immutable * 바쁘신 분들을 위한 3줄 요약 1. mutable이란, "메모리 주소를 유지한 채 값을 변경할 수 있다"란 뜻이다. 2. list, dict 등은 변경 가능(mutable)하며 3. int, float, string, tuple 등은 변경 불가능(immutable)하다. Mutable, Immutable은 무슨 뜻일까? mutable은 변경가능이란 뜻이며 immutable은 변경 불가능이란 뜻입니다. python에서 변경 가능(mutable)한 Data Type으로는 list, dict 등이 있으며, 변경 불가능(immutable)한 Data Type으로는 int, float, string, tuple 등이 있습니다. 하지만 이 정도의 설명으로는 오해를 하기 쉽습니다. int는 정말로 변경이 불가능한..
Python - 기본 문법정리 * 목차 1. 주석 2. 변수 3. 연산자 4. 변수 선언 5. 조건문 6. 반복문 7. 함수 8. 클래스 주석(Comments) python에서 지원하는 주석인 #과, 주석처럼 사용하는 Triple quotes가 있습니다. Triple quotes는 실제로는 string 객체지만, 주석으로 사용을 많이 합니다. Comment : #을 사용하며, 글자 뒤에 한 줄만 적용 됩니다. print해도 출력할 수 없습니다. # 주석1 입니다. # 주석2 입니다. Triple quotes : 큰 따옴표, 작은 따옴표를 사용하여 여러 줄에 적용합니다. print로 출력할 수 있습니다. """ document explain1 document explain2 """ ''' document explain1 document..
Python - List는 어떻게 데이터를 관리하는가? *바쁘신 분들을 위한 3줄 요약 1. List는 데이터가 저장된 주소들의 나열이다. (C언어 Level에서 이중포인터) 2. 데이터 주소만 List에 저장하기 때문에, 데이터 Type이 어떤 것이던지 List로 다룰 수 있음. 3. List는 데이터를 직접 다루는 게 아니기 때문에, Array에 비해 데이터를 다루는데 시간이 오래 걸린다. List는 어떠한 Data Type도 원소로 다룰 수 있다. Python에서 List를 다루다 보면, 다양한 Type에 대해서도 잘 동작하는 것을 경험합니다. >>> import numpy as np >>> a = [1,2.2,(3,4), "5", np.array([6,7]), {"key8": 9}, 10] >>> print(a) ## list에 int, float, ..
Python - is와 ==의 차이 * 바쁘신 분들을 위한 3줄 요약 1. is는 변수가 저장된 장소가 같은 지 확인합니다. 2. ==는 변수의 값이 같은 지 확인합니다. 3. 숫자, 글자 같은 고정값(Literal)에 is 연산자를 사용하면 SyntaxWarning을 일으킵니다. * 이 글에서 작성된 메모리 주소는 모두 가상입니다. 참고 바랍니다. 파이썬(python)에서는 "==" 연산자를 활용하여 같은 값인지 확인합니다. >>> a = 0 >>> b = 0 >>> a == b True 그런데 파이썬에는 is을 사용하는 경우도 있습니다. >>> a = 0 >>> b = 0 >>> a is b True is와 == 는 동일한 연산자일까요? ==와 is는 무엇이 다른 걸까요? is 연산자는 변수의 저장 위치가 같은지를 확인하는 연산자입니다..
Python - 파이썬의 선(The Zen of python) * 바쁘신 분들을 위한 3줄 요약 1. 가독성은 코드에 정말로 중요합니다. 2. 코드는 가독성이 정말로 중요합니다. 3. 코드는 정말로 가독성이 중요합니다. 4. 코드는 정말로 중요합니다 가독성이. 소개 (Introduce) The Zen of python은 파이썬 기여자인 Tim Peters가 파이썬의 설계철학을 널리 알리기 위해 작성했습니다. Zen은 고요할 선(禪)의 영어발음 입니다. 이 한자는 정신 집중을 통해 깨달음의 경지에 다가가는 것을 뜻하는 불교용어입니다. 비슷한 단어로는 명상(meditation)이 있겠습니다만, 명상이란 단어로 직역하기에는 의미 차이가 꽤 있는 편입니다. 발음 그대로 "선"이라고 번역하도록 합니다. 이하 내용은 The Zen of Python의 전문 및 번역입니다. * ..
파이썬(Python)이란? * 바쁘신 분들을 위한 3줄 요약 1. 파이썬은 매우 인기가 높은 프로그래밍 언어입니다. 2. 파이썬은 개발하기 쉬운 인터프리터 언어입니다. 3. 파이썬은 문법이 매우 직관적입니다. 소개 (Introduce) 파이썬(Python)은 프로그래밍 언어로, 1991년에 Guido van Rossum이라는 프로그래머에 의해 만들어졌습니다. python은 현세대의 가장 인기 있는 프로그래밍 언어라 할 수 있습니다. 2023년도 2월 PYPL(PopularitY of Programming Language) index 조사 결과에 따르면 python이 가장 대중적인(popular) 언어로 소개되고 있습니다. 참고로 stack overflow에서는 javascript가 1위, python이 4위에 위치하고 있습니다. ..