본문 바로가기

메이커 Maker

주옥같은 Python 인터뷰 질문 및 답변 50가지

반응형

 

 

Python 인터뷰 질문 및 답변 50가지

 

1. 파이썬이란 무엇입니까?

 

기술 세계에서 널리 사용되는 Python 응용 프로그램을 나열해 보세요. Python은 널리 사용되는 범용 고급 프로그래밍 언어입니다. 1991년 Guido van Rossum에 의해 만들어졌으며 Python Software Foundation에 의해 추가로 개발되었습니다. 코드 가독성에 중점을 두고 설계되었으며 그 구문을 통해 프로그래머는 더 적은 줄의 코드로 개념을 표현할 수 있습니다.

 

이는 다음 용도로 사용됩니다:

 

● 시스템 스크립팅
● 웹 개발
● 게임 개발
● 소프트웨어 개발
● 복잡한 수학

 

2. 현재 시나리오에서 Python 언어를 도구로 사용하면 어떤 이점이 있습니까?

 

Python 언어를 사용하면 다음과 같은 이점이 있습니다.
● 객체지향 언어
● 고급 언어
● 동적으로 유형화 된 언어
● 광범위한 지원 라이브러리
● 타사 모듈의 존재
● 오픈소스 및 커뮤니티 개발
● 휴대용 및 대화형
● 운영 체제 전반에 걸쳐 이식 가능

 

3. Python은 컴파일된 언어입니까 아니면 해석된 언어입니까?

 

실제로 Python은 부분적으로 컴파일된 언어이자 부분적으로 해석된 언어입니다. 컴파일 부분은 코드를 실행할 때 먼저 수행되며 내부적으로 바이트 코드가 생성됩니다. 이 바이트 코드는 기본 플랫폼(머신+운영 체제)에 따라 Python 가상 머신(p.v.m)에 의해 변환됩니다.

 

4. Python에서 '#' 기호는 무엇입니까?

 

'#'은 해당 줄 뒤에 오는 모든 것에 대해 주석을 달기 위해 사용됩니다.

 

5. 가변 데이터 유형과 불변 데이터 유형의 차이점은 무엇입니까?

 

● 변경 가능한 데이터 유형은 편집할 수 있습니다. 즉, 런타임 시 변경될 수 있습니다. 예 - List, Dictionary 등
● 불변 데이터 유형은 편집할 수 없습니다. 즉, 런타임 시 변경할 수 없습니다. 예 – String, Tuple 등

 

6. Python에서 인수는 값 또는 참조로 어떻게 전달됩니까?

 

Python의 모든 것은 객체이며 모든 변수는 객체에 대한 참조를 보유합니다. 기준값은 기능에 따라 다릅니다. 결과적으로 참조 값을 변경할 수 없습니다. 그러나 객체가 변경 가능한 경우 객체를 변경할 수 있습니다.

 

7. 세트와 사전의 차이점은 무엇입니까?

 

● 세트는 반복 가능하고 변경 가능하며 중복 요소가 없는 데이터 유형의 정렬되지 않은 컬렉션입니다.
● Python의 사전은 지도와 같이 데이터 값을 저장하는 데 사용되는 데이터 값의 정렬되지 않은 모음입니다.

 

8. 목록 이해란 무엇입니까? 예를 들어보세요.

 

List Comprehension은 기존 반복 가능 항목을 기반으로 목록 생성을 쉽게 하기 위한 구문 구성입니다. 예를 들어:
my_list = [i for i in range(1, 10)]

 

9. 람다 함수란 무엇입니까?

 

람다 함수는 익명 함수입니다. 이 함수는 매개변수를 얼마든지 가질 수 있지만 명령문은 하나만 가질 수 있습니다. 예를 들어:
a = lambda x, y : x*y
print(a(7, 19))

출력: 133

 

10. Python에서 패스란 무엇입니까?

 

Pass는 아무 작업도 수행하지 않음을 의미합니다. 즉, 공백이 남아 있어야 하고 거기에 아무 것도 쓸 필요가 없는 복합 명령문의 자리 표시자입니다.

 

