>백엔드 개발 >파이썬 튜토리얼 >[토혈편] 파이썬 면접 질문과 답변 50개(모음)

[토혈편] 파이썬 면접 질문과 답변 50개(모음)

青灯夜游
青灯夜游앞으로
2022-06-30 11:23:174779검색

이 기사에는 Python 면접 질문 50개와 답변이 요약되어 있습니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

[토혈편] 파이썬 면접 질문과 답변 50개(모음)

Python은 현재 프로그래밍 분야에서 가장 인기 있는 언어입니다. 이 글에서는 가장 일반적인 Python 면접 질문 50가지를 요약하겠습니다. 2019년 취업면접에서 두각을 나타내고, 고임금 일자리를 찾는 데 도움이 되기를 바라며, 각 질문마다 참고 답변을 제공합니다. 이러한 인터뷰 질문은 Python 기본, Python 프로그래밍, 데이터 분석 및 Python 함수 라이브러리와 같은 다양한 측면을 다룹니다.

Q1. Python에서 리스트와 튜플의 차이점은 무엇인가요?

Q2. 파이썬의 주요 기능은 무엇인가요?

Python은 해석된 언어입니다. C와 같은 언어와 달리 Python은 실행 전에 컴파일이 필요하지 않습니다.

Python은 동적 언어이므로 변수나 이와 유사한 것을 선언할 때 변수 유형을 선언할 필요가 없습니다.

Python은 클래스 정의는 물론 구성 및 상속도 허용하므로 객체 지향 프로그래밍에 적합합니다. Python에는 액세스 사양(예: C++의 공개, 비공개)이 없습니다.

Python에서 함수는 일급 객체입니다. 변수에 할당할 수 있습니다. 클래스도 일급 객체입니다.

Python 코드 작성은 빠르지만 실행은 느립니다. Python은 numpy 함수 라이브러리와 같은 C 기반 확장을 허용합니다.

Python은 다양한 분야에서 사용될 수 있습니다. 웹 애플리케이션 개발, 자동화, 수학적 모델링, 빅 데이터 애플리케이션 등. "접착제" 코드로도 자주 사용됩니다.

Q3. Python은 범용 프로그래밍 언어인가요?

Python은 스크립트를 작성할 수 있지만 일반적인 의미에서는 범용 프로그래밍 언어로 간주됩니다.

Q4. 파이썬은 언어를 어떻게 해석하나요?

Python은 프로그램을 실행하기 전에 프로그램을 해석할 필요가 없습니다. 따라서 Python은 해석형 언어입니다.

Q5.펩이란 무엇인가요?

PEP는 Python Enhancement Proposal을 의미합니다. 가독성을 극대화하기 위해 Python 코드의 형식을 지정하는 방법을 지정하는 규칙 집합입니다.

Q6. 파이썬에서 메모리를 관리하는 방법은 무엇인가요?

Python의 메모리 관리는 Python 개인 힙 공간에서 관리됩니다. 모든 Python 객체와 데이터 구조는 개인 힙에 있습니다. 프로그래머는 이 개인 힙에 액세스할 수 없습니다. Python 인터프리터가 이를 처리합니다.

Python 객체에 대한 힙 공간 할당은 Python의 메모리 관리자에 의해 수행됩니다. 핵심 API는 프로그래머가 코드를 작성할 수 있는 몇 가지 도구를 제공합니다.

Python에는 사용되지 않은 모든 메모리를 회수하여 힙 공간에 사용할 수 있게 해주는 가비지 수집기가 내장되어 있습니다.

Q7. 파이썬에서 네임스페이스란 무엇인가요?

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

Q8.PYTHONPATH란 무엇인가요?

모듈을 임포트할 때 사용하는 환경변수입니다. 모듈을 가져올 때마다 PYTHONPATH도 조회하여 가져온 모듈이 해당 디렉터리에 있는지 확인합니다. 이는 인터프리터가 로드할 모듈을 결정하는 데 사용됩니다.

Q9. 파이썬 모듈이란 무엇인가요? Python에서 일반적으로 사용되는 내장 모듈은 무엇입니까?

Python 모듈은 Python 코드가 포함된 .py 파일입니다. 이 코드는 함수 클래스일 수도 있고 변수일 수도 있습니다. 일반적으로 사용되는 내장 모듈로는 sys, math, random, data time, JSON이 있습니다.

Q10. 파이썬에서 지역변수와 전역변수는 무엇인가요?

전역 변수: 함수 외부나 전역 공간에 선언된 변수를 전역 변수라고 합니다. 이러한 변수는 프로그램의 모든 함수에서 액세스할 수 있습니다.

