1. Python이란?
•
1991년 귀도 반 로섬 (Guido Van Rossum)이 발표
•
interpreted high-level programming language
◦
고급언어일수록 사람과 친화적
•
플랫폼 독립적 언어
•
인터프리터 언어
•
객체 지향 언어
•
동적 타이핑 언어
•
처음엔 C언어로 구현되었음
•
파이썬의 종류
◦
Cpython: C로 만들어진 파이썬. 우리가 말하는 일반적인 파이썬
◦
Jython: Java로 만들어진 파이썬
◦
IronPython: C#으로 만들어진 파이썬
◦
1.1 플랫폼 독립적 언어
•
'플랫폼' = OS
◦
윈도우, 리눅스, 안드로이드, 맥OS, iOS 등 프로그램이 실행되는 운영 체제를 플랫폼이라고 함
•
'독립적'
◦
OS에 상관없이 한번 프로그램을 작성하면 어디서든 사용 가능
1.2 인터프리터 언어
•
컴퓨터 프로그래밍 언어는 크게 컴파일러 방식과 인터프리터 방식 두 가지로 나누어짐
•
컴파일러 언어: 모든 코드를 컴파일링 후에 컴퓨터에서 처리 → 처리속도가 빠르지만 프로그램 실행을 위해 컴파일링 시간을 기다려야 함
•
인터프리터 언어 = 통역기를 사용하는 언어
◦
소스코드를 바로 실행할 수 있게 지원하는 프로그램 실행 방법
◦
한 줄 씩 컴파일링 하면서 코드를 수행
◦
처리속도가 느리지만 컴파일링 시간 없이 바로바로 프로그램이 실행됨
•
최근에는 컴퓨팅 파워가 발전하면서 작성이 간단한 인터프리터 언어가 발전
◦
코드를 (컴퓨터 자원을 효율적으로 쓸 수 있도록) 잘 만들면 컴퓨터가 효율적으로 일할 수 있다!
컴파일러 언어 | 인터프리터 언어 | |
작동방식 | - 소스코드를 기계어로 먼저 번역
- 해당 플랫폼에 최적화되어 프로그램을 실행 | 별도의 번역과정 없이 소스코드를 실행시점에 해석하여 컴퓨터가 처리할 수 있도록 함 |
장점 & 단점 | - 실행속도가 빠름
- 한번에 많은 기억장소 필요 | - 간단히 작성, 메모리가 적게 필요
- 실행속도가 느림 |
주요 언어 | C, 자바, C++, C# | 파이썬, 자바스크립트, 스칼라 |
1.3 객체 지향적 언어
•
실행 순서가 아닌 단위 모듈(객체) 중심으로 프로그램을 작성
•
실제 세계를 모델링, 공통적인 기능을 묶어서 개발하는 방식으로, 추상화/캡슐화/상속/다형성의 특징을 가짐
•
하나의 객체는 어떤 목적을 달성하기 위한 행동(method)과 속성(attribute)을 가지고 있음
•
반대 개념은 절차지향
1.4 동적 타이핑 언어
•
인터프리터 언어의 특징 중 하나
•
실행하는 시점에 프로그램이 사용해야 할 데이터에 대한 타입을 결정함
•
변수 선언시 데이터 타입을 지정해주지 않아도 데이터에 따라서 자동으로 타이핑
2. 왜 python인가?
•
쉽고 간단하며 다양한 기능을 제공
•
https://github.com/vinta/awesome-python 파이썬으로 할 수 있는 것들
2.1 인간 지향적인 간단한 문법
•
얼마나 간단한가?
•
화면에 "Hello World!"를 찍기 위한 코드를 다른 언어와 비교해보자
◦
먼저 자바의 경우 다음과 같이 써야 한다(고 한다.)
class HelloWorldApp {
public static void main(String[] args) {
System.out.printIn("Hello World!")
}
}
Java
복사
◦
python의 경우 훨씬 간단하다
print("Hello World!")
Python
복사
•
화면에 1부터 10까지 순서대로 출력하는 코드도 비교해보자
◦
먼저 자바의 경우 다음과 같이 써야 한다(고 한다.)
for (i=1; i< 11; i++{
System.out.printIn (i)
}
Java
복사
◦
python의 경우 훨씬 간단하다
for i in range(1, 11):
print(i)
Plain Text
복사
2.2 다양한 라이브러리와 넓은 활용 범위
•
파이썬은 다양한 라이브러리가 이미 다른 사용자에 의해 구현되어 있음
◦
특히 통계와 데이터분석 분야의 라이브러리가 강력
•
파이썬 라이브러리의 편리함을 보여주는 재미있는 meme을 하나 보자
2.3 가장 대중화된 언어
•
파이썬은 최근 가장 널리 쓰이고 있는 언어 중 하나로, 강한 커뮤니티가 구축되어 있음
한 줄 요약: "Life is short. You need Python!"
참고자료
•
인프런, ⟪프로그래밍, 데이터 과학을 위한 파이썬 입문⟫ 수업 자료