저번에는 숫자형식과 그 포맷팅에 대해서 간단하게 알아 보았습니다. 이번에는 숫자형식 다음으로 String에 대해서 짚어 보도록 하겠습니다. C언어나 다른 언어처럼 달리 실제로 String을 많이 사용하지는 않지만 파이썬은 LIST와 깊은 연관을 가지고 있기 때문에 DEEP하게 살펴보도록 한다고 이전에 숫자형에서 말씀 드렸었습니다. 그럼 이번에도 iPython과 같은 IDE를 키고 실제로 타이핑을 하면서 한 번 알아보도록 하겠습니다.

 

1. Definition and escape code

일단 문자열 자료형을 만드는 방법은 간단합니다.

" "나 ' '안에 선언 하면 되는 거죠. 하지만 's와 같이 string안에 ' 기호를 포함시켜야 할 경우가 있을 지도 모르니까, 가능하면 " "로 선언하는 것이 좋습니다. 따라서 " "로 선언하고, 줄바꿈 기호로 \n을, 그리고 tab으로 칸을 띄우고 싶을 때, \t를 사용합니다. 실제로 코딩을 한 번 해보죠.

 

 

이외에도 스트링에서 사용되는 이스케이프 코드는 인터넷에서 검색하면 바로 나오기 때문에 따로 첨부하지 않았습니다. \n과 \t중 뭔가 자주 쓰이냐 하면 당연히 \n입니다. 줄 개행이 훨씬 코드에서 많이 실 생활에서 사용되는 것을 생각하면 코드에서도 이해하기 쉽죠.

2. 문자열 연산

문자열 연산은 상당히 직관적인데. 더하기, 즉 string1이 korea string2가 fighting 으로 정의되어 있는데 string1 + string2라고 하면 당연히 koreafighting이 됩니다. 그리고 string1*100하면 koreakoreakoreakorea........해서 korea가 100개 정의되게 됩니다. 참고로 /, mod등의 기타 연산은 안 된다는 것도 알아두세요.

 

 

3. 문자열 인덱싱

매우, 매우 매우 중요합니다. string에서도 중요하고, 이 다음에 배울 list와도 관련된 부분이기 때문에 미리 제대로 공부해 두면 좋습니다. 일단 개념부터 알아 두겠습니다.

 

  string = "MyNameIs"

 

위와 같은 String을 정의 해 본다고 합시다. 그렇다면 첫 번째 index는 뭘까요? 백문이 불여 일타라고 일단 쳐봅시다.

 

 

 대문자 M "My"의 M입니다. 이 부분이 프로그램을 처음 하시는 분들이 가장 햇갈려 하는 부분 중 하나인데,  인덱스는 0부터 시작합니다. 1이 아닙니다. 그렇다면 -1은 뭘까요. 음, 눈치 빠르신 분들, 그리고 프로그래밍 좀 하시는 분들은 이미 아시겠지만 문자열의 끝부분을 가리키는 것입니다. 그리고 [-2] [-3] [-4]는 여기 나오진 않았지만 끝에서부터 첫부분까지 거꾸로 indexing하는 것입니다.

 조금 햇갈리실 수도 있지만 몇 번 키보드로 직접 타이핑 하시다 보면 금방 이해 하실 수 있으실 거라고 생각합니다. 저도 그랬으니까요. 문제 없습니다! 

 

4. 문자열 슬라이싱

 이 부분은 파이썬 만의 특징이자 장점인데 저는 C언어를 조금 핥다 시피 하면서 파이썬으로 넘어온터라 정말 놀라웠고 혁신(?)적인 언어라고 생각했습니다. 문자열을 인덱스로 슬라이싱 하다니! 어떻게 프로그래밍 언어에 이런 짓을 할 생각을 했지? 라면서요. 사족은 접고. 본격적으로 들어가면,

 문자열 슬라이싱은 말 그대로 문자열을 자르는 겁니다. 예를 들어서, 앞의 MyNameIs라는 문자열 앞의 [2]인덱스 앞을 자르고 싶다, 하면 그렇게 할 수 있고, [2]부터 [5]까지 자르고 싶다 하면, 그렇게 할 수도 있습니다. 그러면 어떻게 그렇게 할까? 는 코딩 하면서 보면 되겠습니다.

 

 

 

[3]번 index전까지 자르고 출력해 보고 싶다. 하면 [0:2]이렇게 쓰면 되는데, 이건 0 에서 2즉, 3번 전까지를 의미합니다. 반면에 :는 모든 string을 의미 합니다. 따라서 [0:] 이렇게 쓰면 0번째에서 남은 모든 string을 의미하게 되어 모든 string을 출력하게 되겠죠. 또한 슬라이싱은 index에서 쓸 수 있는 것을 모두 쓸 수 있기 때문에 -1, -2, -3도 모두 쓸 수 있습니다. 따라서 [4:-1]은 4번째인 m부터 -1번째 전인 I까지를 출력하게 되겠죠.

 