11. Python에서 /와 //의 차이점은 무엇입니까?

 

//는 반올림 구분을 나타내고, /는 소숫점 구분을 나타냅니다.
5//2=2
5/2 = 2.5

 

12. Python에서 예외 처리는 어떻게 수행됩니까?

 

● 예외를 포착하고 이에 따라 복구 메커니즘을 처리하는 데 사용되는 3가지 주요 키워드(try, Except 및 finally)가 있습니다. Try는 오류를 모니터링하는 코드 블록입니다. 단, 오류가 발생하면 블록이 실행됩니다.
● 마지막 블록의 장점은 오류를 시도한 후 코드를 실행한다는 것입니다. 이 블록은 오류 발생 여부에 관계없이 실행됩니다. 마지막으로 블록은 개체/변수의 필수 정리 활동을 수행하는 데 사용됩니다.

 

13. Python의 swapcase 함수란 무엇입니까?

 

모든 대문자를 소문자로 또는 그 반대로 변환하는 문자열의 함수입니다. 문자열의 기존 대소문자를 변경하는 데 사용됩니다. 이 메서드는 스왑 사례의 모든 문자를 포함하는 문자열의 복사본을 만듭니다.


string = “Hello Pune”
string swapcase() -> "hELLO pUNE"

 

14. Python의 for 루프와 while 루프의 차이점

 

● "for" 루프는 일반적으로 List, Tuple, Set 및 Dictionary와 같은 다양한 컬렉션 유형의 요소를 반복하는 데 사용됩니다. 개발자는 시작 조건과 끝 조건이 모두 있는 "for" 루프를 사용합니다.
● "while" 루프는 다른 프로그래밍 언어에서 사용되는 실제 루프 기능입니다. 프로그래머는 종료 조건만 있는 Python while 루프를 사용합니다.

 

15. Python에서 함수를 인수로 전달할 수 있나요?

 

예, 객체, 변수(동일하거나 별개의 데이터 유형) 및 함수를 포함하여 여러 인수를 함수에 전달할 수 있습니다. 함수는 객체이기 때문에 다른 함수에 매개변수로 전달될 수 있습니다. 고차 함수는 다른 함수를 인수로 사용할 수 있는 함수입니다.

 

16. "args"와 "kwargs"란 무엇입니까?

 

Python에서 함수에 가변 개수의 인수를 전달하려면 함수 사양에 특수 구문 *args 및 **kwargs를 사용합니다. 가변 길이의 키워드가 없는 인수 목록을 전달하는 데 사용됩니다. "를 사용하면 와 연관되는 변수가 반복 가능해지며 이를 반복하고 맵 및 필터와 같은 고차 작업을 사용하는 등의 작업을 수행할 수 있습니다.

 

17. 파이썬에서는 들여쓰기가 필요합니까?

 

예, Python에서는 들여쓰기가 필요합니다. Python 들여쓰기를 사용하면 명령문 그룹이 특정 코드 블록에 속한다는 사실을 Python 인터프리터에 알릴 수 있습니다. 들여쓰기를 사용하면 모든 프로그래밍 언어의 개발자가 코드를 쉽게 읽을 수 있지만 Python에서는 특정 순서로 코드를 들여쓰기하는 것이 매우 중요합니다.

 

18. Python의 범위란 무엇입니까?

 

변수를 찾을 수 있고 필요한 경우 변수에 액세스할 수도 있는 위치를 변수 범위라고 합니다.
● 지역 변수: 지역 변수는 함수 내에서 초기화되는 변수입니다. 해당 기능에 고유합니다. 함수 외부에서는 접근할 수 없습니다.
● 전역 변수: 전역 변수는 함수 외부에서 정의 및 선언되며 함수에 제한받지 않습니다.
● 모듈 수준 범위: 프로그램에서 액세스할 수 있는 현재 모듈의 전역 개체를 나타냅니다.
● 가장 바깥쪽 범위: 프로그램이 호출할 수 있는 모든 내장 이름을 나타냅니다. 참조된 이름은 이 범위의 개체 중에서 마지막에 위치합니다.

 

19. Python의 독스트링이란 무엇입니까?

 

