본문 바로가기

Python/중급

(9)
Python - asser assert란조건을 테스트하는 디버깅 문: 운영환경에서는 사용 하지 않음조건이 참이면 정상적으로 실행이 계속됩니다.거짓이면 AssertionError가 발생✔️ 사용 사례함수 인수 또는 출력이 유효한지 확인프로그램을 실행하는 동안 특정 조건이 사실인지 확인문장 구조✔️ 기본 문장assert condition ✔️ 메시지 포함assert condition, message예제 코드✔️ 조건이 참이면 정상적으로 실행x = 10assert x > 0, "x must be positive" ✔️ 조건이 거짓이면 AssertionError 발생x = -10assert x > 0, "x must be positive"실행 결과Traceback (most recent call last): File "assert.py..
Python - 비동기 프로그램(asyncio) 비동기 프로그램 이란동기 vs 비동기 프로그래밍동기 프로그래밍: 작업이 순차적으로 실행되며, 각 작업이 완료될 때까지 다음 작업을 기다림비동기 프로그래밍: 작업을 시작한 후 완료를 기다리지 않고 다른 작업을 수행할 수 있음동기 프로그래밍 예제import timedef sync_task(name, duration): print(f"{name} 작업 시작") time.sleep(duration) # 작업 시뮬레이션 print(f"{name} 작업 완료")def main(): start = time.time() sync_task("Task 1", 2) sync_task("Task 2", 3) sync_task("Task 3", 1) end = time.time() ..
Python - 중급 07 (decorator) decorator(데코레이터)란? 이번에도 예시를 바로 보도록 하겠습니다. 예시 def decorator_function(original_function): def wrapper_function(): print('before') original_function() print('after') return wrapper_function def display(): print('display 함수가 실행됐습니다.') decorated_display = decorator_function(display) decorated_display() display 함수가 실행됐습니다. display 함수를 파라미터로 decorator_function을 실행하고 그 결과값(decorated_display)을 다시 함수처럼 호출..
Python - 중급 06 (closure) closure(클로저)란? 어떻게 설명 드리면 좋을지 계속 고민하다가 모든 걸 접고 사용 예시를 보여 드리는게 가장 좋은 방법이라고 결론을 내렸습니다. 예시 def outer_function(): message = 'Hi' def inner_function(): print(message) return inner_function my_closure = outer_function() my_closure() Hi outer_function은 내부에서 inner_function을 정의하고 반환합니다. inner_function은 outer_function의 지역 변수 message를 참조합니다. outer_function()을 호출하면 inner_function을 반환합니다. my_closure에는 inner_..
Python - 중급 05 (generator) generator는 한 마디로 iterator를 생성해 주는 함수입니다. iterator와 동일하게 next() 함수를 사용하여 데이터를 순차적으로 호출 할 수 있습니다. generator를 알기 위해 먼저 yield 키워드에 대해 살펴보겠습니다. iterator는 Python - 중급 04 (iterator)를 참조 하십시오. yield 키워드 yield는 함수에서 값을 반환(return)하고, 함수의 실행을 그 지점에서 일시적으로 중지합니다. 다음 번에 함수가 호출되면, yield 다음의 명령문부터 실행이 재개됩니다. 예시를 통해 이해해 보겠습니다. def test(): print('A') yield 1 print('B') yield 2 print('C') yield 3 t = test() print..
Python - 중급 04 (iterator) python의 iterator는 뭘까요? 한 마디로 next()를 사용 하여 다음 요소를 가져올 수 있는 객체를 의미합니다. 이해가 안되시죠? 하나씩 알아보도록 하겠습니다. 먼저, 반복 가능(iterable)하다는 것은? iterable 하다는 것은 여러 값이 그룹화 되어 있는 데이터 구조에서 요소를 하나씩 꺼내어 사용할 수 있다는 의미입니다. 이러한 데이터 구조는 list, tuple, dictionary, set 등이 있습니다. for문으로 값을 읽어 올 수 있으면 iterable 하다고 할 수 있습니다. a = [1, 2, 3, 4, 5] # a = (1, 2, 3, 4, 5) # a = {1, 2, 3, 4, 5} # a = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}..
Python - 중급 03 (lambda) 일반적으로 코딩 할 때 함수를 많이 사용합니다. def로 함수를 정의하고 필요할 때 호출을 합니다. 그런데 만약 한번만 사용하면 되는 함수가 있다고 가정해 보겠습니다. 이런 경우에 def로 함수를 정의 하지 않고 바로 사용 할 수 있다면 편리 하겠죠. python은 이러한 기능을 제공하고 있으며 이를 lambda 함수라고 합니다. 간단한 예시 함수 선언 def add(a, b): return a + b print(add(1, 2)) 3 lambda 함수 print((lambda a, b: a + b)(1, 2)) 3 기본 문법 lambda arguments: expression lambda: lambda 키워드 - 이건 lambda 함수라는 의미입니다. arguments: 함수에 전달되는 파라미터를 의미..
Python - 중급 02 (map, filter, reduce) python의 map 함수를 처음 접하면 상당히 혼란스러울 수 있습니다. 음~~ 이게 뭐지? 우선 map 함수를 사용하지 않고도 원하는 결과를 얻을 수 있습니다. 그럼 몰라도 되는거 아냐? 그러나 세상은 그렇게 호락호락하지 않습니다. 다른 사람이 작성 한 코드에는 map 함수가 사용되어 있을 수 있습니다. 개념을 모르면 이해 하는 데 어려움을 겪을 수 있습니다. 추가로 간단히 말씀을 드리자면 map은 인자에 함수를 전달 합니다. 이를 함수형 프로그래밍이라고 합니다. python은 함수형 프로그래밍을 지원하는 언어입니다. map의 사용법을 이해하면 python의 함수형 프로그램밍을 이해하는데 도움이 될 것입니다. 설명을 하는 것 보다 간단한 예시를 통해 이해 하는 것이 더 좋을 것 같습니다. 간단한 예시 ..