728x90
파이썬 함수 기본 구조
함수의 기본 구조는 간단합니다.
다른 언어와 달리 타입 지정이 없어서 사용하긴 편리한데 복잡해지면 디버깅하기 더 어려워 보이긴 합니다.
딱히 값을 리턴 하지 않고 특정 동작만 하도록 해도 무방합니다.
# 파이썬 함수 기본 구조
def method(a, b): # a, b를 매개변수로 받는 함수 method
return a + b # a + b 결과값을 리턴함
add = method(1, 2)
print(add) # ==> 3
파이썬에서 매개변수(파라미터) 갯수 변할 수 있도록 함수 만들기
매개변수에 *을 붙여주면 가변인자를 사용할 수 있습니다.
튜플 형식으로 만들어주기 때문에 반복문을 통해 쉽게 작업할 수 있습니다.
def sum_all(*args):
print(type(args)) # args 타입 확인 ==> 튜플
for i in args:
print(i)
a = 0
for i in args:
a += i # args에 있는 숫자 모두 합치기
return a # a값 반환
sum = sum_all(1,2,3,4,5)
print(sum)
아래와 같이 일반 매개변수와 섞어서 사용할 수 있습니다.
def calulator(kind, *args):
if kind == "sum": # kind가 "sum"이라면
result = 0
for i in args: # 모든 숫자를 더해줌
result += i
elif kind == "multiple": # kind가 "multiple" 이라면
result = 1
for i in args: # 모든 숫자를 곱해줌
result *= i
return result # 결과값 리턴
print(calulator("sum", 1, 2, 3, 4, 5)) # ==> 15
print(calulator("multiple", 1, 2, 3, 4, 5)) # ==> 120
리턴에 여러 값을 사용하면 튜플 타입으로 리턴됩니다.
다만 [ ]로 리스트라고 표시해주면 리스트 타입으로 리턴시킬 수 있습니다.
물론 굳이 이렇게 사용할 일은 없어보입니다. 그냥 객체 인스턴스를 만들어서 깔끔하게 던져줍시다.
def tup(a,b):
sum = a + b
multiple = a * b
return sum, multiple #리턴값에 여러개 주기
num = tup(4,5)
print(type(num), num)
파이썬 함수에서 디폴트값 설정하기
간단합니다. 다만 디폴트값이 설정된 매개변수는 가장 뒤에 넣어줘야 합니다.
def hi (who, say, love = "사랑해"):
str = f"{who}야 {say}. {love}~~"
return str
say_hi1 = hi("혜정", "안녕", "잘가") # 매개변수 3개 다 넣기
say_hi2 = hi("혜정", "안녕") # 마지막 매개변수 안 넣기
print(say_hi1)
print(say_hi2)
끝으로 함수 내부에서 생성되는 모든 변수는 지역변수로 함수가 종료되면 사라집니다.
함수에서 항상 리턴값으로 값을 외부 변수로 전달해주는 이유입니다.
전역변수 "global"을 사용해 외부의 변수를 조작할 수 있긴 하지만 권장하는 방식은 아닙니다.
a = 1
def glo():
a = 2 # 지역변수로 바깥의 a와는 다른 변수
glo() # 함수 실행
print(a) # a 변수 값 => 1로 동일
a = 1
def glo():
global a # 전역변수 사용 설정
a = 2
glo() # 함수 실행
print(a) # a 변수 값 => 2로 변경
728x90
'파이썬 > 기본문법' 카테고리의 다른 글
파이썬 클래스 만들기 및 클래스 상속 받기 (0) | 2024.02.16 |
---|---|
파이썬 파일 읽기 쓰기 (1) | 2024.02.16 |
파이썬 제어문, 반복문 (if, for, while) (1) | 2024.02.15 |
파이썬 Set 자료형 (집합 자료형) (0) | 2024.02.15 |
파이썬 튜플 자료형 (0) | 2024.02.15 |
댓글