Point_Sec_0320
파이썬이란 무엇인가?, 파이썬의 기초,자료형 본문
파이썬이란 무엇인가??
파이썬이란, 1990년에 개발된 인터프리터 언어( 해석언어라고도 불림 )이다. 그렇다면 인터프리터 언어는 무엇일까? 바로 소스코드를 한 줄씩 해석해서 그때그때 실행해 결과를 바로 확인할 수 있는 언어를 의미한다.
#
파이썬은 교육목적, 실무목적에서 많이 쓰여지는데 그만큼 쉽고 유용하게 쓰인다고 보면 된다. 예를 들면 구글을 들 수 있는데, 구글에서 만들어진 소프트웨어의 50%이상이 파이썬으로 만들어졌다는 이야기가 있다. 파이썬의 특징은? 파이썬은 공동 작업과 유지보수가 매우 쉽고 편리해서 국내 기업에서도 파이썬 사용빈도가 늘어가고 있는 추세다.
종합적으로,
1. 파이썬은 인간다운 언어다.
다른 언어를 사용해보았다면 왜 이런 특징이 있는지 이해하기 편할 것이다. 프로그래밍언어란 쉽게말해 컴퓨터에게 무언가 일을 시키기 위해 컴퓨터가 알아먹도록 컴퓨터에 맞는 명령어를 프로그래밍언어를 사용하여 입력하는 것이다. 즉, 다른 언어들은 컴퓨터에 맞춰져 있는 경우가 많다.( 필자가 아는 언어 = C,java ) 하지만 파이썬 같은 경우는 사람이 생각하는 방식을 그대로 표현할 수 있는 언어이므로 사용자의 진입장벽이 굉장히 낮은 편이다. ( 특히 나처럼 아직 많은 언어를 배워보지도 않았지만 이미 프로그래밍 언어를 조금이라도 배웠다면 파이썬이 왜 쉬운지 알 수 있다. )
2. 파이썬은 문법이 쉬워 빠르게 배울 수 있다.
파이썬 문법이 쉽다는 이유는 그만큼 사람의 사고체계와 매우 닮았기 때문에 생각하는 대로 문법을 써내려 가면 된다.
3. 파이썬은 무료지만 강력하다.
파이썬이 오픈소스이고 무료로 제공된다. 약점이 있다면 시스템 프로그래밍과 하드웨어 제어와 같이 복잡한 연산이 많은 프로그램과는 어울리지 않는다. 이러한 약점을 극복하기 위해 다른언어와의 연동이 자유로운데, 특히 C와 파이썬이 찰떡궁합니다. 뼈대를 파이선으로 잡고 빠른 실행속도를 C가 잡아준다.
4. 파이썬은 간결하다.
파이썬은 일부러 간결하게 만들었다. 그만큼 여러 방법을 사용하기 보다는 한가지 확실한 방법으로 이용하는 것을 선호한다. 이런 간결함이 파이썬 사용자들이 잘 정리된 소스코드를 볼 수 있도록 도와준다.
5. 파이썬은 개발 속도가 빠르다.
파이썬에 유명한 말이 있다. " Life is too short, You need Python. "
잠깐 파이썬으로 할 수 있는 일을 간단하게 알아보자.
1. 시스템 유틸리티 제작
2. GUI프로그래밍
3. C/C++와의 결합
4. 웹 프로그래밍
5.수치 연산 프로그래밍
6. 데이터베이스 프로그래밍
7. 데이터분석, 사물 인터넷
(할 수 없는 일 - 시스템과 밀접한 프로그래밍 영역, 모바일 프로그래밍)
+ 필자가 특징을 굳이 써내려간 이유는, 각 프로그래밍 언어를 사용할 때 왜 사용하는지, 언제 사용하는지, 등등을 생각하지 않는 경우가 많은데 쉽게 설명하면 내가 마라톤 선수인데 지구력을 키우지 않고 근육 펌핑만 해서 보디빌더 몸을 만들고 마라톤뛰러가는 것을 비유하고 싶다. 즉, 특징을 알고 써야 내가 이 언어를 고른 이유가 된다.
# 대화형 인터프리터
* 파이썬 프로그래밍 실습으로 파이썬을 설치하면 같이 다운로드 되는 대화형 인터프리터인 '파이썬 셸' 이다. ' >>> '은 프롬프트라고 하며 명령어 입력창이라고 알아두면 편하다.
* 파이썬 프로그램을 편하게 작성을 할 수 있는 여러가지 에디터가 있는데 필자는 파이참(pycharm)을 사용하였다. (리눅스 사용자는 vi에디터를 추천)
* 에디터란 문서를 쉽게 편집할 수 있도록 도와주는 도구라고 보면 된다.
# 파이참 기본화면
* 파이참 다운로드는 ( http://www.jetbrains.com/pycharm/download/ )에서 다운로드 가능
* .py확장자는 파이썬 파일임을 알려주는 관례적인 확장자명이다.
파이썬의 기초, 자료형
( 대부분 알고 있는 내용은 넘기고 생소하거나 확인해볼 내용만 짚고 넘어가자.)
* 컴퓨터식 ' 지수 표현 방식 '
- a= 4.24E10 (=4.24 * 10의10제곱), a= 4.24e-10 (=4.24 * 10의 -10제곱)
* 8진수와 16진수
- 8진수 : a= 0o177 ( 숫자 앞에 숫자0+영어소or대(o,O)로 시작)
- 16진수 : a= 0x8ff ( 숫자 앞에 숫자0+ 영어x로 시작)
* 복소수
- a= 1+2j
- a.real 을 입력하면 실수 부분 리턴 (= 1.0)
- a.imag 를 입력하면 허수 부분 리턴(=2.0)
- a.conjugate() 를 입력하면 켤레복소수 리턴(1-2j)
- abs(a)는 복소수의 절대값을 리턴
( = )
* x의 y제곱을 나타내는 연산자
- x의 y의 제곱= x**y
(숫자형 예제)
* 문자열에 대해 알아보도록 하자
- 문자열을 만드는 방법은 4가지로 단순함이 자랑인 파이썬에서 문자열을 나타내는 방법이 어떻게 4가지가 되는지 4가지인 이유는 무엇인지 알아보자
* 문자열표현 4가지
- 첫번째, (")으로 둘러싸기 "hello world"
- 두번째, (')으로 둘러싸기 'hello world'
- 세번째, ('이 3개연속인 ''')으로 둘러싸기 ''' hello world '''
- 네번째, ("이 3개연속인 """)으로 둘러싸기 """ hello world """
* 문자열 안에 작은 따옴표나 큰 따옴표를 포함시키고 싶을 때
- 간단하게 말하면, 큰 따옴표(") 안에서는 작은 따옴표(')는 문자열을 둘러싸는 기호가 아닌 문자열일부로만 인식이 된다.
- 반대로 작은 따옴표 안에서는 큰 따옴표는 문자열을 둘러싸는 기호로 쓰이지 않는다.
- 다만 백슬래쉬(\)를 이용하면 같은 따옴표를 문자열안에 포함가능하다.
(ex) "\"Python is too easy\"he says"
* 여러 줄인 문자열을 변수에 대입하고 싶을 때
- Life
is too short
- 위의 예제를 처리하려면 어떻게 해야 될까?
- 1. (\n) 줄바꿈 이스케이프 코드를 삽입 ( 문자열예제 )
- 2. (''') or (""") 을 이용하기 ( 문자열예제 )
* 파이썬에서는 문자열을 더하거나 곱할 수 있다. 다른 언어에서는 쉽게 찾아볼 수 없는 기능으로, 파이썬의 장점이기도 하다.
일반적인 더하기와 곱하기와는 다르다.
- 문자열 더하기(+): 문자열과 문자열을 연결한다. (문자열 예제)
- 문자열 곱하기(*) : 문자열을 곱한 수만큼 반복한다. (문자열 예제)
* 문자열 인덱싱
- 인덱싱은 '가리킨다' 는 의미를 가진다. 문자열의 각 자리마다 위치값을 가진다고 보면 된다.
- life 라는 문자열이 있다면 l부터 e까지 0~3까지의 자리위치값이 있는 것이다.
- " 파이썬은 0부터 센다 " 는 점을 알아두자
- ''와 ' '은 다르다. 왼쪽 ''은 빈문자이고 ' '은 공백이 들어가 있으므로 공백문자이다.(위치값을 가짐)
- 위치를 나타낼 때는 변수에 [숫자]를 이용하여 위치에 있는 값을 가져온다.
(ex) a= 'life' -> a[0]= 'l' a[1]='i' a[3]='e' a[-1]= 'e'( 여기서 []안에 -1은 뒤에서부터 읽는 것을 의미)
* 문자열 슬라이싱
- 슬라이싱은 '잘라낸다' 를 의미한다.
- 문자열에서 한 문자를 뽑아내지 않고 문자열 자체를 뽑아내기 위한 방법이다.
- 인덱싱과 같은 점은 (변수)[]인데 여기서 다른점은 []안에 범위를 지정하는 것이다.
(ex) a= 'life is too short'
a[0] ='l' a[1]='i' 일때, a[0:2]='li'가 된다. 즉, a[(범위의 시작숫자):(범위의 끝숫자)]로 나타낼 수 있다.
- 뭔가 특이한 점을 발견할 수 있는데 범위의 끝숫자가 1이 아니고 2이다. 2로 나타내는 이유는 범위를 나타낼 때 범위의 끝숫자 이전숫자까지만 문자열을 뽑아내기 때문이다. 이 점 명시하자.
- 슬라이싱의 다양한 표현법은 예제에서 확인해볼 수 있다.
# 문자열 인덱싱, 슬라이싱 예제
* 문자열 포매팅과 여러가지 문자열 관련 함수들
- 문자열 포매팅은 문자열 내에 어떤 값을 삽입하는 것이다. 특정 부분에 내가 때에 따라 대입할 값의 자리를 지정한다고 보면 된다.
- %d : 숫자를 넣기 위한 포맷코드
%s : 문자열을 넣기 위한 포맷코드
%c : 문자 1개를 "
%f : 부동 소수를 "
%o : 8진수를 "
%x : 16진수를 "
%% : "%"를 넣기위한 포맷코드
- 포맷코드와 숫자를 함께 사용 가능한데 %와 코드(d,o,s,c....)사이에 숫자를 입력했을 때 숫자의 크기만큼의 공백이 생긴다.
- 소수점을 표현할 때는 %()f -> 괄호안에 소수점 뒷자리를 지정해줄 수 있다.
(ex) "%0.4f"%3.123456789 -> 3.1234가 출력
- 문자열 관련 함수들
1. 문자 개수세기(count) : a.count('b') - a안의 문자열에서 'b'가 나온 횟수
2. 위치 알려주기1 (find) : a.find('b') - b가 나온 처음 위치 ( 없으면 -1 )
3. 위치 알려주기2 (index) : a.index('b') - b가 나온 처음 위치 ( 없으면 오류 )
4. 문자열 삽입 (join) : a=',' a.join('abc') - abc사이에 각각 ,를 대입
5. 소문자를 대문자로 바꾸기 (upper) : a.upper()
6. 대문자를 소문자로 바꾸기 (lower) : a.lower()
7. 왼쪽 공백 지우기 (lstrip) : a.lstrip() : 문자열 제일 왼쪽에 공백이 있다면 공백을 지움
8. 오른쪽 공백 지우기 (rstrip) : a.rstrip()
9. 양쪽 공배 지우기 (strip) : a.strip()
10. 문자열 바꾸기(replace) : a.replace('바뀌게 될 문자열','넣을 문자열')
11. 문자열 나누기(split) : a.split(':') - a의 있는 ':'를 기준으로 문자열을 나눠 리스트에 저장
# 문자열 포매팅과 관련함수들
* 위의 예제를 보면 고급문자열 포매팅인 format함수를 사용한 예제가 보이는데, 포맷코드자리는 { 자리수or 자리이름}으로 " "%() 자리에는 " ".format()로 대체했다.
- 위의 예제를 보면 어느 자리에 어느 숫자 문자열 변수를 넣어주는지 확인은 쉽다.
- 왼쪽정렬, 오른쪽 정렬, 가운데 정렬, 공백을 문자로 채우기, 소숫점 표현은 생소하니 꼭 확인해보고 예제를 따라해보기 바란다.
##
누군가가 이 게시글을 보면 허접하다고 생각할 수도 있고, 누군가는 도움이 될 수도 있다고 생각한다.
당연히 게시글을 보고 다른 사람들이 도움이 되었으면 하는 바람이다.
필자는 파이썬을 프로그래밍언어를 처음접하는 사람에게 권하고 싶지는 않다.
전공자라면 당연하게 자바, C언어를 먼저 접하기 때문에 알겠지만 컴퓨터가 이해하는 구조를 먼저 접하고 그 후에 사람의 표현방식과 유사한 그리고 문법이 간단한 언어인 파이썬을 공부한다면 매우 접근하기 쉽기 때문에 공부하기 편할 것이다.
필자의 경우 한번 훑어보고 이해하는데 열흘이면 충분하였다.
다들 나보단 똑똑할테니 일주일이면 돌파 가능할 것이다.
첫 파트는 파이썬이 어떤 프로그래밍 언어인지, 기본 연산자와 문자열에 관하여 내용을 좀 많이 담아서 설명을 하였는데 다음 파트부터는 요점만 간략하게 설명하고 예제를 게시해보려 한다.
다음 파트에서 봅시다.
##
다른 고수님들의 피드백은 필자에게 매~우 감사한 일입니다. 댓글로 피드백, 질문 모두 받겠습니다. 감사합니다.
'python' 카테고리의 다른 글
파이썬 마지막 간단한 예제, 정규표현식, xml (0) | 2017.12.12 |
---|---|
파이썬 클래스,모듈,패키지,내/외장함수 (0) | 2017.04.05 |
파이썬_ 제어문,함수,입출력 (0) | 2017.04.04 |
리스트,튜플,딕셔너리,집합,참거짓,변수 (0) | 2017.04.03 |