● Python 문서 문자열(또는 Docstring)은 문서를 Python 모듈, 함수, 클래스 및 메서드와 연결하는 편리한 방법을 제공합니다.
● 독스트링 선언: 독스트링은 "세 개의 작은따옴표 또는 삼중 따옴표"를 사용하여 선언됩니다. 클래스, 메소드 또는 함수 선언 바로 아래에 큰따옴표가 있습니다. 모든 기능은 독스트링을 가지고 있습니다.
● 독스트링 접근: 독스트링은 _doc_ 메소드를 사용하여 접근할 수 있습니다. 개체를 사용하거나 도움말 기능을 사용합니다.

 

20. 동적 유형 언어란 무엇입니까?

 

Typed Language는 데이터 유형의 유형을 정의하는 언어이며 컴파일 타임이나 런타임에 기계에 의해 인식됩니다. 입력된 언어는 두 가지 범주로 분류될 수 있습니다.
● 정적 유형 언어: 이 유형의 언어에서는 변수의 데이터 유형이 컴파일 타임에 알려집니다. 즉, 프로그래머는 변수 선언 시 변수의 데이터 유형을 지정해야 합니다.
● 동적 유형 언어: 이는 기계 자체에서 런타임 시 해석되므로 변수에 대해 사전 정의된 데이터 유형이 필요하지 않은 언어입니다. 이러한 언어에서 인터프리터는 해당 값에 따라 런타임 시 변수에 데이터 유형을 할당합니다.

 

21. Python에서 중단, 계속, 통과란 무엇입니까?

 

● break 문은 그것이 존재하는 루프나 문을 종료하는 데 사용됩니다. 그 후, 제어는 가능한 경우 break 문 뒤에 있는 명령문으로 전달됩니다.
● Continue는 break 문과 마찬가지로 루프 제어 문이기도 합니다. continue 문은 break 문과 반대로 루프를 종료하는 대신 루프의 다음 반복을 강제로 실행합니다.
● Pass는 아무 작업도 수행하지 않음을 의미합니다. 즉, 공백이 남아 있어야 하고 거기에 아무 것도 쓸 필요가 없는 복합 명령문의 자리 표시자입니다.

 

22. Python의 내장 데이터 유형은 무엇입니까?

 

다음은 Python의 표준 또는 내장 데이터 유형입니다.
● 숫자: Python의 숫자 데이터 유형은 숫자 값이 있는 데이터를 나타냅니다. 숫자 값은 정수, 부동 숫자, 부울 또는 복소수가 될 수 있습니다.
● 시퀀스 유형: Python의 시퀀스 데이터 유형은 유사하거나 다른 데이터 유형의 순서가 지정된 모음입니다. Python에는 여러 시퀀스 유형이 있습니다.
● String
● List
● Tuple
● Dictionary
● Rabge
● 매핑 유형: Python에서는 매핑 개체를 사용하여 해시 가능한 데이터를 임의의 개체에 매핑할 수 있습니다. 현재는 하나의 공통 매핑 유형인 사전과 매핑 개체가 변경 가능합니다.
● 집합: Python에서 집합은 반복 가능하고 변경 가능하며 중복 요소가 없는 데이터 유형의 순서가 지정되지 않은 모음입니다. 집합의 요소 순서는 정의되지 않지만 다양한 요소로 구성될 수 있습니다.

 

23. 파이썬으로 숫자를 어떻게 바닥에 놓는가?

 

Python 수학 모듈에는 숫자의 최소값을 계산하는 데 사용할 수 있는 메서드가 포함되어 있습니다. Python의 Floor() 메소드는 x의 바닥, 즉 x보다 크지 않은 가장 큰 정수를 반환합니다.
Python의 ceil(x)는 x의 상한값, 즉 x보다 크거나 같은 가장 작은 정수를 반환합니다.

 

24. xrange와 range 함수의 차이점은 무엇입니까?

 