로컬 변수: 함수 내에서 선언된 모든 변수를 로컬 변수라고 합니다. 이 변수는 전역 공간이 아닌 로컬 공간에 존재합니다.

Q11. 파이썬은 대소문자를 구분하나요?

그렇습니다. Python은 대소문자를 구분하는 언어입니다.

Q12. 파이썬에서 유형 변환이란 무엇인가요?

유형 변환은 한 데이터 유형을 다른 데이터 유형으로 변환하는 것을 의미합니다.

int() - 모든 데이터 유형을 정수 유형으로 변환

float() - 모든 데이터 유형을 부동 소수점 유형으로 변환

ord() - 문자를 정수로 변환

hex() - 정수를 10진수로 변환

oct () - 정수를 8진수로 변환합니다.

tuple() - 이 함수는 튜플로 변환하는 데 사용됩니다.

set() - 이 함수는 set으로 변환한 후 유형을 반환합니다.

list() - 이 함수는 모든 데이터 유형을 목록 유형으로 변환하는 데 사용됩니다.

dict() - 이 함수는 순차 튜플(키, 값)을 사전으로 변환하는 데 사용됩니다.

str() - 정수를 문자열로 변환하는 데 사용됩니다.

complex(real, image) - 이 함수는 실수를 복소수(실수, 이미지)로 변환합니다.

Q13. Windows에 Python을 설치하고 경로 변수를 설정하는 방법은 무엇입니까?

Windows에 Python을 설치하려면 다음 단계를 따르세요.

다음 링크에서 Python을 설치하세요: https://http://www.python.org/downloads/

다운로드 후 PC에 설치하세요. 명령 프롬프트에서 cmd python 명령을 사용하여 PC에서 PYTHON이 설치된 위치를 찾으세요.

그런 다음 고급 시스템 설정으로 이동하여 새 변수를 추가하고 이름을 PYTHON_NAME으로 지정하고 복사한 경로를 붙여넣습니다.

경로 변수를 찾아 해당 값을 선택한 다음 편집을 선택하세요.

값이 없으면 값 끝에 세미콜론을 추가하고 %PYTHON_HOME%

을 입력하세요. Q14. 파이썬에서는 들여쓰기가 필요한가요?

Python에는 들여쓰기가 필요합니다. 코드 블록을 지정합니다. 루프, 클래스, 함수 등 내의 모든 코드는 들여쓰기된 블록 내에 지정됩니다. 이는 일반적으로 4개의 공백 문자를 사용하여 수행됩니다. 필요한 부분에 코드를 들여쓰지 않으면 정확하게 실행되지 않고 오류가 발생합니다.

Q15. 파이썬 배열과 리스트의 차이점은 무엇인가요?

Python의 배열과 목록은 데이터를 저장하는 방식이 동일합니다. 그러나 배열은 단일 데이터 유형 요소만 포함할 수 있는 반면 목록은 모든 데이터 유형 요소를 포함할 수 있습니다.

Q16. 파이썬에서 함수란 무엇인가요?

함수는 호출될 때만 실행되는 코드 블록입니다. Python에서 함수를 정의하려면 def 키워드를 사용해야 합니다.

Q17. __init__은 무엇인가요?

__init__는 Python의 메서드 또는 구조입니다. 이 메소드는 클래스의 새 객체/인스턴스가 생성될 때 메모리를 할당하기 위해 자동으로 호출됩니다. 모든 클래스에는 __init__ 메소드가 있습니다.

Q18. 람다 함수란 무엇인가요?

람다 함수는 익명 함수라고도 합니다. 이 함수는 여러 매개변수를 포함할 수 있지만 작업을 수행하는 데는 하나의 문만 가질 수 있습니다.

Q19. 파이썬에서 self란 무엇인가요?

self는 클래스의 인스턴스 또는 객체입니다. Python에서는 self가 첫 번째 매개변수에 포함됩니다. 그러나 Java에서는 그렇지 않으며 선택 사항입니다. 이는 지역 변수가 있는 클래스의 메서드와 속성을 구별하는 데 도움이 됩니다. init 메소드의 self 변수는 새로 생성된 객체를 참조하는 반면, 다른 메소드에서는 메소드가 호출되는 객체를 참조합니다.

Q20. 휴식, 계속, 합격을 구별하나요?

Q21. [:: - 1}은 무슨 뜻인가요?

[:: - 1]은 배열이나 시퀀스의 순서를 바꾸는 데 사용됩니다.

Q22. Python에서 목록의 요소를 무작위로 추출하는 방법은 무엇입니까?