이제 남은 것은 문자열 함수인데, 해당 부분은 문자열에서만 사용하고 다른 부분에서는 그렇게 중요하게 사용되지 않습니다. 하지만 이 역시 가볍게 파이썬 언어에서 가볍게 다뤄서는 안 될 주제이기 때문에 별도의 테마에서 다루도록 하겠습니다.

 

 

 

 

 파이썬에서 의외로 자료형은 그다지 중요하지 않습니다. 물론 파이썬만을 이용해서 코딩하시는 분들은 자료형도 잘 숙지하고 하셔야 하는 부분이기는 하지만 말입니다. 즉, 이번 강에서는 이러이러한 자료형이 있다. 정도만 서술하고 넘어가도록 하겠습니다. 이유인 즉, Numpy로 배열을 일일히 선언하지 않고 넘어 갈 수 있고 정수, 실수형은 거의 사용하지 않기 떄문입니다. (제가 기존에 C언어를 조금 코딩하다가 넘어왔기 때문에 이 부분에서 많이 햇갈렸었습니다.)

 

 강의는 제가 짧다고 생각하는 부분은 IPython을 사용하여 진행됩니다. 그리고 저는 코딩을 우분투에서 하지만 포스팅은 윈도우에서 하기 때문에 윈도우에서 아나콘다를 깔아서 하기 때문에 이 부분은 오해 없으시기 바랍니다 ㅎㅎ 그럼 먼저 iPython을 키고 간단하게 정수를 입력해 봅시다.

 

 

1. 숫자형 연산자와 포맷팅

 

i 에 2 를 먼저 대입해 줍니다. 그런 다음에 문자열을 포맷팅해 주려면 어떻게 해 줘야 할까요? 일반적으로 i에 2를 대입해 주려면 다른 언어에서는 int i 처럼 먼저 타입을 선언해 준 다음에 값을 대입 해 줘야 할 것 같지만 파이썬에서는 그럴 필요가 없습니다 그냥 i=2이렇게 해주면 되니까 편리하죠. 그래서 일반적으로 프로그램 언어를 처음 접할 때 파이썬으로 접하라고 합니다. 이런 장점이 있으니까요. (하지만 다른 프로그램 언어를 접한 사람이 접근 하기에는 좀 당황스럽 더군요. 뭐 이런 언어가 다 있어 이런....생각이 들더군요. 좀.)

 

 

 

간단한 포맷팅은 위와 같이 합니다. i의 실수형 포맷을 지정하면 위 그림과 같이 실수형 포맷이 주루룩 나오고, 실수를 잘라서 보고자 하면 %.2f처럼 보면 됩니다. 그리고 정수형으로 그냥 보고 싶다고 한다면 %d로 지정하고 보면 되는데, 이는 다른 프로그래밍 언어를 접한 분이시라면 모두 알고 있는 사항 이시겠죠.

하지만 모르시는 분들을 위해서 간단히 자주 쓰는 format들을 정리를 하면 다음 표와 같습니다.

 

%d 

정수형

 %f

실수형

 %c

문자형(한글자, 한글자) 

 

 

format 함수로도 문자열을 지정하는 것이 가능한 걸로 알고 있는데 기초 수준에서는 그렇게 굳이 사용 할 필요가 없습니다. 라이브러리를 사용하면서 좀 더 간단하게 프린팅하기 위해서 format을 사용하는 걸로 알고 있습니다. 내친 김에 format 함수도 간단하게 사용법을 알아 볼까요?

 

 

포맷 함수는 생각보다 간단하게 작동합니다. { } 안에 출력하고자 하는 변수를 넣어주면 출력이 되는 형식입니다. 어떻게 보면 %보다 더 직관적이죠. 다만 %에 이미 익숙한 프로그래머들은 굳이 format함수를 사용 할 필요성을 느끼질 못하죠. 하지만 저는 어떻게든 사용해 보려고 노력을 합니다.

 

 소수 점 조절은 { } 안에 :. 을 넣어서 조절 합니다. %에 : 들어 간 거 외에는 거의 다를 게 없죠.

 

 또한 여러 변수들을 사용하고자 할 떄도 (여기에는 없지만)

 

print( { },{ },{ }.format( ) )

 