range()와 xrange()는 Python의 for 루프에서 특정 횟수만큼 반복하는 데 사용할 수 있는 두 가지 함수입니다. Python 3에는 xrange가 없지만 range 함수는 Python 2의 xrange처럼 동작합니다.
● range() range() 함수를 사용하여 생성된 숫자 목록을 반환합니다.
● xrange()-이 함수는 반복을 통해서만 숫자를 표시하는 데 사용할 수 있는 생성기 개체를 반환합니다. 요청 시 유일한 특정 범위가 표시되므로 지연 평가라고 합니다.

 

25. 사전이해란 무엇인가요? 예를 들어보세요

 

Dictionary Comprehension은 기존 iterable을 기반으로 사전 생성을 쉽게 하기 위한 구문 구성입니다.
my_dict={i:1+7 for i in range(1, 10)}

 

26. 튜플 이해력이 있나요? 그렇다면 어떻게, 그렇지 않다면 이유는 무엇입니까?

 

(i for in(1, 2, 3)) 튜플 이해는 튜플 이해가 아닌 생성기에서 끝나기 때문에 Python에서는 불가능합니다.

 

27. 리스트와 튜플을 구별하나요?

 

List와 Tuple의 차이점을 분석해 보겠습니다.
List

● 목록은 변경 가능한 데이터 유형입니다.
● 목록은 더 많은 메모리를 소비합니다.
● 목록은 삽입 및 삭제와 같은 작업을 수행하는 데 더 좋습니다.
● 반복에는 시간이 많이 소요됩니다.
Tuple
● 튜플은 불변 데이터 유형입니다.
● 튜플은 리스트에 비해 메모리를 덜 소모합니다.
● Tuple 데이터 유형은 요소에 액세스하는 데 적합합니다.
● 반복의 의미는 비교적 빠릅니다.

 

28. 얕은 복사본과 깊은 복사본의 차이점은 무엇입니까?

 

얕은 복사는 새 인스턴스 유형이 생성될 때 사용되며 복사된 값을 유지하는 반면, 깊은 복사는 이미 복사된 값을 저장합니다.
얕은 복사본은 프로그램 실행 속도가 빠르지만 깊은 복사본은 속도가 느려집니다.

 

29. Python의 sort() 및 sorted() 함수에서 사용되는 정렬 기술은 무엇입니까?

 

Python은 정렬을 위해 Tim Sort 알고리즘을 사용합니다. 최악의 경우가 O(N log N)인 안정적인 정렬입니다. 이는 병합 정렬과 삽입 정렬에서 파생된 하이브리드 정렬 알고리즘으로, 다양한 종류의 실제 데이터에서 잘 작동하도록 설계되었습니다.

 

30. 데코레이터란 무엇입니까?

 

간단히 말해서 데코레이터는 함수를 쉽게 변경하기 위해 Python 구문에서 수행하는 특정 변경 사항입니다.

 

31. Python 프로그램을 어떻게 디버깅합니까?

 

● Python에서는 코드 디버깅을 위해 디버거 pdb를 사용할 수 있습니다. 디버깅을 시작하려면 Python 스크립트 상단에 다음 줄을 입력해야 합니다.
imporrt pdb
pdb.set_trace()

● 이 줄을 추가하면 코드가 디버그 모드에서 실행됩니다. 이제 디버깅을 위해 중단점, 단계별 실행, 단계별 실행 등과 같은 명령을 사용할 수 있습니다.
● 다음 명령을 사용하여 Python 프로그램을 디버깅할 수 있습니다.
$ python -m pdb python-script.py

 

32. Python의 반복자는 무엇입니까?

 

Python에서 반복자는 목록과 같은 컨테이너인 요소 그룹을 반복하는 데 사용됩니다. 반복자는 항목의 컬렉션이며 목록, 튜플 또는 사전일 수 있습니다. Python 반복자는 저장된 요소를 반복하기 위해 _itr_ 및 next() 메서드를 구현합니다. 우리는 일반적으로 Python에서 컬렉션(목록, 튜플)을 반복하기 위해 루프를 사용합니다.

 

33. Python의 제너레이터란 무엇입니까?

 

