-
파이썬 기초 : Functions(함수), Lambda Expressions(람다 표현식)🐍 Python 2025. 1. 21. 12:54728x90
함수란?
함수(Function)는 특정 작업을 수행하는 코드 블록입니다. 코드를 재사용 가능하게 만들고, 중복을 줄이며, 프로그램의 가독성을 높이는 데 도움을 줍니다.
함수 사용의 장점
코드 재사용성
한 번 정의한 함수는 여러 번 호출하여 사용할 수 있습니다. 동일한 작업을 여러 번 수행해야 할 때, 함수를 사용하면 코드의 중복을 줄이고 생산성을 높일 수 있습니다.
def greet(name): print(f"안녕하세요, {name}님!") # 동일한 함수를 여러 번 호출 greet("홍길동") greet("김철수") greet("이영희")
가독성 향상함수로 코드를 나누면 각 부분의 역할이 명확해져 코드가 더 읽기 쉬워집니다. 특히, 함수 이름으로 작업의 목적을 설명할 수 있어 가독성이 크게 향상됩니다.
def calculate_area(width, height): return width * height area = calculate_area(5, 10) print(f"면적: {area}")
유지보수 용이함수를 사용하면 코드를 수정하거나 확장하기가 더 쉬워집니다. 문제가 생겼을 때, 함수 내부만 수정하면 동일한 작업을 수행하는 모든 코드가 자동으로 반영됩니다.
# 세금을 계산하는 함수 def calculate_tax(price, tax_rate=0.1): return price * tax_rate # 함수 수정 전 print(calculate_tax(100)) # 출력: 10.0 # 함수 수정 후 (세율 변경) def calculate_tax(price, tax_rate=0.15): return price * tax_rate print(calculate_tax(100)) # 출력: 15.0
코드중복제거
함수를 사용하면 동일한 작업을 수행하는 코드를 반복해서 작성할 필요가 없습니다. 코드 중복은 유지보수의 큰 어려움 중 하나인데, 함수는 이를 방지합니다.
# 중복된 코드 사용 (비효율적): print(10 * 20) print(15 * 30) print(25 * 40)
# 함수로 개선 (효율적): def multiply(a, b): return a * b print(multiply(10, 20)) print(multiply(15, 30)) print(multiply(25, 40))
함수 정의하기
파이썬에서 함수를 정의하려면 def 키워드를 사용합니다. 함수 이름, 매개변수(선택 사항), 그리고 수행할 작업을 포함합니다.
기본문법
def 함수이름(매개변수1, 매개변수2, ...): 실행할 코드 return 반환값
- def: 함수를 정의할 때 사용하는 키워드.
- 함수이름: 함수의 이름으로, 작업의 목적을 나타내야 합니다.
- 매개변수: 함수가 입력받을 데이터 (선택 사항).
- 실행할 코드: 함수가 호출될 때 실행될 명령들.
- return: 함수의 실행 결과를 반환 (선택 사항).
간단한 함수 정의
def greet(): print("안녕하세요!") greet() # 출력: 안녕하세요!
매개변수가 있는 함수
def greet(name): print(f"안녕하세요, {name}님!") greet("홍길동") # 출력: 안녕하세요, 홍길동님!
반환값이 있는 함수
함수는 return 키워드를 사용하여 결과값을 반환할 수 있습니다.
def add(a, b): return a + b result = add(5, 3) print(result) # 출력: 8
매개변수와 기본값def greet(name="친구"): print(f"안녕하세요, {name}님!") greet() # 출력: 안녕하세요, 친구님! greet("김철수") # 출력: 안녕하세요, 김철수님!
여러 매개변수 처리
튜플 형태로 처리 def add_all(*args): return sum(args) def add_all(*args): return sum(args) 딕셔너리 형태로 처리 def print_info(**kwargs): for key, value in kwargs.items(): print(f"{key}: {value}") print_info(name="홍길동", age=30, job="개발자") # 출력: # name: 홍길동 # age: 30 # job: 개발자
람다 표현식이란?
람다 표현식은 간단한 함수 정의를 한 줄로 작성할 수 있는 파이썬의 문법입니다. 일반적으로 한 번만 사용되는 간단한 함수를 정의할 때 유용합니다.
기본 문법
lambda 매개변수1, 매개변수2, ... : 표현식
- lambda: 람다 표현식을 시작하는 키워드입니다.
- 매개변수: 함수가 받을 입력값입니다. 여러 개를 콤마로 구분할 수 있습니다.
- 표현식: 매개변수를 사용해 계산될 반환값입니다.
람다 표현식은 return 키워드 없이 항상 결과값을 반환합니다.
람다 표현식 vs 일반 함수일반 함수
def add(a, b): return a + b result = add(5, 3) print(result) # 출력: 8
람다 표현식
add = lambda a, b: a + b result = add(5, 3) print(result) # 출력: 8
람다 표현식은 def 키워드 대신 lambda를 사용하고, 반환값을 간단하게 표현할 수 있습니다.
Python의 Built-in Functions
Built-in Functions 1 Built-in Functions 2 Built-in Functions 3 Built-in Functions 4 Built-in Functions 5 abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open() str() bool() exec() isinstance() ord() sum() bytearray() filter() issubclass() pow() super() bytes() float() iter() print() tuple() callable() format() len() property() type() chr() frozenset() list() range() vars() classmethod() getattr() locals() repr() zip() compile() globals() map() reversed() __import__() complex() hasattr() max() round() delattr() hash() memoryview() set() CPU가 함수를 실행하는 방식
CPU는 **스택(Stack)**이라는 구조를 사용하여 함수를 호출하고 실행 상태를 관리합니다. 다음은 주요 단계입니다
- 함수 호출 시 스택에 추가(Push)
함수가 호출되면, 함수의 실행 정보를 스택에 저장합니다. - 함수 실행
CPU는 스택의 가장 위에 있는 함수의 명령을 실행합니다. - 함수 종료 시 스택에서 제거(Pop)함수가 실행을 마치면, 스택에서 해당 함수 정보를 제거하고 호출한 위치로 돌아갑니다.
728x90'🐍 Python' 카테고리의 다른 글
파이썬 기초 : Pandas(판다스) DataFrame과 Series, 빌트인 함수 (0) 2025.01.21 파이썬 기초 : NumPy 연산을 효율적으로 처리하기 위한 라이브러리 (0) 2025.01.21 파이썬 기초 : 조건문 , 반복문 (0) 2025.01.20 파이썬 기초 : 튜플(Tuple) (0) 2025.01.19 파이썬 기초 : 세트(Set) (0) 2025.01.19