brunch

You can make anything
by writing

C.S.Lewis

by 박경아 Feb 17. 2021

4. 문자열, 데이터를 다루기 위한 기본기 (2)

파이썬으로 데이터 분석하기

지난 글에서는 문자열이 무엇이고 문자열끼리 연결하는 방법이나 문자열에 숫자를 곱하면 어떻게 되는 지 등을 알아 보았다. 이번 글에서는 좀 더 문자열 자체에 집중해서 문자열을 다루는 방법들을 알아보자. 



문자열 인덱싱


인덱싱이란 문자열 안에서 특정한 한 문자를 가르키는 방법이다. 즉, 그 번호(인덱스)에 해당하는 특정 문자를 추출할 수 있는 것이다. 우선 'Life is short. You need python'이라는 문자열을 multiline이라는 변수를 만들어 할당하자. multiline[1]이라고 한다면 어떤 문자가 추출될까? 


L이 아니라 i가 나온다... (항상 헷갈리지만) 파이썬은 숫자를 0부터 샌다! 즉, 첫 글자를 출력하고 싶다면 [0]을 사용해야 한다. 한가지 더, 문자열을 뒤에서부터 읽고 싶다면 마이너스 1부터 시작하면 된다. Multiline[-6]는 p를 출력해 줄 것이다. 


문자열 슬라이싱


문자열에서 단순히 한 문자를 뽑아내는 것이 아니라 'Life' 또는 'You' 같은 단어를 뽑아내는 방법이 바로 슬라이싱이다. 어떻게 하면 될까? 힌트는 인덱싱과 비슷한데 구간을 설정하는 것이다. Life를 추출해 보자.

 

L를 가르키는 0번부터 e를 가르키는 3번까지 설정하면 될 것 같은데 왜 4까지 설정했을까요? 슬라이싱으로 번호를 지정할 때 끝번호는 포함되지 않기 때문에 원하는 문자보다 하나 더 나아간 번호를 설정해야 한다. 뒷방향에서 추출한다면 [-30:-26]으로 해야할 것이다. 역시 끝번호는 포함되지 않기에 해당 방향에서 한 칸 더 나아간 번호를 뒷자리에 적어야 한다. 



마지막 번호는 항상 포함되지 않는다면 문장을 끝까지 출력하고 싶거나 마지막 단어 'python'을 출력하고 싶다면 어떻게 해야할까? 그렇다... 마지막 번호 자리를 비워두는 것이다. 


문자열 포맷팅


이번에는 문자열에 수나 변수 등 다른 값들을 삽입하는 방법인 포맷팅에 대해 배워보자. 앞서 문자열에 수를 연결하기 위해서는 str() 함수를 사용했는데, 포맷팅을 사용하면 문자열에 다른 문자나 수, 변수든 모든 값을 삽입할 수 있다. 


문자열 안에서 정수를 넣고 싶은 자리에는 %d, 소수를 넣고 싶은 자리에는 %f, 문자를 넣고 싶은 자리에는 %s를 넣어주고, 삽입할 값은 문자열의 가장 뒤에 % 다음에 써주면 된다. 이도 저도 헷갈릴 때는 모두 %s를 넣고 % 다음에 값을 써주면 된다. 왜냐하면 %s는 % 다음에 오는 모든 값을 문자열로 바꿔버리기 때문이다. 여기서 %은 퍼센트가 아니라 포매팅 기호이다. 

문자열을 포맷팅하는 방법


문자열 관련 함수들


마지막으로 문자열과 관련된 파이썬의 주요 내장함수들을 익혀보자. str() 같은 경우 앞에서 배웠지만 나머지 함수들도 유용하게 사용할 수 있으니 꼭 한 번 연습하고 넘어가자.


참고로 많은 문자열 함수들 가운데 str(), len() 함수는 괄호 안에 수나 문자열을 그냥 넣어주면 되는데, 다른 함수들은 모두 문자열 다음에 점을 찍고 사용하는 방식이다. 파이썬에서 a.b 처럼 점을 찍어 사용하는 것은 b가 a 모듈 안에서 정의되는 문법임을 의미한다고 한다.  


str(num) - 숫자를 문자열로 변환해 준다.
len(string)  - 문자열(string)의 길이를 보여준다.
.lower() - 문자열(string)을 모두 소문자로 변환한다.
.upper() - 문자열(string)을 모두 대문자로 변환한다.
.count(sub) - 특정문자의 개수를 세어준다.
.index(sub) - 특정문자가 처음 나온 위치(인덱스)를 알려줍니다. 찾는 문자가 없으면 오류를 반환
.split() - 문자열을 더 작은 문자열로 나누는 함수, 기본적으로 한칸 띄어쓰기를 기준으로 나눔 
.format() - 포매팅 함수를 이용해 앞서 배운 문자열 포매팅을 할 수도 있다. 



* 참고자료

캐글 강의 https://www.kaggle.com/learn/overview

점프투파이썬 https://wikidocs.net/book/1

파이썬 초보 학습자를 위한 4시간에 배우는 파이썬 기초문법

https://joshua-mobile-choi-1756.trinket.io/python-3-4#/tasks/task-1-print-statement

How to think like a computer scientist : Learning with Python 3

http://openbookproject.net/thinkcs/python/english3e/

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari