[TIL] 파이썬이란 무엇인가
1-1. 파이썬이란?
- 파이썬(Python)은 인터프리터 언어
인터프리터 언어 : 한 줄 씩 소스 코드를 해석해서 실행해 결과를 바로 확인할 수 있는 언어
대표적인 사용 예
- 구글에서 만든 소프트웨어의 50% 이상이 파이썬으로 작성됨
- 온라인 사진 공유 서비스 인스타그램(instagram)
-
파일 동기화 서비스 드롭박스(Dropbox)
- 파이썬은 공동 작업과 유지 보수가 매우 쉽고 편함
1-2. 파이썬의 특징
파이썬은 인간다운 언어이다
if 4 in [1,2,3,4]:
print("4가 있습니다")
만약 4가 1, 2, 3, 4 중에 있으면 "4가 있습니다"를 출력한다.
파이썬은 문법이 쉬워 빠르게 배울 수 있다
- 파이썬은 문법 자체가 아주 쉽고 간결하며 사람의 사고 체계와 매우 닮아 있음
파이썬은 무료이지만 강력하다
- 오픈 소스로 무료이므로 사용료 없이 언제 어디서든 파이썬을 다운로드하여 사용할 수 있음
오픈 소스(Open Source) : 저작권자가 소스 코드를 공개하여 누구나 별다른 제한 없이 자유롭게 사용, 복제, 배포, 수정할 수 있는 소프트웨어
- 다른 언어로 만든 프로그램을 파이썬 프로그램에 포함 시킬 수 있음
- ex) 뼈대는 파이썬으로 만들고, 빠른 실행 속도가 필요한 부분은 C로 만들어서 파이썬 프로그램 안에 포함 시킴
- 파이썬 라이브러리 중에는 순수 파이썬으로 제작된 것도 많지만 C로 만든 것도 많음
- C로 만든 것은 대부분 속도가 빠름
파이썬 라이브러리 : 파이썬 프로그램을 작성할 때 불러와 사용할 수 있는 미리 만들어 놓은 파이썬 파일 모음
파이썬은 간결하다
- 간결해서 다른 사람이 작업한 소스 코드도 한눈에 이해하기 쉽기 때문에 공동 작업과 유지 보수가 아주 쉽고 편함
프로그래밍 언어를 판별하여 그에 맞는 문장을 출력하는 파이썬 프로그램 예제
# simple.py
languages = ['python', 'perl', 'c', 'java']
for lang in languages:
if lang in ['python', 'perl']:
print("%6s need interpreter" % lang)
elif lang in ['c', 'java']:
print("%6s need compiler" % lang)
else:
print("should not reach here")
- 다른 언어와 다르게 괄호({}) 문자가 보이지 않음
- 줄을 잘 맞춘코드임 -> 들여쓰기
- 파이썬은 줄을 맞추지 않으면 실행되지 않음
- 줄을 맞추어 코드를 작성해서 가독성이 좋음
1-3. 파이썬으로 무엇을 할 수 있을까?
파이썬으로 할 수 있는 일
시스템 유틸리티 제작
- 운영체제(윈도우, 리눅스 등)의 시스템 명령어를 사용할 수 있는 도구들이 있음
- 시스템 유틸리티 만드는데 유리함
유틸리티 : 컴퓨터 사용에 도움을 주는 여러 소프트웨어
GUI(Graphic User Interface) 프로그래밍
- GUI 프로그래밍이란 쉽게 말해 화면에 또 다른 윈도우 창을 만들고 그 창에 프로그램을 동작시킬 수 있는 메뉴나 버튼, 그림 등을 추가하는 것
- GUI 프로그래밍을 위한 도구들이 있어 GUI 프로그램을 만들기 쉬움
- ex) 파이썬 프로그램과 함께 설치되는 Tkinter(티케이인터)를 사용하면 단 5줄의 소스 코드만으로 윈도우 창을 띄울 수 있음
C/C++와의 결합
- 파이썬은 접착(glue)언어라고도 부름
- 다른 언어와 결합해서 사용 가능
- C/C++로 만든 프로그램을 파이썬에서 사용 가능하고그 반대의 경우도 가능
웹 프로그래밍
- 파이썬은 웹 프로그램(게시판, 방명록 등)을 만들기에 적합한 언어임
수치 연산 프로그래밍
- 수치 연산은 C 언어가 적합
- 하지만 파이썬에서 NumPy 수치 연산 모듈을 제공함
- 이 모듈은 C 언어로 작성됨 -> 즉 파이썬에서도 수치 연산 빠르게 가능
데이터베이스 프로그래밍
- Sybase, Infomix, Oracle, MySQL, PostgreSQL 등의 데이터베이스에 접근하기 위한 도구를 제공함
- 피클(pickle) 모듈 제공함
- 자료를 변형 없이 그대로 파일에 저장하고 불러올 수 있는 모듈
데이터 분석, 사물 인터넷
- 판다스(Pandas) 모듈 사용 시 데이터 분석 쉽게 할 수 있음
- 데이터 분석에 특화된 R 언어를 많이 사용하고 있지만 판다스가 등장한 이후로 파이썬 수요가 증가하고 있음
- 사물인터넷에 파이썬 활동도 높음
- 라즈베리파이를 사용하면 홈시어터 or 작은 게임기 제작 가능
- 파이썬은 라즈베리파이 제어하는 도구
- ex) 라즈베리파이에 연결된 모터를 작동시키거나 LED에 불이 들어오게 하는 일
라즈베리파이(Raspberry Pi) : 리눅스 기반의 아주 작은 컴퓨터
파이썬으로 할 수 없는 일
시스템과 밀접한 프로그래밍 영역
- 리눅스 같은 운영체제, 엄청난 횟수의 반복과 연산이 필요한 프로그램 또는 데이터 압축 알고리즘 개발 프로그램 등을 만드는 것은 어려움
- 대단히 빠른 속도를 요구하거나 하드웨어를 직접 건드려야 하는 프로그램에는 어울리지 않음
모바일 프로그래밍
- 안드로이드 앱(App) or 아이폰 앱을 개발하는 것은 어려움
1-5 파이썬 둘러보기
- 파이썬은 대화형 인터프리터라고 함
- 대화형 : 입력에 따른 결괏값이 바로 출력되는 것
- 인터프리터 : 사용자가 입력한 소스 코드를 실행하는 환경
파이썬 대화형 인터프리터를 간단히 파이썬 셸(Python shell)이라고도 함
3개의 꺾은 괄호(»>)는 프롬프트(prompt)라고 함
파이썬 기초 문법
사칙연산
- 더하기(+)
>>> 1 + 2
3
- 나눗셈(/), 곱셈(*)
>>> 3 / 2.4
1.25
>>> 3 * 9
27
변수에 숫자 대입하고 계산하기
>>> a = 1
>>> b = 2
>>> a + b
3
변수에 문자 대입하고 출력하기
>>> a = "Python"
>>> print(a)
Python
파이썬은 대소문자를 구별함
print를 PRINT로 쓰면 정의되지 않았다는 오류 메시지가 뜸
- print문을 생략하고 변수 이름 a만 입력하여 a의 값을 확인할 수 있음
>>> a = "Python"
>>> a
'Python'
조건문 if
>>> a = 3
>>> if a > 1:
... print("a is greater than 1")
...
a is greater than 1
- a가 1보다 크면 “a is greater than 1” 문장 출력(print)
print문 앞의 ‘…‘은 아직 문장이 끝나지 않았음을 의미
if a > 1:
다음 문장은Tab
키 또는Spacebar
키 4개를 이용해 반드시 들여쓰기 한 후에print("a is greater than 1")
이라고 작성해야 함
반복문 for
>>> for a in [1, 2, 3]:
... print(a)
...
1
2
3
- for문을 사용하면 실행해야 할 문장을 여러 번 반복해서 실행시킬 수 있음
- [1, 2, 3] 리스트의 값이 a에 차례로 1, 2, 3이라는 값이 대입되며
print(a)
에 의해서 그 값이 차례대로 출력
반복문 while
>>> i = 0
>>> while i < 3:
... i=i+1
... print(i)
...
1
2
3
- for문과 마찬가지로 반복해서 문장을 수행할 수 있도록 해줌
- i 값이 3보다 작은 동안
i=i+1
과print(i)
를 수행 - i 값이 3보다 커지게 되면 while문을 빠져나감
함수
>>> def add(a, b):
... return a+b
...
>>> add(3,4)
7
def
는 함수를 만들 때 사용하는 예약어add(a, b)
에서 a, b는 입력값이고, a+b는 결괏값
예약어 : 프로그래밍 언어에서 이미 정의된 단어
느낀점
- 파이썬의 특징을 명료하게 알 수 있었고 파이썬을 활용하면 할 수 있는 개발들이 다양하고 실제로도 많이 이용되고 있는 것을 알 수 있었다.
코딩테스트를 위해서 공부를 하고 있었는데 어디에 사용되는지를 알고 공부를 하다보니 자유롭게 언어를 구사해서 웹 서비스나 코딩테스트 등에서 자유롭게 사용하면 좋을거 같다.