[PYTHON] Python 면접 예제 1편





파이썬은 프로그래밍 입문 언어로 많이 알려져 있습니다. 물론 초고급으로 가면 어떤 언어나 어렵고, 프로그래밍 자체보다 시스템에 맞는 프로그래밍을 하기 어렵습니다. 더욱이, 다른 사람들과 협업을 시작하게 되면, 버전컨트롤을 포함한 소스코드 관리 능력부터 마감을 맞추는 능력까지 전부 프로그래밍 또는 코딩 말고 다른 일로 힘이들기 시작하죠. 코딩 자체가 힘든 적은 이제껏 엔지니어로 일하면서 한번도 없었습니다. 문제는 언제나 해결되기 마련이니까요. 


여기서 벗어난 적은 없었습니다. 만약 여기서 벗어난 질문을 받으셨다면, 아마.. 면접관이 떨어트리고 싶어했거나.. 면접자를 떨어트리고 싶으시다면, 면접관의 위치에서 이 범위 밖에 질문을 하시면 하시면 되지 않을까 싶습니다. 파이썬에 필요한 핵심만 모아 보았습니다. 질문 번호가 올라갈 수록 아주 조금씩 난이도가 올라갑니다. 아 물론, 완벽한 정답이 아닐 수도 있고, 파이썬보다 더 큰 범주의 문제가 있을 수도 있습니다.(파이썬뿐 아니라 다른 언어에도 해당될 수 있는 문제)






질문 #1. 파이썬의 주요 특징에 대해 이야기 해보세요.

  • 이썬은 인터프리터 언어 이며, 동적타이핑 언어 입니다. 파이썬은 객체지향언어 이고, 간결하고 단순하며 엄청난 크기의 커뮤니티의 지원을 받고 있습니다.



질문 #2. 파이썬에서 list와 tuple의 차이점에 대해 말해보세요.

  • list는 데이터를 변경할 수 있고, tuple은 변경이 할 수 없습니다.

확인코드:

l = [1, 2 ,3]
t = (1, 2, 3)
print(l[0], t[0])

l[0] = 10
print(l)
t[0] = 10
print(t) >>> 1 1 >>> [10, 2, 3] Traceback (most recent call last): File "test.py", line 10, in <module> t[0] = 10 TypeError: 'tuple' object does not support item assignment



질문 #3. 파이썬의 삼향연산자(ternary operator)에 대해 설명하세요.

예상 정답(한국어):

  • 자바스크립트나 C++과 달리 파이썬에는 삼향연산자가 없습니다. 하지만 파이썬에게는 비슷한 역할을 하는 다른 기능이 있습니다. 
    [Returning Value on True] if [Conditional Statement] else [Returning Value on False]

확인코드:

test_score = 100
passed = True if test_score == 100 else False

print(passed)

test_score = 50
passed = True if test_score == 100 else False

print(passed) >>> True >>> False



질문 #4. 리스트에서 음수 인덱스를 사용하면 어떻게 되나요?

  • 음수 인덱스를 사용하면 가장 오른쪽 데이터를 기준으로 -1이 첫 번째 데이터 이며, 오른쪽부터 검색을 시작합니다.





질문 #5. 변수나 함수 같은 식별자 길이의 제한이 있나요?

  • 공식 파이썬 문서에서는 제한이 없다고 나와 있습니다. 하지만 PEP-8 가이드라인은 한줄 최대 79자를, PEP-20은 가독성이 중요하다고 표현하고 있습니다. 그래서 너무 긴 식별자는 PEP-8과 PEP-20을 위반합니다.



질문 #6. pass와  continue의 차이는 무엇인가요?

  • 파이썬은 함수등을 작성할때 반드시 무언가를 써야 문법적으로 올바르기 때문에, pass를 사용하여 문법 오류를 막을 수 있습니다. continue는 반복문에서 해당 반복문을 해당 위치에서 더이상 진행하지 말고 다음 이터레이션으로 넘어가게 하는 것 입니다.