● Python에서 생성기는 반복자를 구현하는 방법을 지정하는 방법입니다. 함수에서 표현식을 생성한다는 점을 제외하면 일반적인 함수입니다. itrand next() 메소드를 구현하지 않으며 다른 오버헤드도 줄입니다. ● 함수에 최소한 항복 문이 포함되어 있으면 생성기가 됩니다. Yield 키워드는 상태를 저장하여 현재 실행을 일시 중지한 다음 필요할 때 동일한 상태에서 다시 시작합니다.

 

34. 파이썬은 다중 상속을 지원합니까?

 

Python은 Java와 달리 다중 상속을 지원합니다. 다중 상속이란 클래스가 둘 이상의 상위 클래스에서 파생될 수 있음을 의미합니다.

 

35. Python의 다형성과 캡슐화란 무엇입니까?

 

• 다형성은 다양한 형태를 취할 수 있는 능력을 의미합니다. 예를 들어 상위 클래스에 ABC라는 메서드가 있는 경우 하위 클래스에도 자체 매개변수와 변수가 있는 ABC라는 이름의 메서드가 있을 수 있습니다. 파이썬은 다형성을 허용합니다. • 캡슐화는 코드와 데이터를 함께 바인딩하는 것을 의미합니다. Python 클래스는 캡슐화의 예입니다.

 

36. Python의 가비지 수집이란 무엇입니까?

 

Python의 가비지 수집은 메모리와 힙 할당을 자동으로 관리합니다. 간단히 말해서, 메모리를 확보하기 위해 원하지 않거나 사용하지 않는 개체를 자동으로 삭제하는 프로세스를 Python에서는 가비지 수집이라고 합니다.

 

37. Python에서는 데이터 추상화를 어떻게 수행합니까?

 

데이터 추상화는 필요한 세부 정보만 제공하고 구현을 세상으로부터 숨깁니다. 인터페이스와 추상 클래스를 사용하여 Python에서 구현할 수 있습니다.

 

38. Python에서는 메모리 관리가 어떻게 이루어지나요?

 

Python은 개인 힙 공간을 사용하여 메모리를 관리합니다. 기본적으로 모든 객체와 데이터 구조는 개인 힙 공간에 저장됩니다. 이 사적인 공간은 인터프리터가 관리하기 때문에 프로그래머도 접근할 수 없습니다. Python에는 또한 사용되지 않은 모든 메모리를 재활용하고 메모리를 해제하여 힙 공간에서 사용할 수 있도록 하는 내장된 가비지 수집기가 있습니다.

 

39. Python을 사용하여 파일을 삭제하는 방법은 무엇입니까?

 

다음 접근 방식을 통해 Python을 사용하여 파일을 삭제할 수 있습니다.
● os.remove()
● os.unlink()

 

40. Python에서 슬라이싱이란 무엇입니까?

 

Python Slicing은 문자열의 일부 또는 목록의 일부를 추출하는 문자열 작업입니다. 이 연산자를 사용하면 슬라이싱을 시작할 위치와 끝낼 위치를 지정하고 단계를 지정할 수 있습니다. 목록 분할은 기존 목록에서 새 목록을 반환합니다.
Lst[ Initial : End : Index_Jump ]

 

41. Python에서 네임스페이스란 무엇입니까?

 

네임스페이스는 이름 충돌을 피하기 위해 이름이 고유한지 확인하는 데 사용되는 명명 시스템입니다.

 

42. PIP란 무엇입니까?

 

PIP는 다양한 Python 모듈을 설치할 수 있는 원활한 인터페이스를 제공하는 Python Installer Package의 약어입니다. 인터넷을 통해 패키지를 검색하고 사용자 개입 없이 설치할 수 있는 명령줄 도구입니다.

 

43. zip 기능이란 무엇입니까?

 

Python zip() 함수는 여러 컨테이너의 유사한 인덱스를 매핑하는 zip 개체를 반환합니다. iterable을 가져와 iterator로 변환하고 전달된 iterable을 기반으로 요소를 집계합니다. 튜플의 반복자를 반환합니다.

 

44. 피클링과 언피클링이란 무엇입니까?

 