셔플 기능을 사용하여 목록 요소를 무작위로 지정할 수 있습니다. 예는 다음과 같습니다.

코드 출력은 다음과 같습니다.

Q23.

Iterator는 순회하거나 반복할 수 있는 객체입니다.

Q24. Python에서 난수를 생성하는 방법은 무엇입니까?

random 모듈은 난수 생성을 위한 표준 모듈입니다. 이 메서드는 다음과 같이 정의됩니다.

random.random() 메서드는 [0,1] 범위의 부동 소수점 숫자를 반환합니다. 이 함수는 임의의 부동 소수점 숫자를 생성합니다. 랜덤 클래스에서 사용하는 메소드는 숨겨진 인스턴스의 바인딩 메소드입니다. Random 인스턴스를 사용하여 다양한 스레드 인스턴스를 생성하는 다중 스레드 프로그램을 표시할 수 있습니다. 거기에 사용되는 다른 무작위 생성기는 다음과 같습니다:

randrange(a,b): 정수를 선택하고 [a,b] 사이의 범위를 정의합니다. 지정된 범위에서 요소를 무작위로 선택하여 요소를 반환합니다. 범위 개체를 빌드하지 않습니다.

uniform(a,b): [a,b) 범위에 정의된 부동 소수점 숫자를 선택합니다.

normalvariate(mean,sdev): 정규 분포에 사용됩니다. 여기서 평균은 평균이고 sdev는 다음에 사용됩니다. 표준편차의 시그마.

Random 클래스를 사용하고 인스턴스화하여 독립적인 다중 난수 생성기를 만듭니다.

Q25.레인지와 엑스레인지의 차이점은 무엇인가요?

대부분의 경우 xrange와 range는 기능적으로 동일합니다. 둘 다 정수 목록을 생성하는 방법을 제공합니다. 유일한 차이점은 range가 Python 목록 객체를 반환하고 xrange가 xrange 객체를 반환한다는 것입니다. 이는 xrange가 런타임에 실제로 정적 목록을 생성하지 않는다는 것을 의미합니다. 양보(Yieling)라는 특별한 기법을 이용해 필요에 따라 가치를 만들어낸다. 이 기술은 생성기라는 개체와 함께 작동합니다. 따라서 목록이 매우 크다면 xrange를 고려해 보세요.

Q26. 파이썬으로 댓글은 어떻게 작성하나요?

Python의 주석은 # 문자로 시작합니다. 주석은 문서 ​​문자열(삼중따옴표로 묶인 문자열)을 사용하여 작성할 수도 있습니다.

Q27.절임과 비절임이란 무엇인가요?

Pickle 모듈은 모든 Python 객체를 받아들여 이를 문자열 표현으로 변환하고 덤프 함수를 사용하여 파일에 덤프합니다. 이 프로세스를 피클링이라고 합니다. 저장된 문자열에서 원본 Python 객체를 검색하는 프로세스를 역피클링이라고 합니다.

Q28. 파이썬에서 제너레이터란 무엇인가요?

반복 가능한 항목 집합을 반환하는 함수를 생성기라고 합니다.

Q29. 문자열의 첫 글자를 어떻게 대문자로 사용하나요?

Python에서 capitalize() 함수는 문자열의 첫 글자를 대문자로 표시할 수 있습니다. 문자열의 시작 부분에 이미 대문자가 포함되어 있으면 원래 문자열을 반환합니다.

Q30. 문자열을 모두 소문자로 변환하는 방법은 무엇인가요?

문자열을 소문자로 변환하려면 lower() 함수를 사용하면 됩니다.

Q31. 파이썬에서 여러 줄에 주석을 달 수 있는 방법은 무엇인가요?

여러 줄의 코드에 주석을 달 때. 주석을 추가할 모든 줄 앞에는 #이 와야 합니다. 단축키를 사용하여 Ctrl 키를 누른 채 마우스 왼쪽 버튼을 클릭하고 # 문자를 원하는 각 위치에 #을 한 번 입력하여 여러 줄을 주석 처리할 수도 있습니다.

Q32. Python의 문서 Docstring이 무엇인가요?

Docstring은 실제로 주석이 아니라 Docstring입니다. 이러한 독스트링은 삼중따옴표로 묶입니다. 어떤 변수에도 할당되지 않으므로 때때로 주석에 사용됩니다.

Q33. is, not, in 연산자의 기능은 무엇인가요?

연산자는 하나 이상의 값을 비교하고 해당 결과를 생성하는 특수 함수입니다. 여기서 is: 2개의 피연산자가 true인 경우 true를 반환합니다(예: "a"는 'a').