질문 #7. 파이썬에게 어떤 약점이 있나요?

  • 파이썬은 인터프리터 언어로 속도의 약점이 있습니다.
  • 파이썬은 많은 것을 할 수 있지만, 모바일 컴퓨팅에 약점이 있고 브라우저안에서 JavaScript 처럼 객체를 다룰 수 없습니다.
  • 동적타이핑 언어이기 때문에 덕타이핑(Duck-typing)을 사용합니다. 여기서 런타임 에러가 발생할 수 있습니다.



질문 #7. 파이썬에서 현재 작업중인 디렉토리를 확인하는 방법이 무엇인가요?

  • os 모듈안에  getcwd(get current working directory) 메소드를 사용하면 됩니다.

확인코드:

import os
print(os.getcwd()) >>> C:\Users\abc\PycharmProjects\abc



질문 #8. 파이썬 빌트인 함수에 대해 아는대로 말해보세요.

  • complex()
  • eval()
  • filter()
  • format()
  • hash()
  • hex()
  • len()
  • open()
  • min()
  • max()
  • abs()
  • sum()

    ...

확인코드:

print('complex() :', complex(10.5, 20))  # 복소수를 만들어 냅니다
eval("print('eval() :', 'abc')") # string으로 된 파이썬 코드를 실행 시킵니다.
print("filter() :", list(filter(lambda x : x % 2 == 0, [1, 2, 0, 4]))) # 조건문에 부합하면 제외
print("format() : ", 'Hello {}'.format('딩그르르!')) # {} 안에 문자열 삽입
print("hash() : ", hash('abc')) # 해시 함수 안 객체를 해시 합니다.
print("hex() :", hex(14)) # 16진수로 변경
print("len() : ", len("ABC")) # 문자열, 컨테이너 객체 길이(갯수)

txt = open('txt.txt') # 파일을 엽니다.

l = [1, 34, 7, 4, 3, 5, 2]
print('min() : ', min(l)) # 최소값 찾기
print('max() : ', max(l)) # 최대값 찾기
print('abs() : ', abs(-13)) # 절대값 찾기
print('sum() : ', sum(l)) # 리스트 데이터 모두의 합 complex() : (10.5+20j) eval() : abc filter() : [2, 0, 4] format() : Hello 딩그르르! hash() : -3303280273215439683 hex() : 0xe len() : 3 min() : 1 max() : 34 abs() : 13 sum() : 56



질문 #9. 리스트에서 중복값을 제외 하려면 어떻게 해야 하나요.

  • 리스트를 set으로 변경하면 됩니다.

확인코드:

l = [ 12, 343, 65, 87, 123, 1, 1, 12, 87]
print(l)
print(set(l)) >>> [12, 343, 65, 87, 123, 1, 1, 12, 87] >>> {65, 1, 12, 87, 123, 343}





질문 #10. 오퍼레이터중 //, % , ** 에 대해 설명하세요.

  • // 는 나눗셈 후 내림한 정수를 반환합니다.
  • %는 나눗셈 후 나머지를 반환합니다.
  • **는 제곱값을 반환합니다. 2**3은 2의 3승(세제곱) 입니다.

확인코드:

print(11//2)
print(11%2)
print(2**4) >>> 5 >>> 1 >>> 16




  • [[a.original_name]] ([[a.file_size | fileSizer]])
'파이썬 면접문제 모음' 시리즈 포스트
[PYTHON] Python 면접 예제 1편
2020-03-11
[PYTHON] Python 면접 예제 2편
2020-03-14
좋아요[[ postLike | likePlus ]]
공유
라이언

“Lead Python Engineer”

댓글 [[totalCommentCount]]
[[ comment.author__nick_name ]] [[ comment.datetime_updated | formatDate]] (수정됨)

[블라인드 처리된 글 입니다.]

답장
[[ sub.author__nick_name ]] [[ sub.datetime_created | formatDate ]] (수정됨)

취소
댓글을 남겨주세요.
'파이썬' 관련 최신 포스트
[[ post.title ]]
[[ post.datetime_published_from | DateOnly ]]