Today I Learned | 7월 8일 function parameter , variable length argument

juri·2021년 7월 8일
0

TIL

목록 보기
8/25
post-thumbnail

오늘 뭐했지

1 python replit 23-54
2 online session <백엔드 개발자가 하는 일>
3 *args 와 **kwargs
4 function parameters


1. python replit 23-54

  1. Testing set of conditions

단순히 월과 일에 1씩 더하면 되는 게 아니라
월에 따라서 적용해야 하는 식이 달라서 많이 헤맸다. 결국 구글링 . . 구글링하고 광명찾자!

참고 :
1, 3, 5, 7, 8, 10, 12 -> 31일
4, 6, 9, 11 -> 30일
2 -> 28일

고려사항 :
12월 31일 -> 1월 1일

if문을 사용해 일일히 case 분류를 하자 기괴한 코드가 등장했다. 아무리봐도 이건 pass가 떠도 양심에 찔린다 싶을 정도여서 공개하지않는다..

#문제
월(month)와 일(day), 2가지를 input 값으로 받습니다.
2019년의 해당 월과 일의 다음 날의 월과 일을 출력해주세요.

해답은 간단했다. 말일이 같은 월을 모아서 변수를 지정한다.

if month == 4 or 6 or 9 or 11 :
    day_length = 30
    
# 다른 월도 마찬가지로 day_length를 지정

day가 day_length보다 작으면 day + 1
day가 day_length와 같으면 다음달로 ! ( month + 1, day = 1)

if day < day_length :
    day +=
else : 
    day = 1
    if month == 12 :
        month =1
    else :
        month +=
        
# 12월은 특별케이스니까 따로 조건 정리 

3. *args 와 **kwargs

python 에서는 함수에 넘길 parameter을 직접 선언해야 한다. 함수를 지정할 땐 parameter을 두 개로 설정해도 언젠가는 함수의 parameter을 세개, 네개로 변경해야할 수도 있고 더 나아가 필요한 parameter의 수가 무한히 많아질 수도 있다. 하지만 그럴때마다 함수를 수정하거나 쓸지 안쓸지도 모를 parameter을 모두 선언할 순 없다. 이 문제를 해결하기 위해 args 와 kwargs가 등장한다 !

argskwargs는 아주 다양하고 무한한 숫자의 arguments를 함수로 보낼 수 있게 도와준다.
parameter의 이름은 얼마든지 변경 가능하다. 그렇기때문에 '*'(asterisk)의 개수를 정확히 입력해서 사용하고자 하는 argument를 지정해야한다.

  • args : non - keyworded variable length of arguments

  • kwargs : keyworded variable length of arguments

    반환되는 값이 딕셔너리의 형태로 저장된다.

def order(**kwargs) :
    print(kwargs)
    
order(coffee='Americano', sugar='No', size = 'Grande')
#('coffee' : 'American', 'sugar':'No', 'size':'Grande')

결론

이 친구들과 함께라면 argument가 어떠한 형태라도! 무한히 많아도! 허용가능하다.

4.Function Parameter

Python replit ->링크


하루 끝 !

profile
Make my day !

0개의 댓글