인수와 매개 변수는 함수 호출 시에 데이터를 주고받기 위하여 필요합니다. 인수(argument)는 호출 프로그램에 의하여 함수에 전달되는 값입니다.
매개 변수(parameter)는 이 값을 전달 받는 변수입니다. 함수가 호출될 때마다 인수는 함수의 매개 변수로 전달됩니다.
함수가 호출될 때마다 인수는 달라질 수 있습니다.
# 10이 get_sum()의 인수가 됩니다.
x = get_sum(10)
# 20이 get_sum()의 인수가 됩니다.
y = get_sum(20)
여기서 주의할 점은 매개 변수의 개수는 정확히 일치하여야 한다는 점입니다. 즉 매개 변수가 두 개 이면 인수도 두 개를 전달하여야 합니다.
매개 변수의 개수와 인수의 개수가 일치하지 않으면 아주 찾기 어려운 오류가 발생하게 됩니다.
반환값(return value)은 함수가 호출한 곳으로 반환하는 작업의 결과값입니다. 함수는 자신을 호출한 곳으로 값을 반환할 수 있습니다.
값을 반환하려면 return 문장 다음에 수식을 써주면 수식의 값이 반환됩니다. 예를 들어 return sum을 하면 변수 sum의 값이 반환됩니다.
함수로부터 반환된 값은 다음과 같이 변수 x에 저장할 수 있습니다.

호출한 곳으로 값을 반환하려면 return 문장을 쓰고 그 다음에 반환하고자 하는 수식을 넣어야 합니다.
함수의 반환값은 결국 return 문장 뒤에 있는 수식의 계산값이 됩니다.
return 뒤에 나오는 수식은 파이썬에서 유효한 수식이면 무엇이든 가능합니다. 아래는 모두 가능한 return 문장입니다.
return 0
return x
return x*x + 2*x + 1
함수가 값을 반환하려면 함수 호출이 반환값으로 대체된다고 생각하여도 됩니다.
아래와 같은 문장에서 get_sum(1, 10)은 반환값 55로 대체됩니다. 따라서 변수 x에 55가 저장되는 것입니다.
value = get_sum(1, 10)
위의 코드는 get_sum 함수의 반환값을 통해 아래와 같이 변경됩니다
value = 55
파이썬은 함수가 값을 반환하지 않는 경우에 None이라는 특별한 값을 반환합니다.
None은 어떤 객체도 참조하지 않는다는 것을 의미합니다. 예를 들어 다음과 같이 값을 반환하지 않는 함수를 출력하면 None이 출력됩니다.
def func(msg):
s = msg
print(func("Hello"))
<실행 결과>
None
1. 구의 부피를 계산하는 함수 sphereVolume()을 작성하여 봅시다. 반지름이 r인 구의 부피를 구하는 공식은 아래와 같습니다.
<실행 결과>
구의 반지름을 입력하세요 : 10.0
4188.790204786391
2. 최근 인터넷 뱅킹 사용시 일회용 패스워드 생성기를 많이 사용합니다. 일회용 패스워드 생성기를 이용하여 3개의 패스워드를 생성하여 출력하는 프로그램을 작성해봅시다.
패스워드 생성기는 알파벳 소문자와 숫자를 랜덤하게 조합합니다. 패스워드 길이는 6자리로 합니다.
genPass()라는 함수를 작성하고 이 함수가 랜덤하게 생성된 패스워드를 반환하는 것으로 합니다.
random 모듈의 randrange() 함수나 choice() 함수를 사용합니다.
<실행 결과>
q546zv
1kvkss
b3vrmi
3. 2번 문제를 이용하여 패스워드에 알파벳 대문자와 숫자를 각각 적어도 하나 가지도록 소스를 변경하여 봅시다.
<실행 결과>
vgV4AD
XG4Yjg
7J5jA3