728x90
1. 함수만들기
def print_3():
print("하이")
print("함수만드는법입니다")
print_3()
2. 매개변수
def print_3(value, n):
for i in range(n):
print(value)
print_3("하이",3)
3. 가변매개변수
- 매개변수를 원하는 만큼 받을 수 있는 함수를 말함
def print_3(n, *values):
for i in range(n):
for value in values:
print(value)
print()
print_3(3,"하이","테스트","어떻게출력될까요")
4. 기본 매개변수
- 매개변수 = 값의 형태로 되어 있는 것을 말함
def print_3(value, n=3):
for i in range(n):
print(value)
print_3("기본매개변수입니다")
5. 키워드 매개변수
만약 기본 매개변수가 가변 매개변수보다 앞에 오는 경우에는 기본매개변수의 의미가 사라진다.
하지만 가변 매개변수가 기본매개변수보다 앞에올 때에는 가변 매개변수가 우선된다.
def print_3(*values, n=2):
for i in range(n):
for value in values:
print(value)
print()
print_3("하이","키워드","매개변수입니다",n=3)
위에서 n=3을 키워드 매개변수라고 부른다.
결과값에서는 하이 키워드 매개변수입니다 가 3번 출력된다.
6. 리턴하기
- 자료 없이 리턴
def return_test():
print("A")
return
print("B")
return_test()
- 자료와 함께 리턴
def return_test():
return 100
value = return_test()
print(value)
- 아무것도 리턴하지 않기 (None)
def return_test():
return
value = return_test()
print(value)
- 조기리턴 : return 키워드를 흐름중간에 사용하는 형태
7. 재귀함수
- 팩토리얼 구현
def factorial(n):
output =1
for i in range(1, n+1):
output *= i
return output
print(factorial(1))
print(factorial(20))
- 피보나치 수열 구현
def fibonacci(n):
if n==1:
return 1
if n==2:
return 2
else:
return fibonacci(n-1)+fibonacci(n-2)
print(fibonacci(2))
print(fibonacci(5))
→ 반복 수행이 너무 많아서 계산에 시간이 오래 걸리기 때문에 같은 값은 한번만 계산하도록 아래와 같이 코드를 수정하는 것이 좋다.
dictionaty = {
1: 1,
2: 1
}
def fibonacci(n):
if n in dictionaty:
return dictionaty[n]
else:
#메모가 되어 있지 않으면 값 구하기
output = fibonacci(n-1)+fibonacci(n-2)
dictionaty[n] = output
return output
print(fibonacci(4))
print(fibonacci(15))
- 리스트를 평탄화하는 재귀함수 만들기
내부에 있는 요소를 하나씩 확인하면서 리스트인지 리스트가 아닌지 확인하는 for문을 추가하고 for 반복문 내부에 리스트인지 리스트가 아닌지 확인하고 리스트가 아니라면 바로 output에 리스트 자료를 넣고, 리스트라면 리스트의 요소를 output에 추가해야함
def flatten(data):
output = []
for item in data:
if type(item) == list:
output += flatten(item) #flatten()함수를 재귀호출
else:
output.append(item)
return output
ex = [[1,2,3,4],[1,2,3,[2,45]],4,6,7,[5,7,8]]
728x90
'스터디 > 혼자공부하는파이썬' 카테고리의 다른 글
chapter06. 예외처리 (0) | 2024.04.20 |
---|---|
chapter05. 함수 (2) (1) | 2024.04.20 |
chapter04. 반복문 (0) | 2024.04.15 |
chapter03. 조건문 (0) | 2024.04.15 |
chapter 02. 자료형 (1) | 2024.04.11 |