라고 써줌으로서, 간단하게 조절 할 수 있습니다. %에 비해서 그다지 모자랄 건 없어 보입니다. 다만 기존에 C나 JAVA에서 %에 익숙한 프로그래머들이 format함수를 사용하기 귀찮을 뿐 ㅎㅎ 개인적으로는 많이 format함수를 사용하고 싶은데 잘 안되네요 ㅠㅠ 

 

 

 

 아무튼 본론으로 돌아와서, 위에 문자열 자료형의 포맷팅을 언급했지만 지금까지 파이썬 코딩을 한지는 얼마 되지 않았지만 문자형을 써 본 적이 거의 없습니다. 굳이 사용할 떄면 명령어 지정 할 떄 정도...? 대부분 String으로 대체했습니다. String에 대해서는 다음에 언급하도록 하겠습니다. 매애우 길기 때문이죠 ㅎㅎㅎ

 관련된 함수들도 많고, 슬라이싱, 이스케이프 함수 인덱싱 등등...여러가지를 봐야 합니다.

 

저 같은 경우는 문자열 함수를 많이 사용하지는 않았습니다만, 문자열이랑 뒤에 나올 리스트랑 많이 통하는 부분이 많아서 깊게 설명하고 넘어가도록 하겠습니다.

 

 추가적으로 개인적으로 숫자형에서 중요하다고 생각하는 10진수를 2진수로 바꾸는 작업인 bin()함수에 대해서 알아 보겠습니다.

C언어에서는 함수를 만들어서 사용해야 했지만, 파이썬에서는 그럴 필요 없이 그냥 내장 함수가 있습니다.

 

위와 같이 앞에 0b만 제거해 주고 쓰시면 됩니다. 따로 검색하지 마시고 알아 두시라고 포스팅 해 둡니다.

아, 그리고 혹시 2진수를 따로 10진수로 바꾸는 편리한 방법이 있으면 알려 댓글로 알려주셨으면 (굽신...굽신...) 합니다.. 제가 검색 능력이 딸려서 찾지를 못하는 건지 그냥 없는 건지 모르겠습니다 ㅎㅎ

 

 

그럼 다음엔 String의 사용 방법에 관해서 뵘도록 하겠습니다!  모두 굳밤 하세요~

1. 파이썬 시작(설치)하기

 

기본적으로 설치가 가장 난관이지만 파이썬은 C나 Java같이 환경변수를 자동으로 잡아주는 언어라서

비교적 설치하기 무난한 언어이입니. 윈도우즈에서는 웹사이트에서 다운 받고 클릭클릭 하면 되지만

우분투는 아래와 같은 커맨드를 실행하면 설치 할 수 있습니다..

 

 

(스크린샷은 포맷을 하고 다시 설치를 할 수가 없어서 따로 뜨지를 못했습니다)

 

pip install python2.x(원하는 버전, 2.7이나 2.7c1r 기타 등등)

2.x는 업데이트를 멈췄다. 3.x버전을 추천함.

추후에 설명 할 거지만 가상환경을 만들어서 2.x가 구동되도록 할 수 있습니다.

 

pip install python3.x

 

업데이트 되는 3.x버전을 설치해서 프로그래밍 하도록 합시다. (개인적으로 3.x가 기능적으로도 추가된 면이 많아서 선호합니다)

나는 python만 설치하고 기타 라이브러리는 사용하지 않을 거라는 사람들은 이렇게 설치해도 상관 없고 아래 글은 보지 않아도 상관 없습니다. (아래는 아나콘다 설치 관련 글입니다)

하지만 파이썬만 사용하지 않고 Tensorflow, Keras, scikit-learn등의 다양한 라이브러리를 이용, 신경망, 머신러닝을 쉽고 가볍게 개발하고자 하는 사람들은 Anaconda를 다운 받아서 설치하는 편이 낫습니다. 자세한 이유는 가상환경과 관련되어 있지만 기본적으로 설명하자면 다음과 같습니다.

아나콘다는 scipy, numpy, seabon, matplotlib과 같은 다양한 라이브러리를 포함하고 있는 과학계산패키지입니다. (tensorflow등 몇몇 주요한 라이브러리등은 포함하고 있지 않음.)

우리는 해당 라이브러리를 이용하여 위 그림과 같이 다양한 버전을 가진 가상환경을 만들어서 사용 할 수 있습니.

만약 python과 가상환경 모듈(가상환경을 만들어주는 모듈이 따로 있다.) 만 설치하고 가상환경을 만들었을 경우, 딸려 있는 라이브러리들이 같이 가상환경에 설치되지 않고 가상환경 마다 설치해줘야 하기 때문에 매우 번거롭겠죠?. 그래서 필자는 단독 파이썬 보다는 아나콘다를 선호하며 설치 방법도 그리 어렵지 않습니다.

 

 