not: 부울 값의 역수를 반환합니다.

in: 요소가 시퀀스

Q34에 존재하는지 확인합니다. Python에서 help() 및 dir() 함수의 사용법은 무엇입니까?

Help() 및 dir() 함수 모두 Python 인터프리터에서 직접 액세스할 수 있으며 내장 함수의 병합된 덤프를 보는 데 사용할 수 있습니다.

help() 함수: help() 함수는 문서 문자열을 표시하고 모듈, 키워드, 속성 등과 관련된 사용 정보를 보는 데 사용됩니다.

dir() 함수: dir() 함수는 정의된 기호를 표시하는 데 사용됩니다.

Q35. Python이 종료될 때 할당된 메모리를 모두 지우지 않는 이유는 무엇인가요?

Python이 종료되면 특히 다른 객체에 대한 순환 참조가 있거나 전역 네임스페이스에서 참조되는 객체가 있는 Python 모듈은 할당 해제되거나 해제되지 않습니다.

C 라이브러리에서 예약한 메모리 부분은 할당 취소할 수 없습니다.

종료할 때 Python은 효율적인 정리 메커니즘으로 인해 다른 모든 객체의 할당을 취소/파괴하려고 시도합니다.

Q36. 파이썬에서 사전이란 무엇인가요?

Python에 내장된 데이터 유형을 사전이라고 합니다. 키와 값 사이의 일대일 관계를 정의합니다. 사전에는 한 쌍의 키와 해당 값이 포함되어 있습니다. 사전은 키로 색인화됩니다.

Q37. 파이썬에서 삼항 연산자를 어떻게 사용하나요?

삼항 연산자는 조건문을 표시하는 데 사용되는 연산자입니다. 여기에는 true 또는 false 값이 포함되며 해당 값에 대해 명령문을 평가해야 합니다. 기본 구문은 다음과 같습니다.

삼항 연산자는 조건문을 표시하는 데 사용되는 연산자입니다. 여기에는 true 또는 false 값이 포함되며 해당 값에 대해 명령문을 평가해야 합니다. 기본 구문은 다음과 같습니다.

[on_true] if [expression] else [on_false] x, y = 25,50big = x if x

Q38을 사용하는 이유는 무엇입니까?

함수에 몇 개의 인수를 전달할지 확실하지 않거나 저장된 목록 또는 인수 튜플을 함수에 전달하려는 경우 *args를 사용합니다. **Kwargs는 함수에 전달할 키워드 인수 수를 모르거나 사전의 값을 키워드 인수로 전달하는 데 사용할 수 있습니다. 식별자 args 및 kwargs는 관례이며 *bob 및 **billy를 사용할 수도 있습니다.

Q39.len() 함수의 기능은 무엇인가요?

len() 함수를 사용하여 문자열, 목록, 배열 등의 길이를 결정할 수 있습니다.

Q40. Python의 Split(), sub(), subn() 함수.

문자열을 수정하려는 경우 Python의 "re" 모듈은 3가지 방법을 제공합니다.

split() - 정규식 패턴을 사용하여 주어진 문자열을 목록으로 "분할"합니다.

sub() - 정규식 패턴과 일치하는 모든 하위 문자열을 찾아 다른 문자열로 바꿉니다.

subn() - sub()와 유사하며 새 문자열도 반환합니다.

Q41. 음수지수란 무엇이며 그 기능은 무엇인가요?

Python의 시퀀스는 색인이 생성되며 양수와 음수로 구성됩니다. 양수는 첫 번째 인덱스로 '0'을 사용하고 프로세스에서 계속 사용되는 두 번째 인덱스로 '1'을 사용합니다.

음수에 대한 인덱스는 시퀀스의 마지막 인덱스를 나타내는 '-1'과 끝에서 두 번째 인덱스인 '-2'부터 시작하며 시퀀스는 양수처럼 진행됩니다.

음수 인덱싱은 문자열에서 줄 바꿈을 제거하고 문자열이 S[:-1]로 지정된 마지막 문자를 제외하도록 하는 데 사용됩니다. 음수 인덱싱은 인덱스가 문자열을 올바른 순서로 나타내는지 표시하는 데에도 사용됩니다.

Q42. 파이썬 패키지란 무엇인가요?

Python 패키지는 여러 모듈을 포함하는 네임스페이스입니다.

Q43. Python에서 파일을 삭제하는 방법은 무엇인가요?

Python에서 파일을 삭제하려면 OS 모듈을 가져와야 합니다. 그런 다음 os.remove() 함수를 사용해야 합니다.

