본문 바로가기

Python study

(23)
일급 함수 함수를 객체 처럼 다루는 법Python에서 함수는 일급 객체(first-class objects)로 다룰 수 있다. 이는 함수를 변수에 할당하거나, 다른 함수의 인수로 전달하거나, 다른 함수에서 반환값으로 사용할 수 있다는 의미한다. 이러한 특성을 활용하면 프로그래밍이 훨씬 유연하고 강력해질 수 있다.함수를 객체로 다루는 몇 가지 방법:함수 할당하기: 함수를 다른 변수에 할당하여 그 변수를 통해 함수를 호출할 수 있다.함수를 인수로 전달하기: 함수를 다른 함수의 매개변수로 전달할 수 있다. 이는 고차 함수(higher-order functions)를 만드는 데 사용된다.함수에서 함수 반환하기: 함수에서 다른 함수를 반환할 수 있다. 이 방법은 클로저(closures) 또는 팩토리 함수(factory fu..
텍스트(text)와 바이트(byte) 문자파이썬에서 "문자"는 문자열의 기본 요소로, 일반적으로 유니코드 코드 포인트를 나타내는 단일 문자이다. 파이썬 3부터 모든 문자열은 기본적으로 유니코드로 처리되며, 각 문자는 하나 이상의 코드 포인트로 표현된다.문자의 특징단일 문자 요소: 문자는 보통 문자열 내에서 하나의 글자나 기호로 표현된다. 예를 들어, 'a', '1', '가', '?' 등이 모두 유효한 파이썬 문자이다.유니코드 사용: 유니코드는 세계의 모든 문자 체계를 단일 문자 집합으로 통합하는 표준이다. 파이썬에서 문자는 이 유니코드 시스템을 사용하여 인코딩된다.불변성: 파이썬의 문자열과 마찬가지로, 개별 문자도 불변 객체이다. 즉, 문자 자체를 변경할 수 없고, 변경하려면 새 문자열을 생성해야 한다.파이썬에서 문자 사용s = 'Hello..
딕셔너리(dictionary)와 집합(set) 일반적인 매핑형매핑형(mapping types)은 키와 값을 연결시켜 데이터를 저장하는 파이썬의 데이터 구조 중 하나이다. 이런 형태의 자료형에서는 각 키가 고유해야 하며, 키를 통해 해당 값에 접근할 수 있다.파이썬에서 가장 일반적인 매핑형은 dict (딕셔너리)입니다. 딕셔너리는 키와 값의 쌍으로 데이터를 저장하며, 중괄호 {}를 사용하여 표현한다.person = {"name": "John", "age": 30}print(person["name"]) # 출력: Johnprint(person["age"]) # 출력: 30 파이썬의 딕셔너리 주요 특징동적 변경 가능: 딕셔너리는 실행 중에 항목의 추가, 삭제, 수정이 자유롭다.순서 유지: 파이썬 3.7 이상에서는 딕셔너리가 항목을 추가한 순서를 유지..
시퀀스(sequence) - 슬라이싱(slicing), bisect, 다른 시퀀스 슬라이싱(slicing)시퀀스(리스트, 튜플, 문자열 등)의 일부분을 잘라내어 새로운 시퀀스를 만드는 방법이다. 슬라이싱을 사용하면 코드를 더 간결하고 읽기 쉽게 만들 수 있으며, 데이터의 부분 집합을 효율적으로 처리할 수 있다.슬라이싱 기본 문법슬라이싱은 대괄호([]) 안에 시작 인덱스:끝 인덱스:간격 형태로 표현된다.시작 인덱스는 포함되고,끝 인덱스는 포함되지 않습니다.간격은 선택적이며, 각 요소 사이의 간격을 정의합니다.numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# 인덱스 2부터 5까지 요소를 슬라이싱 (5는 포함되지 않음)print(numbers[2:5]) # [2, 3, 4]# 리스트의 처음부터 인덱스 5까지 요소를 슬라이싱 (5는 포함되지 않음)print(numb..
시퀀스(sequence) - 지능형 리스트(List Comprehension), 튜플(tuple) 파이썬에서 시퀀스(sequence)는 데이터를 순서대로 저장하는 구조를 말한다. 여기에는 여러 타입의 데이터가 포함될 수 있으며, 각 요소는 순서를 가지고 인덱스로 접근할 수 있다. 저장하는 데이터의 타입과 저장 방식에 따라 두가지로 나눈다. (컨테이너 시퀀스(Container Sequences), 균일 시퀀스(Flat Sequences)) 컨테이너 시퀀스(Container Sequences) 컨테이너 시퀀스는 다양한 타입의 객체들을 담을 수 있는 시퀀스이다. 이 유형의 시퀀스는 객체에 대한 참조를 저장한다. 즉, 컨테이너 시퀀스 내의 각 항목은 다른 타입일 수 있다. 예를 들어, 리스트(list)와 튜플(tuple)은 컨테이너 시퀀스의 예시이다. 이들은 숫자, 문자열, 리스트 등 어떤 타입의 객체라도 ..
Python Special method (magic method) Python에서 특별 메소드를 마술 메소드(magic method)라고 한다. 특별 메소드 대해 설명해 보고자 한다. __getitem__(), __len__() 예시 class MyList: def __init__(self, items): self._items = items # 클래스의 인스턴스에서 [] 연산자를 사용할 때 호출 def __getitem__(self, index): return self._items[index] # 클래스의 인스턴스에 대해 len() 함수가 호출될 때 사용 def __len__(self): return len(self._items) # MyList 클래스의 인스턴스 생성 my_list = MyList([1, 2, 3, 4, 5]) # __getitem__ 메소드를 통해 ..
Variables and memory 1. 변수와 메모리 참조(Variables and memory reference) Python에서는 모든 것이 객체로 취급된다. 객체는 힙(heap) 메모리에 저장되며, 변수는 이 객체들에 대한 참조를 보관한다. 또한, 파이썬 메모리 매니저가 객체의 생성 및 삭제, 그리고 메모리 할당과 반환을 관리하므로 개발자는 메모리 관리에 대해 신경 쓸 필요가 거의 없다. 변수와 객체 사이의 연결을 설명하는 좋은 방법은 id() 함수를 사용하는 것이다. 이 함수는 파이썬 내부에서 객체의 고유한 ID를 반환하는데, 이 ID는 실제로는 객체가 저장된 메모리 주소이다. id() 함수에 hex() 함수를 적용하면 이 주소를 16진수로 변환하여 볼 수 있다. my_var = 10 print(id(my_var)) # 고유 ID..

728x90