기한을 넘겨버렸다...
p.223 [직접 해보는 손코딩 : 범위 내부의 정수를 모두 더하는 함수]
실행 후 코드가 입력된 화면 및 실행 결과 화면 캡처하기
⌨️ 코드
🖥️ 결과
매개변수, 기본 매개변수, 가변 매개변수에 대해 정리하기
📖 함수 관련 용어
- 함수 - 코드의 집합
- 호출 - 함수를 실행하는 행위
- 매개변수 - 함수의 괄호 내부에 넣는 여러 가지 자료
- 리턴값 - 함수의 최종적인 결과
- 가변 매개변수 함수 - 매개변수를 원하는 만큼 받을 수 있는 함수
- 기본 매개 함수 - 매개변수에 아무것도 넣지 않아도 들어가는 값
def 함수 이름():
문장
⌨️ 코드
# 함수 정의
def print_3_times():
print("안녕하세요")
print("안녕하세요")
print("안녕하세요")
# 함수 사용
print_3_times()
🖥️ 결과
def 함수 이름(매개변수, 매개변수, ...):
문장
⌨️ 코드
# 함수 정의
def print_n_times(value, n):
for i in range(n):
print(value)
# 함수 사용
print_n_times("안녕하세요", 5)
🖥️ 결과
<발생 상황>
1. 함수 호출 시, 매개변수 넣지 않는 경우
2. 함수 호출 시, 매개변수를 더 많이 넣는 경우
def 함수 이름(매개변수, 매개변수, ..., *가변 매개변수):
문장
❗️가변 매개변수 사용 제약
존재 이유 : 가변 매개변수와 일반 매개변수를 구분하기 힘들기 때문.
- 가변 매개변수 뒤에 일반 매개변수 올 수 없다.
- 가변 매개변수는 하나만 사용할 수 있다.
⌨️ 코드
# 함수 정의 - *values : 가변 매개변수
def print_n_times(n, *values):
# n번 반복
for i in range(n):
# values를 리스트처럼 활용
for value in values:
print(value)
print()
# 함수 사용
print_n_times(3, "안녕하세요", "즐거운", "파이썬 프로그래밍")
🖥️ 결과
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
📖 기본 매개변수
- 매개변수를 입력하지 않았을 때 매개변수에 들어가는 기본값
- 형태 : '매개변수 = 값'
❗️기본 매개변수 사용 제약
존재 이유 : 함수에 매개변수 넣을 때 몇 번째 매개변수에 할당되어야 하는지 알 수 없음.
- 기본 매개변수 뒤에 일반 매개변수 올 수 없다.
⌨️ 코드
# 함수 정의
def print_n_times(value, n=2):
# n번 반복
for i in range(n):
print(value)
# 함수 사용
print_n_times("안녕하세요")
🖥️ 결과
1️⃣ 기본 매개변수가 가변 매개변수보다 앞에 올 경우 ➡️ 기본 매개변수의 의미 사라짐.
⌨️ 코드# 함수 정의 def print_n_times(n=2, *values): # n번 반복 for i in range(n): # values를 리스트처럼 활용 for value in values: print(value) # 줄바꿈 print() # 함수 사용 print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍")
🖥️ 결과 ➡️ range() 함수의 매개변수엔 숫자만 들어올 수 있어 오류 발생
2️⃣ 가변 매개변수가 기본 매개변수보다 앞에 올 때 ➡️ 기본 매개변수의 의미 사라짐.
⌨️ 코드# 함수 정의 def print_n_times(*values, n=2): # n번 반복 for i in range(n): # values를 리스트처럼 활용 for value in values: print(value) # 줄바꿈 print() # 함수 사용 print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", 3)
🖥️ 결과 ➡️ 가변 매개변수가 우선됨.
❓기본 매개변수와 가변 매개변수를 함께 사용할 수 있는 방법 없을까 ➡️ 키워드 매개변수
📖 키워드 매개변수
- 매개변수 이름을 지정해서 입력하는 매개변수
⌨️ 코드
# 함수 정의
def print_n_times(*values, n=2):
# n번 반복
for i in range(n):
# values를 리스트처럼 활용
for value in values:
print(value)
# 줄바꿈
print()
# 함수 사용
print_n_times("안녕하세요", "즐거운", "파이썬 프로그래밍", n=3) # 'n =':키워드 매개변수
🖥️ 결과
✚ 기본 매개변수 중에서 필요한 값만 입력하기
- 기본 매개변수들로 구성된 함수에서 키워드 매개변수 많이 사용됨.
⌨️ 코드
# 함수 정의
def test(a, b=10, c=100):
print(a + b + c)
# 1) 기본 형태
test(10, 20, 30)
# 2) 키워드 매개변수로 모든 매개변수를 지정한 형태
test(a=10, b=100, c=200)
# 3) 키워드 매개변수로 모든 매개변수를 마구잡이로 지정한 형태
test(c=10, a=100, b=200)
# 4) 키워드 매개변수로 일부 매개변수만 지정한 형태
test(10, c=200)
🖥️ 결과
** 첫번째 매개변수 a **
- 일반 매개변수이므로 해당 위치에 반드시 입력해야 함 ➡️ 1)
- 일반 매개변수지만 키워드 매개변수처럼 사용 가능 ➡️ 2), 3)
** 3) 상황 **
- 키워드 지정해 매개변수 입력하는 경우, 매개변수 순서 원하는대로 입력 가능
** 4) 상황 **
- b 생략 ➡️ 키워드 매개변수 사용하면 필요한 매개변수에만 값 전달 가능
<결론>
- 일반 매개변수 : 일반적으로 필수로, 순서에 맞게 입력
- 기본 매개변수 : 필요한 것만 키워드 지정해 입력하는 경우 많음