* 함수
* 함수란?
- 일정한 작업을 수행하는 코드 블록으로 보통 반복적으로 계속 사용되는 코드들을 함수로 정의하여 사용
- 정의는 def키워드를 사용하여 정의
def 함수명(입력 파라미터):
문장1
문장2
[return값]
def sum(a, b):
s = a + b
return s
total = sum(4, 7)
print(total)
>>> return 11
* 파라미터 전달 방식
- 파이썬 함수에서의 입력 파라미터는 Pass by Assignment에 의해 전달됨
- 즉 호출자는(Caller)는 입력 파라미터 객체에 대해 레퍼런스를 생성하여 레퍼런스 값을 복사하여 전달
- 입력 파라미터는 Mutable과 Immutable이 있다.
- Mutable객체는 파라미터로 전달시 호출자에게 함수에서 변경된 값이 반영됨
- Immutable객체는 파라미터로 전달시 함수 내에서 변경되지 않고 호출자에게 값이 반영되지 않음
# 함수내에서 i, mylist 값 변경
def f(i, mylist):
i = i + 1
mylist.append(0)
k = 10 # k는 int (immutable)
m = [1,2,3] # m은 리스트 (mutable)
f(k, m) # 함수 호출
print(k, m) # 호출자 값 체크
# 출력: 10 [1, 2, 3, 0]
* Defalut Parameter
- 함수에 전달 되는 입력 파라미터 중 호출자가 전달하지 않을 경우 디폴트로 지정된 값을 사용하는 것
def calc(i, j, factor = 1): #factor는 별도로 전달되지 않은 파라미터로 함수에서 지정된 값
return i * j * factor
result = calc(10, 20)
print(result)
* Named Parameter
- 함수 호출시 함수에 정의된 순서대로 호출함
- "파라미터명 = 파라미터 값" 형식으로 값을 넘겨줄 수 있는데 함수의 파라미터명을 이용해서 값을 넘겨주며 쉽게 파악하는 장점이 있음
def report(name, age, score):
print(name, score)
report(age=10, name="Kim", score=80)
#함수의 파라미터 명을 이용해 값을 넘겨주는 모습
*가변 길이 파라미터
- 함수의 파라미터 갯수를 알 수 없거나 0부터 N개의 파라미터를 받고 싶을 때 사용
- 파라미터명 앞에 *을 붙여 가변길이 임을 표시
def total(*numbers):
tot = 0
for n in numbers:
tot += n
return tot
t = total(1,2)
print(t)
t = total(1,5,2,6)
print(t)
>>> return 3 14
*리턴 값
- 함수에서 호출자로 값을 리턴하기 위해 retrun문을 사용한다.
- 단독 사용시 아무 값도 전달하지 않으며 "return 리턴 값"형식을 경우 호출자에게 값을 반환한다.
- return 값은 하나 이상의 값을 반환할 수 있으며 (,)으로 구분한다.
def calc(*numbers):
count = 0
tot = 0
for n in numbers:
count += 1
tot += n
return count, tot
count, sum = calc(1,5,2,6) # (count, tot) 튜플을 리턴
print(count, sum)
'파이썬' 카테고리의 다른 글
PYTHON 객체와 클래스 (0) | 2019.07.31 |
---|---|
CODE UP 1078 : 기초100제 짝수 합 구하기(PYTHON) (0) | 2019.07.23 |
PYTHON의 제어문을 알아보자 part.2 (0) | 2019.07.22 |
PYTHON의 제어문을 알아보자 part.1 (0) | 2019.07.22 |
PYTHON의 자료형을 알아보자 (0) | 2019.07.22 |