Q44. 파이썬에 내장된 유형은 무엇인가요?

파이썬에 내장된 유형은 정수, 부동 소수점, 복소수, 문자열, 부울 등입니다.

Q45. NumPy에는 Python 목록을 조작하는 기능이 있나요?

Python의 목록은 효율적인 범용 컨테이너입니다. (상당히) 효율적인 삽입, 삭제, 추가 및 연결을 지원하며 Python의 목록 이해 기능을 사용하면 쉽게 구성하고 조작할 수 있습니다.

특정 제한 사항이 있습니다. 픽셀화된 덧셈 및 곱셈과 같은 "벡터화된" 연산을 지원하지 않으며, 서로 다른 유형의 객체를 포함할 수 있다는 사실은 Python이 각 요소에 대한 유형 정보를 저장하고 유형 디스패치 코드를 그대로 수행해야 함을 의미합니다. 각 요소에 대해 작동합니다.

NumPy는 더 효율적일 뿐만 아니라 더 편리합니다. 많은 벡터 및 행렬 연산을 무료로 얻을 수 있어 때로는 불필요한 작업을 줄일 수 있습니다. 또한 효과적으로 구현됩니다.

NumPy 배열은 더 빠르며 NumPy, FFT, 컨볼루션, 빠른 검색, 기본 통계, 선형 대수, 히스토그램 및 기타 내장 기능을 사용할 수 있습니다.

Q46. 파이썬 배열에 값을 추가하는 방법은 무엇인가요?

append(), extend() 및 insert(i,x) 함수를 사용하여 요소를 배열에 추가할 수 있습니다.

Q47. 파이썬 배열의 값을 삭제하는 방법은 무엇인가요?

pop() 또는 Remove() 메서드를 사용하여 배열 요소를 삭제할 수 있습니다. 이 두 함수의 차이점은 전자는 삭제된 값을 반환하고 후자는 삭제된 값을 반환하지 않는다는 것입니다.

Q48. 파이썬에는 OOps라는 개념이 있나요?

Python은 객체 지향 프로그래밍 언어입니다. 이는 객체 모델을 생성하여 Python으로 모든 프로그램을 해결할 수 있음을 의미합니다. 동시에 Python은 프로그래밍 언어이자 구조적 언어로 간주될 수 있습니다.

Q49. 깊은 복사와 얕은 복사의 차이점은 무엇인가요?

새 인스턴스 유형을 생성할 때 얕은 복사본을 사용하고 복사된 값을 새 인스턴스에 유지하세요. 얕은 복사는 값처럼 참조 포인터를 복사하는 데 사용됩니다. 이러한 참조는 원본 개체를 가리키며 클래스 멤버의 변경 사항은 원본 개체에도 영향을 미칩니다. 얕은 복사본을 사용하면 사용된 데이터 크기에 따라 프로그램 실행 속도가 빨라집니다.

복사된 값을 저장하기 위해 Deep Copy를 사용합니다. 깊은 복사는 참조 포인터를 객체에 복사하지 않습니다. 객체를 참조하고 다른 객체가 가리키는 새로운 객체를 저장합니다. 원본 복사본의 변경 사항은 해당 개체를 사용하는 다른 복사본에 영향을 주지 않습니다. 전체 복사를 사용하면 호출되는 개체마다 일부 복사본이 생성되므로 프로그램 실행 속도가 느려질 수 있습니다.

Q50. Python에서 멀티스레딩을 구현하는 방법은 무엇입니까?

Python에는 멀티스레딩 라이브러리가 있지만 코드 속도를 높이기 위해 멀티스레딩을 사용하는 효과는 그다지 좋지 않습니다.

Python에는 GIL(Global Interpreter Lock)이라는 구조가 있습니다. GIL은 한 번에 하나의 "스레드"만 실행할 수 있도록 보장합니다. 한 스레드는 관련 작업을 수행하기 위해 GIL을 얻은 후 다음 스레드에 GIL을 전달합니다.

프로그램이 여러 스레드에 의해 병렬로 실행되는 것처럼 보이지만 실제로는 동일한 CPU 코어를 사용하여 번갈아 가며 실행되는 것입니다.

이러한 모든 GIL 패스는 실행에 오버헤드를 추가합니다. 이는 멀티스레딩이 프로그램 실행 속도를 더 빠르게 만들지 않는다는 것을 의미합니다.

【관련 추천: Python3 비디오 튜토리얼

위 내용은 [토혈편] 파이썬 면접 질문과 답변 50개(모음)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제