<코딩도장 복습 통한 새로 이해한 내용 정리 : Unit : 29~31>
x = [10, 20, 30]
print(*x)
>>>
10 20 30
>>> def print_numbers(*args):
... for arg in args:
... print(arg)
>>> def personal_info(name, age, address):
... print('이름: ', name)
... print('나이: ', age)
... print('주소: ', address)
>>> x = {'name': '홍길동', 'age': 30, 'address': '서울시 용산구 이촌동'}
>>> personal_info(**x)
이름: 홍길동
나이: 30
주소: 서울시 용산구 이촌동
<키워드 인자 예시>
>>> def personal_info(**kwargs):
... for kw, arg in kwargs.items():
... print(kw, ': ', arg, sep='')
...
매개변수의 인자로 리스트(혹은 튜플)이나 딕셔너리를 써야할 때 써야하는 것이 위치 인수와 키워드 인수이고, 이를 쓰는 과정에서 괄호를 풀어햐 하는 것이 언패킹이다.
def get_min_max_score(*args):
return min(args), max(args)
def get_average(**kwargs):
return sum(kwargs.values()) / len(kwargs)
필요한건 kwargs를 통해 언패킹 된 values다. 이를 그냥 메서드로 이용해서 바로 구해주면 된다.
def is_palindrome(word):
if len(word) < 2:
return True
if word[0] != word[-1]:
return False
return is_palindrome(word[1:-1])
print(is_palindrome('hello'))
print(is_palindrome('level'))
def fib(a):
if a<=1:
return a
else:
return fib(a-1) + fib(a-2)
n = int(input())
print(fib(n))
수 십 번을 풀었는데도 식으로 와닿지가 않았나보다.
먼저 인자가 1보다 작으면 값이 성사가 안 되므로 리턴해주고, 아닐 경우는 그냥 전 수와 그 전 수를 더하는 것으로 리턴해주는 재귀함수로 풀어준다. 이제 이 쯤 되면 외워야겠다.