질문 리스트
- What is the difference between list and tuples in Python?
- What are the key features of Python?
- What type of language is python? Programming or scripting?
- Python an interpreted language. Explain.
- What is pep 8?
1. What is the difference between list and tuples in Python?
리스트와 튜플의 차이
리스트 (List)
리스트는 가변 객체(mutable)이다.
그래서 선언 후 리스트의 안에 요소 값을 수정, 삭제 가능하다 ✅
- 리스트는 대괄호 [ ]
- 리스트가 더 많은 메모리를 소모한다. 더 느리다
- 리스트가 삽입과 삭제같은 프로그래밍 작업을 수행하는데 더 낫다.
튜플 (Tuple)
튜플은 불변 객체(immutable)이다.
그래서 선언 후 리스트 안에 값을 수정, 삭제 불가능하다 ❌
- 튜플은 소괄호 ( )
- 튜플은 리스트보다 더 적은 메모리를 소모한다. 더 빠르다
- 튜플 데이터타입이 요소들에 접근하기에 더 적절하다.
2. What are the key features of Python?
파이썬이 주요 특징
인터프리터 언어 (Interpreter Language)
파이썬은 인터프리터 언어이므로, 실행하기 전에 컴파일을 할 필요가 없다.
참고 1)
💡 인터프리터 (interpret) vs 컴파일러 (compiler)
인터프리터는 인간의 언어를 한줄 한줄씩 통역해서 기계에게 알려주는 동시통역 방식
컴파일러는 입력문 전체를 들은 후에 통역하는 방식
참고 2)
컴파일러 예시)
C, C++, Erlang, Haskell, Rust, Go.
인터프리터 예시)
PHP, Ruby, Python, JavaScript.
Java는 하이브리드 언어라는 괴상한 이름으로 불린다. 컴파일 언어와 인터프리터 언어를 혼합한 형태
객체 지향 프로그래밍(OOP, Object Oriented Programming)
파이썬은 클래스와 구성 및 상속을 함께 정의할 수 있다는 점에서 객체 지향 프로그래밍에 매우 적합하다.
동적타이핑 (Dynamic Typing)
파이썬은 변수 유형(ex.int, double, ...)을 명시할 필요가 없다. 이것을 동적 타이핑(Dynamic Typing)이라고 한다.
💡 정적 타이핑(Static Typing)
반대로 int a = 10과 같이 데이터 타입을 적는 방식을 정적 타이핑(Static Typing)이라고 한다
3. What type of language is python? Programming or scripting?
파이썬은 스크립트 언어이다.
모든 스크립트 언어는 프로그래밍 언어로 볼 수 있으나, 모든 프로그래밍 언어가 스크립트 언어로 분류되는 것은 아니다. 따라서 파이썬은 스크립트 언어이자, 프로그래밍 언어이다.
그러나 사람들은 일반적인 경우에 파이썬을 프로그래밍 언어의 목적으로 분류하고, 프로그래밍 목적으로 많이 사용한다.
💡 스크립팅 (Scripting/Scripting Language) ≅ 인터프리터
스크립트 언어란 컴파일이 필요없이 실행될 수 있는 명령어의 집합이다.
스크립트 언어는 인터프리터를 사용하는데, 인터프리터는 컴파일 과정이 필요하지 않으며, 소스코드로 부터 바로 명령어를 해석할 수 있다.
💡 스크립트 언어 vs 컴파일 언어
스크립트 언어 : JavaScript, Python, JSP, jQuery, PHP 등
컴파일 언어 : C, C++, Erlang, Haskell, Rust, Go. 등
💡 인터프리터 언어는 스크립트 언어와 동일한 의미이다.
4. Python an interpreted language. Explain.
인터프리터는 고급 언어로 작성된 원시코드 명령어들을 한번에 한 줄씩 읽어들여서 실행하는 프로그램이다.
인터프리터 언어는 실행시간(runtime) 전에 기계 레벨 코드(machine-level code)를 만드는 컴파일 언어와 다르게 소스코드를 바로 실행하는 언어이며, 파이썬은 인터프리터 언어에 해당한다.
5. What is pep 8?
PEP (Python Enhancement Proposal)는 Python 코드를 포맷하는 방법을 지정하는 규칙 집합이다.
PEP란 코딩 규약이다. 다른 사람과 원활하게 협업하려면 공통된 스타일 공유가 필요하며, 일관성 있는 스타일은 나중에 수정하기도 쉽다. PEP8은 파이썬 코드를 어떻게 구성할 지 알려주는 코딩 스타일 가이드로서의 역할을 한다.
💡 Python formatting tool에는 black, flake8, autopep8, yamf 등이 있다.
참고 자료)
https://github.com/boostcamp-ai-tech-4
BoostDevs
👩💻 BoostCamper에서 BoostDev로 👨💻. BoostDevs has 5 repositories available. Follow their code on GitHub.
github.com
'면접 준비' 카테고리의 다른 글
[면접 준비] Amazon의 OLP와 STAR란? (Ownership, Leadership, and Persistence) (0) | 2024.03.02 |
---|---|
[면접 준비] [Python 파이썬] 면접 질문 개념 정리 #02 (메모리 구조 & 관리, namespace, 모듈, PYTHONPATH, 지역 변수, 전역 변수) (0) | 2023.03.14 |