1. 함수
■ 함수
- 입력값에 대한 로직을 수행하고 그 결과값을 반환한다.
- 함수를 통해서 프로세스, 로직을 간단하게 할 수 있다.
■ 함수 구조
- 파이썬 함수 구조
def function_name(args1, args2):
statement1
statement2
...
return result
- def: 함수 선언을 위한 예약어
- 함수에 입력값이나 결과값이 없을 수 있다.
※ parameter (매개변수) vs argument (인수, 전달인자)
- parameter: 함수에 입력으로 전달된 값을 받는 변수, 함수의 정의 부분에 나열되어 있는 변수들
- argument: 함수를 호출할 때 전달하는 입력값, 함수 호출 시 전달되는 값
■ 매개변수 응용
- 함수 호출 시 매개변수 지정
def add(a, b):
return a + b
# paramter a, b를 지정
result = add(a = 4, b = 6)
- 입력값의 개수를 알 수 없는 경우
# *매개변수 형태로 변경
def func_name(*args):
statement
...
# *args
def add_nums(*args):
result = 0
for num in args:
result += num
return result
print(add_nums(1,2,3)) # 6
# *args 와 다른 변수를 함께 사용
def add_mul(choice, *args):
if choice == "add":
result = 0
for i in args:
result = result + i
elif choice == "mul":
result = 1
for i in args:
result = result * i
return result
print(add_mul('add', 1,2,3,4,5)) # 15
print(add_num('mul', 1,2,3,4,5)) # 120
※ kwargs: 키워드 파라미터
- 키워드 파라미터 사용시에 **를 앞에 붙여서 사용한다.
- **을 붙이면 kwargs는 딕셔너리가 되고 key, value 형태의 결과값이 저장된다.
def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(a = 1, b = 2) # {'a': 1, 'b': 2}
- 매개변수 초기값 설정
# c의 값이 입력되지 않아도 1로 초기화가 되어있다.
def param_init(a, b, c = 1):
print(a + b + c)
print(param_init(1, 2)) # 4
print(param_init(1, 2, 3)) # 6
■ 함수의 결과값
- 함수의 결과값 (return 값)은 언제나 하나이다.
- 변수 할당과 같이 여러개의 값을 return하는 경우 튜플형으로 반환된다.
■ 변수 접근 범위 - local, global
- 기본적으로 함수 내에서는 매개변수 또는 함수 내의 변수만 접근 가능하다.
- 동일하게 함수 외부에서는 함수 내의 변수에 접근할 수 없다.
- 함수 영역 외부에서 변수에 접근하는 방법
1) return: 반환값을 통해서 외부에 함수 내부 변수의 값을 반환한다.
2) global: 글로벌 변수 선언을 통해서 외부 변수에 접근한다.
a = 1
def vartest():
global a
a = a+1
vartest() # 변수 a에 1이 더해진다.
print(a) # 2
■ lambda
- 함수를 생성할 때 쓰는 예약어로 보통 한줄로 간결한 함수를 선언할 때 사용한다.
- def와 동일한 역할을 한다.
- return이 없어도 결과값을 돌려준다.
# lambda args1, args2: {exp}
add = lambda a, b: a + b
print(add(1, 3)) # 4
'프로그래밍언어 > Python' 카테고리의 다른 글
ch04. 파이썬 프로그래밍 프로그램 입출력 (파일 읽고 쓰기) (0) | 2021.02.21 |
---|---|
ch04. 파이썬 프로그래밍 프로그램 입출력 (사용자 입출력) (0) | 2021.02.20 |
ch03. 파이썬 프로그래밍 제어문 (while, for) (0) | 2021.02.20 |
ch03. 파이썬 프로그래밍 제어문 (if) (0) | 2021.02.20 |
ch02. 파이썬 프로그래밍 자료형 저장공간 (변수) (0) | 2021.02.20 |