내일배움캠프 12일차

김서영·2022년 9월 15일
0

내일배움캠프 TIL

목록 보기
14/85

1. 파이썬 심화

1) 함수 심화

  • 인자에 기본값 지정해주기
    이 내용을 이해하려면 함수에 대해 확시하게 알고 있어야 한다.

    <함수의 기본 구조>

    1. 함수를 정의(def 함수이름(인자))
    2. 인자로 받을 값을 함수에 지정(여러개도 가능)
    3. 함수 아래에 return 작성(return은 정의하지 않거나 return 자체를 적지 않으면 기본적으로 none이 나온다.)
    4. return 아래에 print(함수(인자값))

    예시)

  • option
    : 정의된 인자 수 만큼 인자를 입력하지 않아도 오류가 나지 않게 해준다.
    예시)

    ❕ 정의된 인자 수 만큼 인자를 입력한 경우

    ❕ 정의된 인자 수 만큼 인자를 입력하지 않은 경우

    심화예제)

  • args / kwargs에 대한 이해
    args(arguments)와 kwargs(keyword arguments)는 함수에서 인자로 받을 값들의 갯수가 불규칙 하거나 너무 많을 대 사용한다.
    인자로 받을 값이 정해져 있지 않기 때문에 함수를 더 동적으로 사용 가능하다.
    한 함수에 1개씩만 적용 가능!

  • args 활용하기
    함수 선언하는 법 : *args(args 앞에 * 붙이기)
    args형태 -> tuple(튜플)
    예시1)

  • kargs 활용하기
    함수 선언하는 법 : **kargs(kargs 앞에 ** 붙이기)
    kargs형태 -> dict(딕셔너리)

    예시1)

    예시1 결과값)

    예시2)

    예시2 결과값)

  • args / kwargs 같이 사용해보기

    예시)

    결과값)

  • .Get

    키값이 있으면("key") 벨류값을 프린트 하고("value"), 키값이 없으면("key"가 아니라 "k"이기 때문에 키값이 없음) "key는 없습니다"를 출력

2) 패킹과 언패킹

패킹(packing)과 언패킹(unpacking)은 단어의 뜻 그대로 요소들을 묶어주거나 풀어주는것을 의미한다.
list 혹은 dictionary의 값을 함수에 입력할 때 주로 사용!

  • list에서 활용하는 경우

    • 언패킹을 활용하는 이유!

      => 위처럼 코드를 작성하는 경우 numbers 리스트 자체가 add함수에 삽입되어 add([1,2,3,4])가 되기 때문에 TypeError 오류가 뜬다.
    • 언패킹을 사용하면?

      => 언패킹을 원하는 리스트 이름 앞에 *을 붙여주면 언패킹이 된다.
      때문에 위의 예시에서 언패킹으로 numbers의 리스트를 풀면 add(1, 2, 3, 4)가 되고 4개의 요소가 함수에 들어가게되어 오류가 나지 않는다!
      ❗ 하지만 여러겹의 리스트를 언패킹 할수는 없다 ❗
  • dictionary에서 활용하는 경우

    예시)

    결과값)

    => 언패킹을 원하는 경우 원하는 딕셔너리 앞에 **을 붙여주면 언패킹이 된다.
    user_profile의 딕셔너리가 언패킹이 되어 set_profile 안에 각각의 요소들이 잘 입력된다.

3) auto docstring vscode extension

https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring
함수에 대한 정보가 담긴 주석이 자동완성 되는 프로그램이라고 한다.
사용하면 편리하고 도움이 많이 된다고 하니 설치해봐야 겠다.

"""나 '''을 치고 엔터를 치면 (extension이 설치된 상태에서) 자동으로 나타나고,
단축키로 사용하려면 ctrl(cmd)+shift+2 를 입력하면 된다!

💜 오늘 느끼고 배운 점
오전 : 파이썬 실시간 강의 수강
오후 : 파이썬 강의 복습 및 정리
저녁 : 백준 알고리즘 풀기
오늘은 파이썬 실시간 강의 마지막 시간이었다. 함수의 기본적인 구조를 다시 설명을 해주시며 함수의 option, args, kwargs와 list나 dictionary의 패킹과 언패킹에 대해 배웠다. 오늘 배운것들을 실전에서 사용해보지는 않아 어떤 때에 사용해야 할지 감이 잡히지는 않지만 option, args, kwargs를 사용하여 함수를 더 다양하게 사용할 수 있게 될 것 같다는 생각을 했다. auto docstring 확장자는 튜터님께서 유용하게 사용할 수 있는 확장자라고 소개해주셔서 깔아서 사용해봐야겠다!

profile
개발과 지식의 성장을 즐기는 개발자

0개의 댓글