혼공학습단 8기 파이썬 3주차 공부
214p
가변 매개변수: 매개변수를 원하는 만큼 받을 수 있는 함수
def 함수 이름(매개변수, 매개변수, ..., *가변 매개변수):
//문장
ex) print()
[제약]
- 가변 매개변수 뒤에는 일반 매개변수가 올 수 없다.
- 가변 매개변수는 하나만 사용할 수 있다.
def print_n_time(n,*values):
for i in range(n):
for value in values:
print(value)
print()
print_n_time(3,"안녕하세요","즐거운","프로그래밍")
가변 매개변수 뒤에는 일반 매개변수가 올 수 없다는 말의 의미는...
print_n_time("안녕하세요","즐거운","프로그래밍",3)과 같이 사용할 수 없다는 것이다.
기본 매개변수: 매개변수 = 값의 형태
print(value, ..., sep =' ', end ='\n', file=sys.stdout, flush=False)
[제약]
- 기본 매개변수 뒤에는 일반 매개변수가 올 수 없다.
- 매개변수를 입력하지 않았을 경우, 매개변수에 들어가는 값은 저 기본값이 된다.
키워드 매개변수
가변 매개변수와 기본 매개변수를 같이 사용하기 위해, 매개변수 이름을 지정해서 입력하는 매개변수이다.
def print_n_time(*values,n=2):
for i in range(n):
for value in values:
print(value)
print()
print_n_time("안녕하세요","즐거운","프로그래밍",n=2)
※ 참고로 가변매개변수와 기본 매개변수 같이 사용 시, 가변 매개변수가 앞에 와야 한다.
223p
혼공파 4주차 기본미션
직접 해보는 손코딩: 범위 내부의 정수를 모두 더하는 함수
def sum_all(start, end):
output = 0
for i in range(start, end +1):
output +=i
return output
print("0 ~ 100: ",sum_all(0,100))
print("0 ~ 1000: ",sum_all(0,1000))
print("50 ~ 100: ",sum_all(50,100))
print("500 ~ 1000: ",sum_all(500,1000))
어라 이제 추가미션 하려고 했는데 추가미션이 매개변수들을 정리하는 거였다.
공부하면서 처음 알게 된 개념만 정리하는 중이었는데... 나이스~~^__^
내 맘대로 함수 만들기
# [재귀함수 구현] 팩토리얼 구하기
def factorial(n):
if n == 0:
return 1
else:
return n* factorial(n-1)
num = int(input("factorial(n) 실습. n을 입력하시오 >> "))
print("factorial({}): {}".format(num,factorial(num)))
# [재귀함수 구현] 피보나치 수열
counter = 0
def fibonacci(n):
print("fibonacci({}) 계산 중... ".format(n))
global counter
counter += 1
if n == 1:
return 1
if n ==2:
return 2
else:
return fibonacci(n-1)+ fibonacci(n-2)
num = int(input("fibonacci(n) 실습. n을 입력하시오 >> "))
print("factorial({}): {}".format(num,fibonacci(num)))
print("계산에 활용된 덧셈 횟수: ",counter)
참고로 위 코드에서 전역 변수를 사용하기 위해 gloval counter라는 부분을 적어 주었다.
적지 않으면 UnboundLocalError 예외가 발생됨.
global 변수 이름
- 파이썬은 함수 내부에서 함수 외부에 있는 변수를 참조할 수 없다.
- 함수 내부에서 "이 변수는 함수 외부에 있는 변수야" 하고 설명하는 것.
'프로그래밍 > python' 카테고리의 다른 글
혼공학습단 8기 파이썬 5주차 (0) | 2022.08.14 |
---|---|
혼공단 5주차.. 하기 전에 복습먼저 ✅ (0) | 2022.08.11 |
[파이썬] 이터레이터(iterator) (0) | 2022.07.30 |
혼공학습단 8기 파이썬 3주차 (0) | 2022.07.30 |
혼공학습단 8기 파이썬 2주차 (0) | 2022.07.16 |