일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- TensorFlow
- 사이킷런
- Python
- 아이펠
- 스크랩
- 제로베이스 데이터사이언스
- 속성
- Set
- 머신러닝
- 자연어처리
- 함수
- 데이터분석
- AIFFEL
- 추천시스템
- 데이터사이언스 스쿨
- 기사
- 데이터사이언티스트
- 후기
- 코딩도장
- NLP
- 파이썬
- 딕셔너리
- 클래스
- 재귀함수
- AI
- 딥러닝
- numpy
- 제어문
- 카카오
- 파이썬코딩도장
- Today
- Total
뮤트 개발일지
Python 함수 - 기본구조, 매개변수, local변수와 global변수, generator, yield 본문
함수 기본 구조
def 함수이름(x1, x2, x3):
문장1
문장2
return y
예)
def hello():
print('hello')
def addition(a, b):
return a+b
def add_and_multiple(a, b):
return a+b, a*b
매개변수
def 함수이름 (x1, x2, x3):
return y
여기서 x1, x2, x3과 같이 입력값을 매개변수라고 부른다.
매개변수의 기본값을 지정할 때
def addition(a=1, b=2):
return a+b
- 위의 상황에서 addition(3)을 입력하면: 3+2 = 5 출력
- 위의 상황에서 addition(b=1)을 입력하면: 1+1 =2
*주의: addition(a=3,2)와 같은 표현은 불가능하다.
입력값이 몇 개가 될지 모를 때
예)
def func(*args):
for i in args:
print(i)
=> 매개변수 앞에 * 표시를 한다.
=> args에 들어간 인수들이 tuple형태로 변환되어 args라는 매개변수에 들어간다.
예)
def func(**kwargs):
for i in kwargs:
print(i)
=> 매개변수 앞에 ** 표시를 한다.
=> kwargs에 들어간 인수들이 딕셔너리 형태로 변환되어 kwargs라는 매개변수에 들어간다.
=> 이 때, 반드시 func(k1=v1, k2=v2)와 같은 형태로 매개변수 이름을 지정해야 한다.
local 변수와 global 변수
local 변수: 함수 안에서 만든 변수, 함수 안에서만 살다가 함수 코드가 실행 종료되면 변수도 같이 사라짐
global 변수: 함수 외부에서 만든 변수, 프로그램이 실행되어 있는 동안에 계속 살아있음
함수 내부에서 global 변수를 부르는 방법
a = 3
def f():
global a
a = a + 1
f()
or
def f():
global a
a = 1
a = a+1
f()
generator와 yield
예)
def gen(n):
while n > 0:
yield n
n = n-1
gen(10) 했을 때, 실행되지 않고
<generator object gen at 0x7f96d75e2ed0> 이 나온다.
list(gen(10))을 하면 그제서야 [10,9,8,7,6,5,4,3,2,1]이 나온다.
=> yield를 통해 생성된 값은 바로 계산되지 않고 호출 되었을 때 비로소 계산된다. lazy operation
'Python' 카테고리의 다른 글
Python 내장함수, 외장함수 (0) | 2021.12.20 |
---|---|
Python 예제) 재귀함수, 중첩함수, lambda함수 (0) | 2021.12.20 |
Python 제어문 - while 문 (0) | 2021.12.19 |
Python 제어문 - for 문 (0) | 2021.12.19 |
Python 제어문 - if문 (0) | 2021.12.19 |