Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- cerbot
- 함수
- EC2
- sqlalchemy
- 행렬곱
- 프로그래머스
- 집계함수
- 조건연산
- 토이프로젝트
- 백엔드 인턴십
- Django
- PYTHON
- RDS
- 클래스
- 프리온보딩
- numpy
- self
- Postman
- 파이썬
- Comprehension
- 컴프리헨션
- API
- Jar배포
- 람다함수
- mock server
- 코딩테스트
- spring boot
- yaml
- todo project
- 파이써닉코드
Archives
- Today
- Total
build my life
[Python] 함수 본문
728x90
함수
- 코드의 반복을 줄이거나 어떤 용도를 위해 코드를 모아둔 걸 함수라고 한다.
- 재사용할 코드 집합
함수 이름 규칙
- 함수 이름은 동사로 시작하고 어떤 기능을 하는지 추측할 수 있게 해야한다.
- 소문자로 작성하며, snake case를 따른다. (❗ snake case는 단어 사이에 _로 연결해주는 걸 의미)
함수 정의 방법
def <function_name>(parameter1, parameter2, ...):
code context
1) 파라미터 X, 리턴값 X
def solution():
print("출력")
2) 파라미터 O, 리턴값 X
def solution(num1, num2):
if num1 > num2:
print(num1)
else:
print(num2)
3) 파라미터 X, 리턴값 O
def solution():
a = list(range(1,40))
return sum(a)
4) 파라미터 O, 리턴값 O
def solution(a, b):
return a + b
변수의 사용범위(scope)
- 지역변수(local) : 함수 내부에서 만들어진 변수, 함수 내에서만 사용 가능
- 전역변수(global) : 함수 외부에서 만들어진 변수, 어디서든 사용 가능
gv = 10 #전역변수
def do_func():
a = 1 #지역변수
print(gv)
do_func() #함수 불러오기
‼ 함수내에서 변수를 사용할 때는 파라미터를 정의해서 인자를 받거나 지역변수를 선언에서 사용 !!
파라미터(parameter)
- 함수를 사용할 때 값을 함수에 넘겨주는데 그것을 받는 변수를 파라미터라고 한다.
def solution(num): #파라미터 num이 3을 받는다.
return num
solution(3) #solution 함수에 3을 넘긴다.
이러한 파라미터를 정의하는 방식이 3가지가 있다.
1) 디폴트 파라미터(default parameter)
- 값을 넘겨주지 않을 때 파라미터에 지정된 초기값을 사용함
def solution(a,b,c=1): #a =1, b=2 c값은 받지 않았기 때문에 지정된 초기값 1로 받아진다.
return a, b, c
solution(1,2) # solution에 1,2 값만 넣어준다.
# (1,2,1)
- 디폴트 파라미터 값은 일반 파라미터에 뒤에 넣어줘야 한다.
def solution(a,b=1,c): # X
def solution(a,c,b=1): # O
2) 가변 파라미터
- 값이 n개 이상 들어올 경우엔 가변 파라미터를 정의한다.(0개 이상)
- * 를 이용해서 파라미터명을 정의해주면 된다.
- 함수 내부에서는 튜플로 묶인다.
- 일반적인 표현 : *args
def solution(*args):
print(args)
solution(1,2,3)
# output : (1,2,3)
- 만약 키워드 파라미터와 함께 사용된다면 키워드형식으로 값을 넣어줘야한다.
#키워드 형식으로 넣지 않았을 경우
def solution(*args, b=1):
print(args)
solution(1,2,3,4)
# output : (1,2,3,4)
#키워드 형식으로 넣었을 경우
def solution(*args, b=1):
print(args)
solution(1,2,3,b=4)
# output : (1,2,3)
✅ packing & unpacking 개념을 알고 넘어가보자! 택배를 생각하면 이해하기 쉽다😁
- packing : 하나의 변수에 여러 객체를 묶어서 담는 방식
- unpacking : 묶여 있는 여러 객체를 여러 변수에 풀어서 담는 방식
#unpacking
def solution(*args):
print(args)
tup = (1,2,3)
solution(*tup) # solution(1,2,3)
#output : (1,2,3)
print(*tup) # 1 2 3
=> *tup으로 각각의 값을 풀어서 함수에 넣어주면 *args가 다시 묶어서 출력한다!
3) 키워드 가변 파라미터
- 가변 파라미터가 값이 n개 이상 들어올 경우면 키워드 가변 파라미터는 키워드 값이 n개 이상 들어올 수 있는 경우 사용한다.
- 함수 내부에서 dict으로 묶인다.
- 키워드 값에서 키워드가 key, 값이 value가 된다.
- 일반적인 표현 : **kwargs
def solution(**kwargs):
print(kwargs)
solution(name="홍길동",age=20)
# output: {'name' : '홍길동', 'age' : 20}
여러 종류의 파라미터를 정의할 경우 순서를 따라줘야한다.
def solution(postional_param, default_param="default_value", *args, **kwargs):
함수를 정의하는 법과 파라미터의 여러가지 사용법에 대해서 배웠다.
가변 파라미터는 개발을 할때 다른 사람들도 쉽게 함수를 가져다가 쓸 수 있게 해준다!
나중에 데코레이터 구현할 때에도 이용이 되니 개념을 확실하게 잡고 넘어갈 것..!
728x90
'Python' 카테고리의 다른 글
[Python] 클로저(Closure)와 콜백함수(Callback) (0) | 2022.08.08 |
---|---|
[Python] 람다 함수(lambda) (0) | 2022.08.08 |
[Python] 파이써닉코드(Pythonic code) : 삼항연산자, Comprehension, enumerate & zip (0) | 2022.08.04 |
[Python] 제어문 - 반복문(while문, for문) (0) | 2022.08.04 |
[Python] 제어문 - 조건문(if) (0) | 2022.08.04 |