파이썬 개요
1. 파이썬 소개
파이썬이란?
파이썬 언어의 개발자
- 네덜란드 출신의 컴퓨터 프로그래머 ‘귀도 반 로섬’ (Guio van Rossum)에 의해 개발되어 1991년 공식 발표됨
- C언어로 제작하여 발표한 인터프리터 형식의 프로그래밍 언어
- 귀도(Guio van Rossum)가 좋아하던 코미디 프로그램인 "Monty Python’s Flying Circus"의 프로그램에서 따온 이름
- 파이썬의 사전적인 의미는 "비단뱀"으로, 파이썬 언어의 로고도 파란색과 노란색 비단뱀 두 마리가 있는 형태
- 웹 개발, 빅데이터, 인공지능, 3D 애니메이션 등 주로 과학 및 교육 분야에서 널리 활용됨
파이썬 언어의 장단점
1) 파이썬 언어의 장점
- 문법이 간결하고 읽기 쉬워 코딩하기 편리하다.
- 다른 프로그래밍 언어에 의해 복잡한 문법이 없어 배우기 쉽다.
- 객체지향적이면서 절차지형적이다.
- 소소한 프로그램을 만들기 위해 객체를 만들 필요 없이 간단한 코드로 목적을 달성할 수 있다.
- 라이브러리가 풍부하여 확장이 쉽고 강력하다.
- 매우 광범위한 라이브러리가 기본적으로 포함되어 있으며 외부에서 제공하는 다양한 Third Party 라이브러리까지 사용할 수 있어 확장성이 크다.
- 무료이다.
- 파이썬은 오픈 소스로 개발되어 무료로 이용할 수 있다.
- 개발 속도가 빠르다.
2) 파이썬 언어의 단점
- 컴파일러 언어에 비해 실행 속도가 느리다.
- 한 단계씩 기계어로 번역되어 실행되는 인터프리터 방식의 프로그래밍 언어이기 때문에 컴파일러 방식의 프로그래밍 언어보다 실행 속도가 느리다.
- 모바일 컴퓨팅 분야에 지원이 약하고 하드웨어를 직접 제어하는 분야에는 사용이 어렵다.
파이썬과 다른 프로그래밍 언어의 차이점
"기술적으로 그 차이점을 설명할 수 도 있습니다. 하지만 제가 생각하기에 파이썬은 인터넷을 기반으로 열정과 주인의식을 가진 사람들에 의해 개발된 모두에게 열려 있는 언어라는 것이 가장 큰 차이라고 생각합니다"
- Guio vanRossum -
파이썬 언어의 버전 별 차이점
파이썬2 vs.파이썬3
파이썬 2.x
- 파이썬 2.0은 2000년 10월 16일 처음 배포
- 1.x 버전에 비해 가비지 수집기(GC, Garbage Collector)가 탑재되었고 유니코드를 지원
- 2020년 1월 1일부터 지원 종료
파이썬 3.x
- 파이썬 3000이라는 코드명을 지닌 파이썬 3.0버전의 최종판은 긴 테스트를 거쳐 2008년 12월3일 공식 발표됨
- 파이썬 3.0은 2.x대 버전의 파이썬과 하위 호환성이 없다.
- 파이썬 공식 문서에서는 "파이썬 2.x 는 레거시(낡은 기술)이고, 파이썬 3.x가 현재와 미래가 될 것"이라고 명시
- 처음 파이썬을 배우는 경우 파이썬 3으로 시작할 것을 권장
파이썬 프로그램 2.x와 비교하여 3.x에 달라진 점
1) 데이터 타입 중 long형 타입이 없어지고 int형으로 통일됨
# 2.x
import sys
t1 = sys.maxint # maxint 값 이하는 int,
t2 = sys.maxint+1 # maxint 값 보다 크면 long 타입이 됨
print(t1) # 9223372036854775807
print(t2) # 9223372036854775808
print(type(t1)) # <type 'int'>
print(type(t2)) # <type 'long'>
# 3.x
import sys
t1 = sys.maxsize # maxsize 값 이하는 물론
t2 = sys.maxsize+1 # maxsize 값 보다 큰 값도 int로 처리됨
print(t1) # 9223372036854775807
print(t2) # 9223372036854775808
print(type(t1)) # <class 'int'>
print(type(t2)) # <class 'int'>
2) int / int 연산의 결과는 float형으로 처리됨
3) 화면 출력 명령어인 print가 print() 함수로 변경됨
# 2.x
print "Hello, World"
#Hello, World
#3.x
print "Hello, World"
# SyntaxError: Missing parentheses in call to 'print'.
print("Hello, World")
# Hello, World
4) raw_input()이 input()으로 변경됨
5) String, Unicode 체계가 바뀜
# 2.x
type('가')
# <type'str'>
type(u'가')
# <type'unicode'>
# 3.x
type('가')
# <class 'str'>
type('가'.encode('cp949'))
# <class 'bytes'>
6) 문자열 포맷팅을 지원함
## 2.x
'My name is %s and I am from %s.'%(‘Kim','Seoul')
# 'My name is Kim and I am from Seoul.'
## 3.x
'My name is %s and I am from %s.'%('Kim','Seoul')
# 'My name is Kim and I am from Seoul.'
'My name is {0} and I am from {1}.'.format('Park','Incheon')
# 'My name is Park and I am from Incheon.'
7) 인자로 구분자(sep), 라인끝(end), 출력(file)을 지정할 수 있는 옵션을 제공함
8) with ... as 예약어가 추가됨
# 2.x
data_file = open(‘test.dat’) # 파일을 연다
print(data_file.readline(), end=‘’) # 열은 파일을 처리
data_file.close() # 파일을 닫는다
# 3.x
with open(‘test.dat’) as data_file:
print(data_file.readline(), end=‘’)
# with문을 사용하면 with 블록을 벗어나는 순간 파일 객체가 자동으로 닫힌다.
파이썬 개발 도구
1) 파이썬 인터프리터
- Python (https://www.python.org/downloads/)
2) 파이썬 통합개발 도구
-
Python IDLE (https://www.python.org/downloads/)
✓ 파이썬 인터프리터를 설치하면 기본적으로 함께 설치되는 개발도구 -
JetBrains PyCharm (https://www.jetbrains.com/ko-kr/pycharm/)
- Sublime Text (https://www.sublimetext.com/3)
- Anaconda Spyder (https://www.anaconda.com/distribution/)
3) 웹 기반 파이썬 개발 도구
- Anaconda Jupyter Notebook (https://www.anaconda.com/distribution/)
2. 파이썬 설치와 사용
Python 프로그램의 설치와 사용
1-1. Python 프로그램의 설치
-
Step 1 : 파이썬 홈페이지(https://www.python.org/downloads)로 이동하여 자신의 운영체제 플랫폼에 맞춰 3.7.x 버전을 다운로드 받는다.
-
Step 2 : 다운로드 받은 Python 설치 프로그램을 실행시켜 아래 나타낸 것 같이 Setup 창이 뜨면 "Install launcher for all users" 와 "Add Python 3.7 to PATh" 앞에 놓인 checkbox를 체크한 후 Install Now 를 클릭하여 설치를 진행시킨다.
-
Step 3 : 아래 나타낸 것과 같이 Python 프로그램의 설치가 진행된다.
- Step 4 : 아래 나타낸 것과 같이 Python 프로그램의 설치가 성공적으로 완료되면, 우측 하단의 [Close] 버튼을 마우스로 클릭하여 설치를 종료한다.
- Step 5 : 윈도우 시작메뉴에서 Python 3.7 아래 놓인 IDLE(Python 3.7 64-bit) 메뉴 항목을 선택하여 Python 3.7.x Shell 프로그램을 실행시킨다.
- Step 6 : Python 3.7.x Shell 창의 입력 프롬프트(">>>")에 아래 화면에 나타낸 것과 같이 "import sys" 명령과 "print(sys.version)" 명령을 차례대로 입력하여 설치된 Python 프로그램의 버전을 확인한 후, "exit()" 명령을 입력하여 Python 3.7.x Shell 프로그램을 종료시킨다.
1-2. Python 프로그램의 설치
- Step 1 : https://www.jetbrains.com/ko-kr/pycharm/download 에서 PyCharm 커뮤니티 버전의 "다운로드" 버튼을 마우스로 클릭한다.
- Step 2 : 다음 화면에서 "다른 이름으로 저장" 창이 나타나면 PyCharm 설치 프로그램을 다운로드받기 위한 폴더를 지정한 후 다운로드 받는다.
- Step 3 : 다운로드 받은 PyCharm 설치 프로그램을 마우스로 더블클릭하여 실행시켜 Setup 창이 나타나면 "Next" 버튼을 누른다.
- Step 4 : PyCharm 프로그램을 설치할 폴더를 지정한 후, "Next" 버튼을 누른다.
- Step 5 : 설치 옵션을 아래 화면과 같이 지정한 후 "Next" 버튼을 누른다.
- Step 6 : 윈도우 시작 메뉴에 나타낼 폴더명을 지정한 후, "Install" 버튼을 누른다.
- Step 7 : 설치가 진행된다.
- Step 8 : 설치가 완료되면 윈도우 시스템을 재 부팅시킨다.
- Step 9 : PyCharm을 처음 실행시키면 UI테마를 선택하기 위한 CustomizePyCharm창이 아래와 같이 나타난다. 그러면 자신의 취향에 따라 Dracula와 Light 가운데 하나를 선택한 후 [Next: Featured plugins] 버튼을 클릭하여 다음 화면으로 넘어 간다.
- Step 10 : 두 번째 Cutomize PyCharm 창은 Featured plugins을 선택하여 설치하기 위한 화면을 제공한다. 여기서 만일 필요한 plugin 이 있으면 필요한 plugin의 install 버튼을 클릭하여 설치하고, 필요한 plugin 이 없다면 [Start using PyCharm] 버튼을 클릭한다.
- Step 11 : 아래 나타낸 것과 같이 "Welcome to PyCharm" 창이 나타나면, + Create New Project 항목을 선택하여 새로운 프로젝트를 만든다.
- Step 12 : 새로운 프로젝트를 만들기 위한 "New Project" 창이 나타나면 Location: 으로 표시된 텍스트 입력 상자에 새로운 프로젝트 폴더와 파일들을 저장하기 위한 위치를 지정한 후 [Create] 버튼을 클릭한다.
- Step 13 : 아래 나타낸 것과 같이 "Tip of the Day" 팝업 창이 나타나면 [Close] 버튼을 눌러 팝업 창을 닫고, 앞서 입력한 파이썬 프로젝트 폴더가 만들어졌는지 Project 창에서 확인한다.
- Step 14 : Project 창에 만들어져 있는 파이썬 프로젝트 폴더(아래 예의 경우 Hello) 위에 마우스 포인터를 올려 놓고 마우스 우측 버튼을 클릭하여 나타나는 컨텍스트 메뉴에서 "New > File" 또는 "New > Python File" 메뉴 항목을 선택한다.
- Step 15 : 컨텍스트 메뉴에서 "New > File" 을 선택하였을 경우에는 아래 나타낸 것과 같이 새로운 파일명을 입력한 후, 해당 파일의 File Type을 Python으로 등록해야 한다.
- Step 16 : 새로 만든 Python 프로그램의 편집창이 나타나면 소스를 작성한다. 이때 소스 편집창 위에 "No Python Interpreter configured for the project"라는 메시지가 보이면, File 메뉴 > Settings... 메뉴 항목을 선택한다.
- Step 17 : Settings 창이 나타나면 "Project: 프로젝트명 > Project Interpreter" 메뉴 화면에서, "Project Interpreter :
" 텍스트 상자 우측에 놓인 버튼을 마우스 로 클릭하여 나타나는 컨텍스트 메뉴에서 [Add...] 메뉴항목을 선택한다. - Step 18 : Add Python Interpreter 창이 나타나면 "System Interpreter" 메뉴 항목을 선택한 후, 우측 창에서 Interpreter: 입력 상자 끝에 놓인 폴더 지정 [...] 버튼을 마우스로 클릭한 후, 나타나는 Select Python Interpreter 창에서 파이썬 인터프리터 프로그램 (python.exe)의 위치를 찾아 지정한다.
- Step 19 : Python Interpreter의 위치가 정상적으로 잘 지정되었으면, 아래 화면에 나타낸 것과 같이 Settings 창의 "Project: 프로젝트명 > Project Interpreter" 메뉴 화면에서 Python Interpreter의 설치 상태를 확인한 후 [OK] 버튼을 클릭하여 Settings 창을 닫는다.
- Step 20 : PyCharm IDE의 "Run" 메뉴 아래 놓인 " Run... Alt+Shift+F10" 메뉴항목을 선택한다.
- Step 21 : 아래 화면과 같이 Run 컨텍스트 메뉴가 나타나면, 해당 "프로젝트명"과 동일한 이름을 가진 메뉴항목을 선택하여 작성한 파이썬 프로젝트 프로그램을 실행시킨다.
- Step 22 : 작성한 파이썬 프로젝트 프로그램의 실행결과를 PyCharm IDE 실행결과 창에서 확인한다.
3. 파이썬 맛보기 1
값 출력하기와 주석 넣기
print() 함수는 화면에 값을 출력하는 명령
- 출력할값을괄호()안에기입한다.
- 문자나문자열을출력하고자할경우에는문자열을큰따옴표("")또는 작은따옴표(‘ ’)로 둘러싼다.
# 기호는 소스 프로그램에 주석을 넣을 때 사용
변수와 변수 출력
변수는 값을 잠시 저장할 수 있는 공간
- 변수는 하나의 프로그램에서 여러개가 사용될 수 있어서 각각을 구분하기 위한 이름을 부여하며, 이렇게 “변수에 부여된 이름”을 변수명 이라고 한다.
# section_004.py
apple = 10
lemon, banana = 20, 50
fruit = apple + lemon + banana
print(apple)
print(banaba)
print(fruit)
apple = 30
print(apple)
# output
# 10
# 50
# 80
# 30
변수 만들기와 값 저장
등호(=) 오른쪽에 ‘값’이 아니라 ‘수식’이 있는 경우
1 등호의 오른쪽 수식을 계산한다.
2 수식의 계산 결과를 등호 왼쪽의 변수에 저장한다.
변수의 이름을 지을 때 지켜야 할 규칙 (식별자 명명 규칙)
1) 대문자와 소문자를 구분한다 (apple 과 Apple 은 다른 변수이다).
2) 영문대문자, 영문소문자, 숫자그리고밑줄(_)을 사용하여 만들 수 있다.
3) 변수명 중간에 공백문자가 들어가면 안된다.
4) 숫자로 시작하는 변수명도 안된다 (변수명의 첫 글자로 숫자를 사용할 수 없다).
5) 예약어(keyword: 파이썬 명령으로 해석되는 단어)는 변수로 사용될 수 없다.
사용할 수 없는 변수명 | 이유 |
---|---|
2020year | 변수의 첫 글자로 숫자가 사용되었다. |
user name | 변수명 중간에 공백문자가 들어가 있다. |
$wiss | 변수명에 사용할 수 있는 특수문자는 밑줄( _ )뿐이다. |
for | for는 예약어이기 때문에 변수명으로 사용할 수 없다. |
파이썬의 예약어
and, as, assert, break, class, continue, def, del, elif, else, except,
False, finally, for, from, global, if, import, in, is,
lambda, None, nonlocal, not, or, pass,
raise, return, True, try, while, with, yield
Warning
예약어를 변수명으로 사용하면 SyntaxError가 발생한다.
이름만 보고도 저장한 값의 의미를 짐작할 수 있도록 변수명을 지정하는 것이 좋다
좋은 변수명 | 나쁜 변수명 |
---|---|
sum | abc |
MaxAge | xxx |
next_value | y_01 |
score | c1 |
산술연산과 산술연산자
산술 연산 이란?
- 더하기, 빼기, 곱하기, 나누기 등과 같은 연산을 의미
- 산술연산자는 산술연산을 위해 사용하는 명령기호를 말함
파이썬 산술 연산자
기호 | 연산자 | 의미 |
---|---|---|
x + y | 더하기 | x와 y를 더한다. |
x – y | 빼기 | x에서 y를 뺀다. |
x * y | 곱하기 | x와 y를 곱한다. |
x / y | 나누기 | x를 y로 나눈다. |
x // y | 나누기 | x를 y로 나눈다. 단, 결과를 정수로 나타낸다. |
x ** y | 지수승 | x의 y승을 구한다. |
x % y | 나머지 | x를 y로 나눈 나머지를 구한다. |