[python]Python 면접준비

Bik_Kyun·2022년 10월 26일
0
post-thumbnail

기초부터 탄탄히

1. Python의 주요 특징

파이썬인터프리터 언어이며, 동적타이핑 언어입니다. 파이썬은 객체지향언어이고, 간결하고 단순합니다.

2. list와 tuple의 차이점

List는 데이터를 변경할 수 있고, Tuple은 데이터를 변경할 수 없습니다.

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

자바스크립트나 C++과 달리 파이썬에는 삼항연산자가 없습니다. 하지만 파이썬에게는 비슷한 역할을 하는 다른 기능이 있습니다.
[참일 때 반환값] if [조건식] else [거짓일 때 반환값]

  • (참고)List Comprehension

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

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

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

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

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

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

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

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

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

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

9. 파이썬 빌트인 함수에 대해 아는대로 말해보세요.

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

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

List를 Set으로 변경하면 됩니다.

11. 오퍼레이터중 //, % , ** 에 대해 설명하세요.

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

12. 컴파일 언어와 인터프리터 언어의 차이점에 대해 설명하세요.

컴파일된 언어는 컴파일러를 통해 구현되며 소스 코드를 기계어로 바꾸는 과정을 사전에 처리 하여 빠르게 컴퓨터에서 구동될 수 있도록 한 방법 이며, 인터프리터 언어는 대부분 소스코드를 기계어로 컴파일하지 않고 인터프리터를 통해 소스코드 실행시 각 스테이트먼트(소스코드 구문)를 하나 이상의 서브루틴 순서로 변환한 후, 기계어나 바이트코드등 다른 언어로 변환되어 구현됩니다.

13. 파이썬에는 .pyc 파일이 있습니다. .py 파일과의 차이점을 설명하세요.

두 파일 모두 바이트코드를 가지고 있지만 .pyc는 .py 파일의 컴파일된 버전입니다. 플랫폼에 독립적인 바이트코드를 가지고 있습니다. 따라서, 우리는 .pyc 형식을 지원하는 어떤 플랫폼에서도 그것을 실행할 수 있으며, Python은 성능을 향상시키기 위해 자동으로 .pyc 파일을 생성합니다. .pyc 파일은 PVM(Python Virtual Machine)에 의해 실행되고, 지워도 되지만, 성능 저하가 생길 수 있습니다.

14. 파이썬은 객체지향 입니까? 왜 그렇습니까?

파이썬은 객체 지향 프로그래밍 패러다임을 따르고 있습니다. 객체 지향 패러다임은 클래스인스턴스를 중심으로 돌아갑니다.

객체지향 프로그래밍 패러타임의 기능

  • 캡슐화(Encapsulation)
  • 추상화(Abstraction)
  • 상속(Inheritance)
  • 다형성(Polymorphism)
  • 데이터 숨기기(Data Hiding)

데이터 숨기기와 관련된 추가 질문이 있을 수 있습니다.

데이터 숨기기는 클래스 구현의 자세한 사항을 숨기여 합니다. 클래스를 사용함에 있어 명확한 표준 인터페이스 제공을 위함입니다.

하지만, 다른 언어 처럼 접근 권한을 나눌 수 없는 파이썬은( Java의 private변수, public변수 처럼) 클래스 데이터의 접근하는데 제한을 두지 않습니다. 언더스코어를 사용하는 방법이 있지만, 클래스안에 메소드를 포함한 모든 데이터를 완벽하게 외부접근으로 부터 차단하는 것이 어렵습니다.
완벽하게 막을 수 없을 뿐 기본적인 감추기가 불가능 한건 아닙니다. 언더스코어를 사용하여 감추는 방법이 있습니다.

15. try... except... else 구문에서 else는 언제 실행되나요?

if..else 블록에서는 if 조건문이 False 일때 else 구문이 실행되지만, try... except... else 구문에서는 try 구문에서 exception이 생기지 않는 경우에만 else 구문이 실행 됩니다.

16. list append 와 list extend 의 차이점을 설명하세요.

list append는 객체를 해당 리스트 제일 뒤에 붙이고, list extend는 다른 리스트의 요소를 다른 리스트의 요소로 추가하여 붙이는데 사용합니다.

17. Python은 open()을 통해 파일을 열 때, 파일 처리 모드를 설정합니다. 어떤 모드가 있나요?

파이썬에 파일 처리 모드 종류는 다음과 같습니다.

  • 읽기 전용 – 'r'
  • 쓰기 전용 – 'w'
  • 읽기-쓰기 – 'rw'
  • 덧붙이기 – 'a'
    또한, 't' 옵션으로 텍스트 파일을 열 수 있는데요. 그래서 읽기위해 텍스트 파일을 열려면 'rt' 모드를 사용할 수 있습니다. 그리고 이진(바이너리) 파일의 경우 'b'를 사용합니다.

18. Python 에서 map() 함수는 어떤 역할을 하나요?

파이썬에서 map() 함수는 2개의 인수를 받습니다. 첫 인수는 함수이고, 두번째 인수는 이터러블(iterable - 개별 원소를 반복적으로 셀수 있는 데이터 타입 - 리스트, 튜플)을 받습니다.
이 이터러블에서 순서대로 각 요소를 해당 함수에 넣어 함수를 실행한 값을 리턴합니다.

19. try...raise...finally 구문이 어떻게 작동하는지 설명해 주세요.

이 구문은 우리가 예외 처리를 할 때 사용하는 키워드들 입니다. 우리는 try 블록 안에 오류가 발생할 가능성이 있는 코드를 넣고, raise 구문으로 오류를 명시적으로 제기하며, 어쨌든 마지막으로 실행하고자 하는 코드를 finally 블록에 씁니다.

20. 파이썬에서 언더스코어(_) 는 언제 사용하나요?

파이썬에게 언더스코어는 조금 특별합니다. 인터프리터가 사용하고, 값을 무시하고 싶을때나, 변수 앞뒤에 붙여 다른 의미로 사용하기도 합니다. PEP 15에서는 숫자 리터럴의 자릿수 구분자 역할이 추가되었습니다.

21. 파이썬에서 switch... case 구문을 구현해 보았나요? 어떻게 하셨나요?

파이썬에는 Switch-case 구문이 없습니다. 파이썬에서는 딕셔너리 맵핑으로 Switch-Case를 구현할 수 있으며, 더 좋은 가독성을 확보합니다.

참고

https://dingrr.com/blog/post/python-python-%EB%A9%B4%EC%A0%91-%EC%98%88%EC%A0%9C-1%ED%8E%B8
https://dingrr.com/blog/post/python-python-%EB%A9%B4%EC%A0%91-%EC%98%88%EC%A0%9C-2%ED%8E%B8

profile
비진

0개의 댓글