Pickle 모듈은 Python 객체를 받아들이고 이를 문자열 표현으로 변환하고 dump 함수를 사용하여 파일에 덤프합니다. 이 프로세스를 피클링이라고 합니다. 저장된 문자열 표현에서 원본 Python 객체를 검색하는 프로세스를 역피클링이라고 합니다. Python에는 pickle이라는 모듈이 있습니다. 이 모듈에는 Python 객체 구조의 직렬화 및 역직렬화를 위한 강력한 알고리즘이 구현되어 있습니다.

 

45. Python에서 함수형 프로그래밍을 어떻게 할 수 있나요?

 

함수형 프로그래밍에서는 프로그램을 함수로 분해합니다. 이러한 함수는 입력을 받고 처리 후 출력을 제공합니다. 이 함수는 어떤 상태도 유지하지 않습니다.
Python은 Functional에 사용할 수 있는 내장 함수를 제공합니다.
프로그램 작성. 이러한 기능 중 일부는 다음과 같습니다.
● map()
● reduce
● filter()
이벤트 반복자와 생성기는 Python의 함수형 프로그래밍에 사용할 수 있습니다.

 

46. ​​Python에서 _init__()는 무엇입니까?

 

OOP 용어의 생성자와 동일합니다. _init_는 Python 클래스의 예약된 메서드입니다. _init_method는 새 개체가 시작될 때마다 자동으로 호출됩니다. 이 방법은 새 객체가 생성되자마자 해당 객체에 메모리를 할당합니다. 이 메서드는 변수를 초기화하는 데에도 사용할 수 있습니다.

 

47. 현재 시간을 표시하는 코드를 작성해 보세요.

 

current_time = time.localtime()
print(“Current time is”, current_time)

 

48. 파이썬의 접근 지정자는 무엇입니까?

 

Python은 ‘_‘ 기호를 사용하여 특정 데이터 멤버 또는 클래스의 멤버 함수에 대한 액세스 제어를 결정합니다. Python의 클래스에는 세 가지 유형의 Python 액세스 한정자가 있습니다.
● 공용 액세스 수정자: 공용으로 선언된 클래스의 멤버는 프로그램의 어느 부분에서나 쉽게 액세스할 수 있습니다. 클래스의 모든 데이터 멤버와 멤버 함수는 기본적으로 공개됩니다.
● 보호된 액세스 수정자: 공개로 선언된 클래스의 멤버는 프로그램의 어느 부분에서나 쉽게 액세스할 수 있습니다. 클래스의 모든 데이터 멤버와 멤버 함수는 기본적으로 공개됩니다.
● 프라이빗 액세스 수정자: 프라이빗으로 선언된 클래스의 멤버는 클래스 내에서만 액세스할 수 있으며, 프라이빗 액세스 수정자는 가장 안전한 액세스 수정자입니다. 클래스의 데이터 멤버는 해당 클래스의 데이터 멤버 앞에 이중 밑줄 기호 ’__‘를 추가하여 비공개로 선언됩니다.

 

49. Python의 단위 테스트란 무엇입니까?

 

단위 테스트는 소프트웨어의 테스트 가능한 가장 작은 부분을 테스트하는 첫 번째 수준의 소프트웨어 테스트입니다. 이는 소프트웨어의 각 장치가 설계된 대로 작동하는지 확인하는 데 사용됩니다. 단위 테스트 프레임워크는 Python의 xUnit 스타일 프레임워크입니다. 단위 테스트에는 White Box 테스트 방법이 사용됩니다.

 

50. 파이썬 GIL(Global Interpreter Lock)?

 

Python GIL(Global Interpreter Lock)은 Python이 프로세스를 처리할 때마다 사용하는 프로세스 잠금 유형입니다. 일반적으로 Python은 작성된 명령문 세트를 실행하기 위해 하나의 스레드만 사용합니다. 단일 스레드 프로세스와 멀티 스레드 프로세스의 성능은 Python에서 동일하며 이는 Python의 GIL 때문입니다. 스레드를 제한하고 단일 스레드로 작동하는 전역 인터프리터 잠금이 있기 때문에 Python에서는 멀티스레딩을 달성할 수 없습니다. 

 

 

다 작성하고 보니 여기에 있는 질문이네... ㅠ.ㅠ

 

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^