반응형
10. 함수
기본 함수 외, 필요한 함수를 만들어서 사용할 수 있다.
def 함수이름(매개변수)
수행할 문장 1
수행할 문장 2
return 결과값
매개변수(parameter) : 함수에 입력으로 전달된 값을 받는 변수
인수(arguments):함수를 호출할 때 전달하는 입력값
# 함수 예제
def add(a,b):
return a+b
add(3,4)
# 결과 : 7
return
함수의 결과 값을 함수 밖에서도 변수로 사용되게 함.
return을 통해 함수 밖으로 나오지 않은 값들은 함수 밖에서 사용할 수 없음.
함수 내부에서 print() 함수를 사용하더라도, return에 없다면 결과 값이 저장되지 않음
# return에 포함되지 않은 point 함수
def add(a,b):
print(a+b)
add(1,2)
# 결과 : 3
result = add(1,2)
result
# 결과 : (없음)
return을 통해 하나의 값만 내보낼 수 있음
중복 사용 시 첫 번째 return 값만 출력됨
# 중복 return 예제
def add_mul(a,b):
return a+b
return a*b
add_mul(1,2)
# 결과 : 3
*args
입력값의 개수가 유동적일때 사용
* 을 붙임으로써 유동적인 의미를 부여
# *args 예제
def add_many(*args):
total = 0
for i in args:
total = total + i
return total
add_many(1,2,3)
# 결과 : 6
*args의 데이터 유형을 확인해 보면, Tuple 임을 알 수 있다.
# args 데이터 유형 확인
def add_many(*args):
total = 0
for i in args:
total = total + i
print(type(args))
print(args)
return total
add_many(1,2,3)
# 결과 : <class 'tuple'>
# (1, 2, 3)
# 6
또한 일반 변수와 *args을 같이 사용할 수 있다.
# 일반 변수와 *args의 혼합 예제
def add_many(word,*args):
total = 0
for i in args:
total = total + i
return print(f'{word}은 {total}')
word = '총 합'
add_many(word,1,2,3)
# 결과 : 총 합은 6
args 대신 다른 변수명을 사용할 수 있음
하지만 def에서 일반 변수 앞에 선언하면 에러남.
# *args 대신 다른 변수 사용
def add_many(word,*number):
total = 0
for i in number:
total = total + i
return print(f'{word}은 {total}')
word = '총 합'
add_many(word,1,2,3)
# 결과 : 총 합은 6
# *args을 먼저 def에 넣으면 에러
def add_many(*number,word):
total = 0
for i in number:
total = total + i
return print(f'{word}은 {total}')
# def 함수 생성에는 에러가 발생 안함.
word = '총 합'
add_many(word,1,2,3)
# 출력시 에러
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-13-e7ebfad3cab7> in <cell line: 2>()
1 word = '총 합'
----> 2 add_many(word,1,2,3)
TypeError: add_many() missing 1 required keyword-only argument: 'word'
Global 함수
매개변수의 입력 없이 함수 안에서 함수 밖의 변수를 직접 사용할 때 사용
# Global 함수 예제
out=100
def test():
global out
out = out + 1
return out
test()
# 결과 : 101
out
# 결과 : 101
외부 값인 out이 global 함수로 인해 값이 변화함
외부 변수에 종속적인 함수이므로 좋은 함수라 할 수 없음.
global 함수를 주의해서 사용해야 하는 이유.
Ref
렛유인 - 파이썬 데이터 분석 - 기초이론
렛유인 - 파이썬 데이터 분석 - 전처리&시각화
728x90
'공부 > Python' 카테고리의 다른 글
[Python 기초] 기타 함수 (enumerate, zip, lambda, map) (0) | 2024.08.26 |
---|---|
[Python 기초] 예외처리 (try, except) (0) | 2024.08.25 |
[Python 기초] 반복문 (while, for) (0) | 2024.08.23 |
[Python 기초] 조건문 (If, if-else, if-elif-else) (0) | 2024.08.22 |
[Python 기초] 내장 자료 구조(리스트와 튜플의 인덱싱, 슬라이싱, 연산, 함수, 딕셔너리, 집합) (0) | 2024.08.21 |