면접 예상 질문(4)(파이썬(2))

최동혁·2023년 3월 26일
0

면접 질문

목록 보기
5/9

python

파이썬에서 %s를 사용해본적 있나요? 있다면 어떻게 사용하셨나요?

  • 네 사용해본적 있습니다.
  • %s 형식 지정자를 사용하여 값을 문자열에 푸시하는 방식으로 사용했습니다.
  • Python의 서식 지정 작업에는 C 함수 printf()와 유사한 구문이 있습니다.
first_name = "동혁"
last_name = "최"
introduce = "My name is %s %s. Nice to meet you." % (first_name, last_name)
print(introduce)
>>> My name is 동혁 최. Nice to meet you.

파이썬에서 docstring을 사용해본적 있나요?

  • 네 사용해본적 있습니다.
  • 코드의 문서화에 도움을 주기 위해 사용했습니다.

docstring과 주석의 차이점에 대해서 설명해주세요.

  • 둘 다 프로그램 실행에 영향을 주지는 않지만, docstring은 doc 속성에 추가되고, 주석은 추가되지 않습니다.
  • docsting을 작성해놓으면, help 메소드나 doc 속성에 접근해서 해당 설명 글을 불러올 수 있습니다.
def test():
    """
    나는 동혁이야.
    안녕 반가워.
    """

help(test)
>>> test()
    나는 동혁이야.
    안녕 반가워.
print(test.__doc__)
>>> 나는 동혁이야.
    안녕 반가워.

python에서 함수의 인자 호출 방식에 대해서 설명해주세요.

  • python은 call by assignment입니다.
  • 인자로 받는 객체의 자료형이 Immutable Object인 경우에는 Call by value형식으로 변수를 핸들링하고,
    Mutable Object인 경우에는 Call by reference형식으로 변수르 핸들링 합니다.

call by value에 대해서 설명해주세요.

  • 함수의 인자를 받을 때, 변수에 담긴 값을 Stack에 복사해서 넘겨주는 방식입니다.
  • 따라서 함수 내에서 해당 인자를 바꾸었다고 해도 원본 변수 a는 변하지 않는다.

call by reference에 대해서 설명해주세요.

  • 함수의 인자를 받을 때, 변수가 가리키는 주소값을 전달합니다.

  • 따라서 함수 내에서 해당인자를 조작하면 원본 변수의 주소 값을 타고 들어가 해당 값 자체가 변하게 됩니다.

  • 만약 list 같은 mutable한 객체를 독립적으로 관리하고 싶다면, deepcopy를 이용하면 됩니다.

python에서 함수가 값을 반환하는 것이 필수일까요?

  • 파이썬에서 함수는 반환값이 없어도 됩니다. 반환값이 없는 함수를 정의하는 것도 가능합니다.
  • 반환값이 없는 함수를 정의할 때는 함수 내부에서 결과를 반환하지 않도록 return 키워드를 생략하면 됩니다.

id()는 어떤 역할을 할까요?

  • 하나의 매개변수를 인자로 받으며, 해당 변수와 연결된 고유 식별자를 반환합니다.

args와 kwargs를 아시나요? 아는 선에서 설명해주세요.

  • args는 arguments의 줄임말입니다.
  • 이 지시어는 여러 개(복수개의)의 인자를 함수로 받고자 할 때 쓰입니다.
  • kwargs는 keyword argument의 줄임말로 키워드를 제공합니다.
  • 특정 key = value 형태로 전달하면 dict 형태로 바꾸어서 함수 내부로 전달됩니다.
def test(*args, **kwargs):
    print(args)
    print(kwargs)

test(3, 4, 6, Myname="hi", test="success")
>>> (3, 4, 6)
	{'Myname': 'hi', 'test': 'success'}

35번 문항까지 정리

profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글