1.1. 아나콘다 설치하기

 윈도우즈는 클릭만 잘 하면 설치 할 수 있으므로 본 포스팅에서는 우분투 관련 설치를 다룹니다. 우분투도 별로 어렵진 않습니다만 우분투에 익숙하지 않은 사람은 설치하는데 조금 어려 울 수가 있습니다. (처음에 저는 설치하는데 OS를 뒤집어 엎고 그랬습니다-_-)

 

 먼저 아나콘다 홈페이지에 접속 https://www.anaconda.com/ 하여 우분투용 설치 파일을 다운 받습니다.  우분투 OS에서는 우분투용 Anaconda를 바로 다운로드 받을 수 있는 화면으로 넘어가기 때문에 별도로 찾을 필요는 없지만.아카이브에서 다운 받는 경우, 자신의 운영체제와 64비트인지 32비트인지를 확인하고 다운 받기를 바랍니다.. (다운 받은 파일은 Downloads폴더에 저장 됨)

 

다운로드가 완료되면 커맨드 창을 열고 아래 커맨드를 통해서

 

cd ,./Downloads # 로 다운로드, 즉 Acaconda를 다운 받은 폴더로 이동한 다음

bash 아나콘다파일명 #압축을 풀고 파일을 실행한다.

 

그러면 이제 영어로 블라블라 라이센스동의 관련 어구가 나오는데 이걸 엔터엔터 치면서 이동하다보면 설치경로가 나오고

이 경로는 /home/user/anaconda3 이 기본입니다.따로 변경 할 필요 없으니 넘어가도록 하고 YES|NO 에서 YES를 선택하면 설치가 진행됩니다.

그리고 열심히 설치를 진행하다가 모듈을 설치하려고 또 물어봤을 때 Y를 치면 설치가 다시 진행됩니다.

스크린샷이 있으면 더 도움이 될텐데 이 포스팅 하나 때문에 다시 아나콘다를 지웠다가 설치 할 수도 없고 참 ㅎㅎ 

 

1.2. bashrc파일에 아나콘다 PATH 적어주기

 

어쨌든 이렇게 하면 일반적으로 설치가 완료인데 이제 conda라는 커맨드가 작동하는지 확인해야 합니다.. 간혹가다가 아나콘다를 설치했음에도 불구하고 conda 커맨드가 작동하지 않는 경우가 많습니다. (제 경우는 매번 그랬습니다 ㅎㅎ.) 그런 경우에는 커맨드 창을 껐다가 끄거나. 그래도 안 될 경우에는

cd home  # home 폴더로 이동하여

vi ..bashrc # 숨김 파일인 bash파일을 수정

 

다른 건 아무것도 건드리지 말고 (프로그램 파일이기 때문에, 한군데라도 건드리거나 추가하면 계속 커맨드 창에 이상한 글자를 출력하거나 vi가 아예 실행이 안 됩니다 ㅠㅠ)

 

 

 

 

export PATH="$PATH:$HOME/anaconda3/bin

 

 

 

 위 그림과 같이 얌전히 맨 끝줄에 이것 하나만 입력합시다.  그리고 커맨드 창 종료했다가 키고

 

conda --version #아나콘다 버전 출력 

 

이렇게 conda 명령을 실행하면 4,5 --이렇게 버전이 정상적으로 나오는 것을 알 수가 있습니다. 즉, 아나콘다가 정상적으로 실행이 되었고 아나콘다를 사용 할 준비가 되었음을 의미합니다.

 

이제 python및 라이브러리를 모두 가지고 있는 과학 패키지를 설치 하였으므로, 파이썬 프로그래밍을 할 준비가 되었습니다. IDE로는 Jupyter notebook이나 iPython(초보자 및 작은 프로젝트를 진행하는데에는 매우 좋은 IDE이다)을 사용해도 되지만 큰 프로젝트를 진행하는데에는

Visual code와 같은 IDE가 별도로 필요하기 때문에 해당 설치 방법도 알아보도록 하겠습니다. 해당 방법은 매우 간단하기 때문에 포스팅 할 때 민망 할 것 같네요 ㅎㅎ

'머신러닝 > 기초 문법' 카테고리의 다른 글

5. 딕셔너리 기초 - (1)  (0) 2019.01.29
4. 리스트와 관련 메서드  (0) 2019.01.28
3. String -(2) : string 함수  (0) 2019.01.24
3. String - (1)  (0) 2019.01.22
2. 간단한 숫자 자료형과 해당 형식 지정자  (0) 2019.01.20

+ Recent posts