Python 인터뷰를 준비하고 있습니까? 아니면 파이썬을 얼마나 알고 있는지 궁금하신가요? 괜찮아요. 여기에서 질문과 답변으로 귀하의 문제를 다룹니다.
이 기사는 인터뷰에서 직면할 수 있는 질문 유형을 이해하는 데 도움이 될 것입니다. 또는 Python 기술을 평가하는 데 도움이 됩니다. 자신을 정확하게 평가하기 위해 답변을 보기 전에 질문에 대한 답변을 확인하십시오. 더 이상 고민하지 않고 질문으로 들어가 보겠습니다.
질문은 주제 유형에 따라 여러 섹션으로 나뉩니다. 각 섹션에는 선별된 답변과 함께 질문이 있습니다. 같은 의미의 모국어로 답변을 수정할 수 있습니다. 그래서 면접관은 당신이 뭔가를 읽고 있다고 느끼지 않을 것입니다.
목차
파이썬 언어
#1. 파이썬이란 무엇입니까?
Python은 해석된 고급 범용 프로그래밍 언어입니다. 타사 라이브러리 및 프레임워크와 함께 Python을 사용하여 거의 모든 유형의 애플리케이션을 구축할 수 있습니다. Python은 AI, 데이터 과학 등과 같은 고급 기술에서 가장 인기 있는 프로그래밍 언어 중 하나입니다.
#2. 인터프리터와 컴파일러의 주요 차이점은 무엇입니까?
인터프리터는 한 번에 하나의 명령문을 기계어로 번역하는 반면 컴파일러는 한 번에 전체 코드를 기계어로 번역합니다.
#삼. Python은 정적으로 유형이 지정되는 언어입니까 아니면 동적으로 유형이 지정되는 언어입니까?
Python은 동적으로 유형이 지정된 언어입니다.
#4. 동적으로 유형이 지정된 언어란 무엇을 의미합니까?
동적으로 유형이 지정된 언어는 런타임에 변수 유형을 확인합니다. 일부 동적으로 유형이 지정된 언어는 Python, JavaScript, Ruby 등입니다.
보너스: 정적으로 유형이 지정된 언어는 컴파일 타임에 변수 유형을 확인합니다. 일부 정적으로 유형이 지정된 언어는 C++, C, Java 등입니다.
#5. Python의 일부 응용 프로그램을 제공합니다.
파이썬은 더 간단하고 배우기 쉬운 구문을 가지고 있습니다. 영어와 비슷해 보일 수 있습니다. Python 개발자 커뮤니티는 거대합니다. 다양한 유형의 애플리케이션 개발에 사용할 수 있는 많은 타사 패키지를 찾을 수 있습니다. 개발할 때 웹 애플리케이션, GUI 애플리케이션, CLI 애플리케이션 등을 만들 수 있습니다.
Python의 가장 인기 있는 응용 프로그램 중 하나는 자동화입니다. 우리는 디스크 청소, 메일 보내기, 제품 가격에 대한 데이터 가져오기 등과 같은 작업을 자동화하기 위해 Python에서 스크립트를 쉽게 만들 수 있습니다.
Python은 데이터 과학 분야에서 가장 널리 사용되는 언어 중 하나입니다.
#6. Python을 사용하여 어떤 애플리케이션을 구축했습니까?
반복적이고 지루한 작업을 제거하기 위해 여러 자동화 스크립트를 작성했습니다. 그리고 제품 가격, 가용성 등에 대한 정보를 얻기 위한 스크립트
또한 웹 애플리케이션을 구축하기 위해 Django, Flask와 같은 프레임워크로 작업했습니다. 그리고 Django와 Flask를 모두 사용하여 웹 애플리케이션을 빌드하세요.
참고: 위의 답변은 예시입니다. 귀하의 답변은 위의 답변과 완전히 다를 수 있습니다. Python을 사용하여 작업한 다양한 영역을 설명하려고 합니다. 사용 가능한 경우 응용 프로그램을 표시합니다.
데이터 유형
#7. Python의 내장 데이터 유형은 무엇입니까?
Python에는 여러 내장 데이터 유형이 있습니다. 그것들은 int, float, complex, bool, list, tuple, set, dict, str입니다.
참고: Python에 있는 모든 데이터 유형을 말할 필요는 없습니다. 당신이 주로 사용하는 몇 가지를 언급하십시오. 면접관은 귀하의 답변에 따라 질문할 수 있습니다.
#8. 목록과 튜플의 차이점은 무엇입니까?
목록과 튜플은 모두 개체 컬렉션을 저장하는 데 사용됩니다. 목록과 튜플의 주요 차이점은 “목록은 변경 가능한 객체이고 튜플은 변경할 수 없는 객체”입니다.
#9. 변경 가능한 데이터 유형과 변경할 수 없는 데이터 유형은 무엇입니까?
변경 가능한 데이터 유형은 생성 후 변경할 수 있습니다. Python의 변경 가능한 객체 중 일부는 list, set, dict입니다.
불변 데이터 유형은 생성 후에 변경할 수 없습니다. 파이썬의 불변 객체 중 일부는 str, tuple입니다.
#10. 목록의 몇 가지 방법을 설명하십시오.
1. 추가 – 이 메서드는 목록에 요소를 추가하는 데 사용됩니다. 목록의 끝에 요소를 추가합니다.
>>> a = [1, 2] >>> a.append(3) >>> a [1, 2, 3]
2. pop – 이 메소드는 목록에서 요소를 제거하는 데 사용됩니다. 인덱스를 인수로 제공하지 않으면 마지막 요소를 제거하거나 인수를 제공하면 인덱스에서 요소를 제거합니다.
>>> a = [1, 2, 3, 4, 5] >>> a.pop() 5 >>> a [1, 2, 3, 4] >>> a.pop(1) 2 >>> a [1, 3, 4]
3. remove – 이 메소드는 목록에서 요소를 제거하는 데 사용됩니다. 목록에서 제거하려는 요소를 인수로 제공해야 합니다. 목록에서 요소의 첫 번째 항목을 제거합니다.
>>> a = [1, 2, 2, 3, 4] >>> a = [1, 2, 3, 2, 4] >>> a.remove(1) >>> a [2, 3, 2, 4] >>> a.remove(2) >>> a [3, 2, 4]
4. sort – 목록을 오름차순 또는 내림차순으로 정렬하는 데 사용되는 방법입니다.
>>> a = [3, 2, 4, 1] >>> a.sort() >>> a [1, 2, 3, 4] >>> a.sort(reverse=True) >>> a [4, 3, 2, 1]
5. reverse – 이 메서드는 목록 요소를 뒤집는 데 사용됩니다.
>>> a = [3, 2, 4, 1] >>> a.reverse() >>> a [1, 4, 2, 3]
참고: clear, insert, count 등과 같은 다른 방법이 있습니다. 목록의 모든 방법을 면접관에게 설명할 필요는 없습니다. 주로 사용하는 두세 가지 방법을 설명하십시오.
#11. 문자열의 몇 가지 방법을 설명
1. split – 문자열을 원하는 지점에서 분할하는 방법입니다. 결과로 목록을 반환합니다. 기본적으로 공백에서 문자열을 분할합니다. 메서드에 대한 인수로 구분 기호를 제공할 수 있습니다.
>>> a = "This is koreantech.org" >>> a.split() ['This', 'is', 'Geekflare'] >>> a = "1, 2, 3, 4, 5, 6" >>> a.split(", ") ['1', '2', '3', '4', '5', '6']
2. 조인 – 이 메서드는 문자열 개체 목록을 결합하는 데 사용됩니다. 문자열 객체를 우리가 제공하는 구분 기호와 결합합니다.
>>> a = ['This', 'is', 'Geekflare'] >>> ' '.join(a) 'This is koreantech.org' >>> ', '.join(a) 'This, is, koreantech.org'
참고: 문자열의 다른 방법은 대문자, isalnum, isalpha, isdigit, lower, upper, center 등입니다.
#12. 목록의 음수 색인이란 무엇입니까?
인덱스는 목록에서 요소에 액세스하는 데 사용됩니다. 목록의 일반적인 인덱싱은 0부터 시작합니다.
일반 인덱싱과 유사하게 음수 인덱싱은 목록의 요소에 액세스하는 데에도 사용됩니다. 그러나 음수 인덱싱을 사용하면 목록 끝에서 인덱스에 액세스할 수 있습니다. 음수 인덱싱의 시작은 -1입니다. 그리고 목록의 길이까지 -2, -3, -4 등과 같이 계속 증가합니다.
>>> a = [1, 2, 3, 4, 5] >>> a[-1] 5 >>> a[-3] 3 >>> a[-5] 1
#13. dict의 몇 가지 방법을 설명하십시오.
1. 항목 – 이 메서드는 튜플 목록으로 사전의 키: 값 쌍을 반환합니다.
>>> a = {1: 'koreantech.org', 2: 'koreantech.org Tools', 3: 'koreantech.org Online Compiler'} >>> a.items() dict_items([(1, 'Geekflare'), (2, 'Geekflare Tools'), (3, 'Geekflare Online Compiler')])
2. pop – 사전에서 키:값 쌍을 제거하는 데 사용되는 메서드입니다. 키를 인수로 받아 사전에서 제거합니다.
>>> a = {1: 2, 2: 3} >>> a.pop(2) 3 >>> a {1: 2}
참고: dict의 다른 방법은 get, keys, values, clear 등입니다.
#14. 파이썬에서 슬라이싱이란 무엇입니까?
슬라이싱은 시퀀스 데이터 유형에서 하위 배열에 액세스하는 데 사용됩니다. 우리가 제공하는 인수를 기반으로 시퀀스 데이터 유형의 데이터를 반환합니다. 소스 데이터 유형과 동일한 데이터 유형을 리턴합니다.
슬라이싱은 세 가지 인수를 허용합니다. 시작 인덱스, 종료 인덱스 및 증분 단계입니다. 슬라이싱 구문은 가변적입니다.[start:end:step]. 인수는 슬라이싱에 필수가 아닙니다. 전체 데이터를 결과로 반환하는 빈 콜론(:)을 지정할 수 있습니다.
>>> a = [1, 2, 3, 4, 5] >>> a[:] [1, 2, 3, 4, 5] >>> a[:3] [1, 2, 3] >>> a[3:] [4, 5] >>> a[0:5:2] [1, 3, 5]
#15. 슬라이싱을 허용하는 데이터 유형은 무엇입니까?
list, tuple 및 str 데이터 유형에 대해 슬라이싱을 사용할 수 있습니다.
#16. Python에서 압축 풀기 연산자는 무엇입니까? 그것들을 사용하는 방법?
* 및 ** 연산자는 Python에서 압축 해제 연산자입니다.
* unpacking 연산자는 시퀀스 데이터 유형에서 한 번에 여러 값을 다른 값에 할당하는 데 사용됩니다.
>>> items = [1, 2, 3] >>> a, b, c = items >>> a 1 >>> b 2 >>> c 3 >>> a, *b = items >>> a 1 >>> b [2, 3]
** unpacking 연산자는 dict 데이터 유형과 함께 사용됩니다. 사전의 압축 풀기는 시퀀스 데이터 유형의 압축 풀기처럼 작동하지 않습니다.
사전의 압축 풀기는 주로 키:값 항목을 한 사전에서 다른 사전으로 복사하는 데 사용됩니다.
>>> a = {1:2, 3:4} >>> b = {**a} >>> b {1: 2, 3: 4} >>> c = {3:5, 5:6} >>> b = {**a, **c} >>> b {1: 2, 3: 5, 5: 6}
참고: 이러한 연산자에 대한 자세한 내용은 이 문서를 참조하세요.
조건 및 루프
#17. 파이썬에 스위치 문이 있습니까?
아니요, Python에는 switch 문이 없습니다.
#18. Python에서 switch 문의 기능을 어떻게 구현합니까?
if 및 elif 문을 사용하여 switch 문의 기능을 구현할 수 있습니다.
>>> if a == 1: ... print(...) ... elif a == 2: ... print(....)
#19. break 및 continue 문은 무엇입니까?
break – break 문은 실행 루프를 종료하는 데 사용됩니다. 코드 실행은 break 루프의 외부로 점프합니다.
>>> for i in range(5): ... if i == 3: ... break ... print(i) ... 0 1 2
계속 – 계속 문은 나머지 코드의 실행을 건너뛰는 데 사용됩니다. continue 문 뒤의 코드는 현재 반복에서 실행되지 않고 다음 반복으로 실행됩니다.
>>> for i in range(5): ... if i == 3: ... continue ... print(i) ... 0 1 2 4
#20. else의 코드는 while 및 for 루프와 함께 언제 실행됩니까?
while 및 for 루프가 있는 else 블록 내부의 코드는 모든 반복을 실행한 후에 실행됩니다. 그리고 else 블록 안의 코드는 루프를 끊을 때 실행되지 않습니다.
#21. 목록 및 사전 이해는 무엇입니까?
목록 및 사전 이해는 for 루프의 구문 설탕입니다.
>>> a = [i for i in range(10)] >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a = {i: i + 1 for i in range(10)} >>> a {0: 1, 1: 2, 2: 3, 3: 4, 4: 5, 5: 6, 6: 7, 7: 8, 8: 9, 9: 10} >>>
#22. 범위 기능은 어떻게 작동합니까?
범위 함수는 단계 증분으로 시작에서 중지 사이의 숫자 시퀀스를 반환합니다. 범위 함수의 구문은 range(start, stop[, step]).
stop 인수는 필수입니다. 인수 start 및 step은 선택 사항입니다. start와 step의 기본값은 각각 0과 1입니다.
>>> list(range(10)) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1, 10)) [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list(range(1, 10, 2)) [1, 3, 5, 7, 9] >>>
기능
#23. 매개변수와 인수는 무엇입니까?
매개변수는 함수 정의에 나열된 이름입니다.
인수는 호출하는 동안 함수에 전달된 값입니다.
#24. Python에서 다양한 유형의 인수는 무엇입니까?
주장의 종류는 크게 4가지가 있습니다. 위치 인수, 기본 인수, 키워드 인수 및 임의 인수입니다.
위치 인수: 사용자 정의 함수에서 정의하는 일반 인수를 위치 인수라고 합니다. 함수를 호출하는 동안 모든 위치 인수가 필요합니다.
>>> def add(a, b): ... return a + b ... >>> add(1, 2) 3 >>> add(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: add() missing 1 required positional argument: 'b' >>>
기본 인수: 기본 값으로 함수 정의 자체의 인수에 값을 제공할 수 있습니다. 사용자가 값을 전달하지 않으면 함수는 기본값을 고려합니다.
>>> def add(a, b=3): ... return a + b ... >>> add(1, 2) 3 >>> add(1) 4
키워드 인수: 함수를 호출하는 동안 인수의 이름을 지정하고 값을 할당할 수 있습니다. 키워드 인수는 위치 인수에서 필수인 순서 지정을 피하는 데 도움이 됩니다.
>>> def add(a, b): ... print("a ", a) ... print("b ", b) ... return a + b ... >>> add(b=4, a=2) a 2 b 4 6
임의의 인수: 함수가 가져올 인수의 수를 모를 때 임의의 인수를 사용하여 한 번에 많은 값을 수집합니다. 함수 정의에 * 및 ** 연산자를 사용하여 인수를 수집합니다.
>>> def add(*args): ... return sum(args) ... >>> add(1, 2, 3, 4, 5) 15 >>> def dict_args(**kwargs): ... print(kwargs) ... >>> dict_args(a="koreantech.org", b='koreantech.org Tools', c="koreantech.org Online Compiler") {'a': 'koreantech.org', 'b': 'koreantech.org Tools', 'c': 'koreantech.org Online Compiler'}
#25. 람다 함수란?
Lambda 함수는 Python의 작은 익명 함수입니다. 단일 표현식을 가지며 여러 인수를 허용합니다.
>>> add = lambda a, b: a + b >>> add(1, 3) 4
#26. 일반 함수와 람다 함수의 차이점은 무엇입니까?
일반 함수와 람다 함수의 기능은 비슷합니다. 그러나 동일한 기능에 대해 람다 함수에 비해 일반 함수에 몇 가지 추가 코드를 작성해야 합니다.
람다 함수는 단일 표현식이 있을 때 유용합니다.
#27. pass 키워드는 무엇에 사용됩니까?
pass 키워드는 코드에서 빈 블록을 언급하는 데 사용됩니다. Python은 코드 없이 블록을 남겨두는 것을 허용하지 않습니다. 따라서 pass 문을 사용하면 빈 블록을 정의할 수 있습니다(나중에 코드를 채우기로 결정할 때).
>>> def add(*args): ... ... File "<stdin>", line 3 ^ IndentationError: expected an indented block >>> def add(*args): ... pass ... >>>
#28. 재귀 함수란?
자신을 호출하는 함수를 재귀 함수라고 합니다.
Python에서 패킹 연산자는 무엇입니까? 그것들을 사용하는 방법?
패킹 연산자는 함수에서 여러 인수를 수집하는 데 사용됩니다. 그것들은 임의의 인수로 알려져 있습니다.
참고: Python에서 연산자를 패킹하는 방법에 대한 자세한 내용은 이 문서를 참조하세요.
#29. 파이썬의 OOP
Python에서 클래스를 생성하는 데 사용되는 키워드는 무엇입니까?
class 키워드는 Python에서 클래스를 생성하는 데 사용됩니다. 업계 표준 관행으로 Python에서 클래스 이름을 지정하는 파스칼 사례를 따라야 합니다.
>>> class Car: ... pass ...
#30. Python에서 클래스를 인스턴스화하는 방법은 무엇입니까?
단순히 함수처럼 호출하여 Python에서 클래스의 인스턴스를 만들 수 있습니다. 함수 인수에 대해 수행하는 것과 동일한 방식으로 객체에 필요한 속성을 전달할 수 있습니다.
>>> class Car: ... def __init__(self, color): ... self.color = color ... >>> red_car = Car('red') >>> red_car.color 'red' >>> green_car = Car('green') >>> green_car.color 'green' >>>
#31. 파이썬에서 자기란?
self는 클래스의 객체를 나타냅니다. 특정 개체에 대한 클래스 내부의 개체 속성 및 메서드에 액세스하는 데 사용됩니다.
#32. __init__ 메서드는 무엇입니까?
__init__은 다른 OOP 언어의 생성자와 유사한 생성자 메서드입니다. 클래스에 대한 객체를 생성하면 즉시 실행됩니다. 인스턴스의 초기 데이터를 초기화하는 데 사용됩니다.
#33. 파이썬에서 독스트링이란?
문서화 문자열 또는 독스트링은 코드 블록을 문서화하는 데 사용됩니다. 여러 줄 주석으로도 사용됩니다.
이러한 독스트링은 클래스의 메서드에서 특정 메서드가 수행하는 작업을 설명하는 데 사용됩니다. 그리고 help 메소드를 사용하여 docstring 메소드를 볼 수 있습니다.
>>> class Car: ... def __init__(self, color): ... self.color = color ... ... def change_color(self, updated_color): ... """This method changes the color of the car""" ... self.color = updated_color ... >>> car = Car('red') >>> help(car.change_color) Help on method change_color in module __main__: change_color(updated_color) method of __main__.Car instance This method changes the color of the car >>>
#34. 던더 또는 마술 방법이란 무엇입니까?
두 개의 접두사 및 접미사 밑줄이 있는 메서드를 dunder 또는 매직 메서드라고 합니다. 주로 메서드를 재정의하는 데 사용됩니다. 클래스에서 재정의할 수 있는 메서드 중 일부는 __str__, __len__, __setitem__, __getitem__ 등입니다.
>>> class Car: ... def __str__(self): ... return "This is a Car class" ... >>> car = Car() >>> print(car) This is a Car class >>>
참고: 재정의할 수 있는 다른 방법이 많이 있습니다. 코드를 깊이 있게 사용자 정의하려는 경우에 유용합니다. 자세한 내용은 설명서를 살펴보세요.
#35. 파이썬에서 상속을 어떻게 구현합니까?
부모 클래스를 자식 클래스에 인수로 전달할 수 있습니다. 그리고 자식 클래스에서 init 메서드 부모 클래스를 호출할 수 있습니다.
>>> class Animal: ... def __init__(self, name): ... self.name = name ... >>> class Animal: e): ... def __init__(self, name): ... self.name = name ... ... def display(self): ... print(self.name) >>> class Dog(Animal): e):ame) ... def __init__(self, name): ... super().__init__(name) ... >>> doggy = Dog('Tommy') >>> doggy.display() Tommy >>>
#36. Python에서 자식 클래스 내부의 부모 클래스에 액세스하는 방법은 무엇입니까?
자식 클래스 내부의 부모 클래스를 참조하는 super()를 사용할 수 있습니다. 그리고 속성과 메서드에 액세스할 수 있습니다.
여러 가지 잡다한
#37. Python에서 한 줄 및 여러 줄 주석을 사용하는 방법은 무엇입니까?
한 줄 주석에는 해시(#)를 사용합니다. 그리고 여러 줄 주석에 대해 세 개의 작은 따옴표(“‘comment”‘) 또는 세 개의 큰 따옴표(“””comment”””)를 사용합니다.
#38. 파이썬에서 객체란?
파이썬의 모든 것은 객체입니다. 모든 데이터 유형, 함수 및 클래스는 객체입니다.
#39. 이들is그리고 ==의 차이점은 무엇인가요?
== 연산자는 두 객체의 값이 같은지 여부를 확인하는 데 사용됩니다. is 연산자는 두 객체가 동일한 메모리 위치를 참조하는지 여부를 확인하는 데 사용됩니다.
>>> a = [] >>> b = [] >>> c = a >>> a == b True >>> a is b False >>> a is c True >>>
#40. 얕고 깊은 카피란?
Shallow Copy: 개체의 참조를 변경하지 않고 원본과 동일한 복사본을 만듭니다. 이제 복사된 개체와 원본 개체 모두 동일한 개체 참조를 참조합니다. 따라서 한 개체를 변경하면 다른 개체에 영향을 줍니다.
복사 모듈의 복사 방법은 얕은 복사에 사용됩니다.
>>> from copy import copy >>> a = [1, [2, 3]] >>> b = copy(a) >>> a[1].append(4) >>> a [1, [2, 3, 4]] >>> b [1, [2, 3, 4]]
Deep Copy: 원본 객체의 값을 새 객체에 재귀적으로 복사합니다. 깊은 복사를 위해 복사 모듈에서 슬라이싱 또는 deepcopy 기능을 사용해야 합니다.
>>> from copy import deepcopy >>> a = [1, [2, 3]] >>> b = deepcopy(a) >>> a[1].append(4) >>> a [1, [2, 3, 4]] >>> b [1, [2, 3]] >>> b[1].append(5) >>> a [1, [2, 3, 4]] >>> b [1, [2, 3, 5]] >>>
#41. 반복자는 무엇입니까?
반복자는 반복 상태를 기억하는 Python의 객체입니다. __iter__ 메서드를 사용하여 데이터를 초기화하고 __next__ 메서드를 사용하여 다음 요소를 반환합니다.
iterator에서 다음 요소를 가져오려면 next(iterator)를 호출해야 합니다. 그리고 iter 내장 메소드를 사용하여 시퀀스 데이터 유형을 반복자로 변환할 수 있습니다.
>>> a = [1, 2] >>> iterator = iter(a) >>> next(iterator) 1 >>> next(iterator) 2 >>> next(iterator) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration >>>
#42. 발전기란?
제너레이터는 제너레이터 객체처럼 반복자를 반환하는 함수입니다. 수율을 사용하여 데이터를 생성합니다.
>>> def numbers(n): ... for i in range(1, n + 1): ... yield i ... >>> _10 = numbers(10) >>> next(_10) 1 >>> next(_10) 2 >>> next(_10) 3 >>> next(_10) 4
결론 👨💻
이 기사에서 볼 수 있듯이 질문은 제한되지 않습니다. 이 기사에서는 Python의 다양한 주제에서 다양한 유형의 질문을 하는 방법을 보여줍니다. 그러나 이 기사에서 논의한 일련의 질문에 국한되지 않습니다.
학습하는 동안 준비하는 한 가지 방법은 다양한 주제에 대해 스스로에게 질문하는 것입니다. 개념에서 다양한 유형의 질문을 만들어 보세요. 그리고 스스로 대답하십시오. 이렇게 하면 인터뷰의 질문에 놀라지 않을 것입니다. 또한 온라인 Python 컴파일러를 확인하여 코드를 연습할 수 있습니다.
다가오는 Python 인터뷰를 위해 최선을 다하십시오! 👍