[혼공학습단 9기] 혼공파 4주차

Klaus·2023년 2월 6일
0
post-thumbnail

기한을 넘겨버렸다...


4주차(1/30~2/5) 진도 : Chapter 05

✅ 기본 미션

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)

🖥️ 결과


매개 변수 관련 TypeError

<발생 상황>
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)
  • 맨 앞의 value : 가변 매개변수
  • 가변 매개변수 뒤에 일반 매개변수가 올 수 없으나 특이한 형태의 매개변수 존재
    -> 기본 매개변수

📖 기본 매개변수

  • 매개변수를 입력하지 않았을 때 매개변수에 들어가는 기본값
  • 형태 : '매개변수 = 값'

❗️기본 매개변수 사용 제약
존재 이유 : 함수에 매개변수 넣을 때 몇 번째 매개변수에 할당되어야 하는지 알 수 없음.

  • 기본 매개변수 뒤에 일반 매개변수 올 수 없다.

⌨️ 코드

# 함수 정의
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 생략 ➡️ 키워드 매개변수 사용하면 필요한 매개변수에만 값 전달 가능

<결론>

  • 일반 매개변수 : 일반적으로 필수로, 순서에 맞게 입력
  • 기본 매개변수 : 필요한 것만 키워드 지정해 입력하는 경우 많음

0개의 댓글