본문 바로가기

 

 

코딩/파이썬

파이썬 (3. 문자열 활용하기)

everything info 2018. 7. 19.
반응형

파이썬 (3. 문자열 활용하기)


저번에 에디터와 자료형에 대해서 공부했었습니다.

못보신 분들 http://codingfor.tistory.com/11

기초도 못보신 분들은 http://codingfor.tistory.com/10

오늘은 문자열 활용에 대해서 공부하겠습니다.


1. 문자열 연산

2. 문자열 인덱싱

3. 문자열 슬라이싱

4. 문자열 포매팅


이렇게 공부하도록 하겠습니다.




1. 문자열 연산

파이썬에서는 숫자처럼 문자열도 연산이 가능합니다. 더하기와 곱하기만 가능합니다.


- 문자열 더하기

말 그대로 first라는 변수 "chicken"과 second라는 변수 "is delicious"가 합해진겁니다.


- 문자열 곱하기

곱하기도 말 그대로 A라는 변수의 "pizza"를 2번 곱해서 'pizzapizza'가 나온 것입니다.




2. 문자열 인덱싱

여기서 인덱싱의 뜻은 사전적 의미로는 어떤 것을 뒤져서 찾아내다. 인데 쉽게 말해서 필요한 문자를 뽑아내는 겁니다.

"Chicken is delicious and pizza is also delicious"로 지정 되어 있는 변수 A가 있습니다.

일단 먼저 알아두어야할 점은 파이썬에서는 0부터 숫자를 센다는 겁니다.

순서를 원래는 1,2,3,4 이런 식으로 알고있지만 파이썬에서는 0,1,2,3 이런 식으로 센다는 뜻입니다.

그래서 위 변수 A를 보면

Chicken is delicious and pizza is also delicious

파이썬에서 C가 순서로 치면 1이 아닌 0입니다.

C=0, h=1, i=2, c=3, k=4, e=5, n=6

그리고 n다음 공백인 띄어쓰기도 문자열로 치기때문에 순서를 셀 때도 포함해야합니다. 공백=7

i=8 ................ 이렇게 진행된다는 점을 기억합시다.


인터프리터를 이용해 알아봅시다.

풀이하면 A의 문자열에서 8번째 문자를 리턴합니다.

처음에는 헷갈릴 수도 있지만 하다보면 익숙해 진답니다.

몇 가지 더 활용해볼게요.


A[0]과 A[10]은 위에서 설명한대로 보면 되기때문에 이해하리라 봅니다.

A[10]은 공백이기 때문에 공백을 리턴한다는 점.

그럼 마지막 마이너스가 뜻하는 건 뭘까요?

마이너스는 뒤에서부터 숫자를 셉니다. 역으로 생각하면 되는데 주의할 점은 마이너스에서는 -1, -2 순서대로 센다는 점입니다.

A[-1] : s   A[-7] : l

왜 마이너스는 0부터 안 세어 갈까? 라는 의문이 들 수 있는데 0=-0과 같기 때문입니다.




3. 문자열 슬라이싱

여기서 슬라이싱 뜻은 잘라낸다라는 겁니다.

예를 보면서 이해해봅시다.

이런 식으로 필요한 부분만 잘라 표현하는 것입니다.

하지만 저런 식으로 사용하면 단순은 하지만 시간이 오래걸리고 너무 길어지게 됩니다.


이 예제는 0번째 부터 6번째 문자까지 슬라이싱 하는 것입니다.

[0:7]은 0이상 7미만이라고 보면됩니다. 앞은 포함 뒤는 포함하지 않고 그 앞의 문자까지 라고 보면 쉽습니다.


7번째는 공백이므로 저렇게 공백도 포함이 됩니다. 잘 보면 Chicken뒤에 띄어쓰기가 되어있습니다.


몇 개만 더보도록 할게요.

이걸 기준으로 봐주세요.


[34:-10]은 34번째부터 -11번째 까지라는 뜻입니다. -10 포함 안합니다. 헷갈리지 않도록 주의합시다.

[34:]은 34번째부터 끝까지라는 뜻입니다.

[:7]은 처음부터 6번째 까지라는 뜻입니다. 이 것도 7번째는 포함 안합니다. 헷갈리지 않도록 합시다.

[:]은 처음부터 끝까지라는 뜻입니다.


- 슬라이싱으로 문자열 나누기

A라는 변수를 정해주고 변수 subject, verb, adjective로 각각 문자열 슬라이싱을 이용해 나눴습니다. 그리고 변수 3개를 각각 입력해주면 문자열 슬라이싱으로 정해둔 문자열이 결과값으로 나오게 됩니다.




4. 문자열 포매팅

여기서 포매팅이란 문자열 내에 어떤 값을 삽입하는 것입니다.

문자열 내에서 특정 값만 바꾸는 경우 이용합니다.


- 숫자 대입

문자열에 숫자 5를 넣은 예제입니다.

문자열 안에서 숫자를 넣을 부분에 '%d'를 입력해주고 그 자리에 넣을 숫자를 제일 뒤에 '%숫자'를 입력해줍니다.


- 문자열 대입

문자열을 대입할 때는 '%d'가 아닌 '%s'를 사용합니다.

참고로 %"five"처럼 문자열에는 항상 따옴표를 써준다는 점. 주의합시다.


- 변수를 이용한 대입

number라는 변수를 이용한 예제입니다.


- 2개 이상의 값 대입

2개 이상의 값을 대입할 때는 %(number, verb)처럼 ','로 구분하여 변수를 입력하면 됩니다.


- 문자열 포맷 코드

%s 문자열 대입할 때

%c 문자 1개 대입할 때

%d 정수를 대입할 때

%f 부동소수를 대입할 때

%% %를 문자열에 포함시킬 때

다른 포맷코드는 딱 그 역할에 맞춰 사용해야 하는데 '%s'는 모두 가능합니다.

원래 4를 대입할 땐 '%d', 5.497을 대입할 땐 '%f'를 써야합니다. 하지만 '%s'는 알아서 % 뒤의 값을 문자열로 바꿔주기 때문에 가능합니다.


- %% 사용법

%d뒤에 %%를 붙여주면 문자열 안에서 %를 포함할 수 있게됩니다.




- 포맷 코드와 숫자 함께 사용하기

 1.) 정렬과 공백

여기서 %10s는 전체 10칸인 문자열에서 good을 오른쪽으로 정렬하고 나머지는 공백으로 남겨두라는 뜻입니다.


%-10s는 왼쪽으로 정렬하라는 것입니다. 똑같이 10칸인 문자열입니다.


 2.) 소수점

%0.xf는 x번째 소수점 자리까지 표시하라는 뜻입니다.


%10.3f는 3번째 소수점 자리까지 표시하고 10칸 문자열 공간에서 오른쪽 정렬하라는 뜻입니다.


오늘은 여기까지 공부했습니다. 다음에는 제어문 if문에 대해서 공부하겠습니다.

반응형

댓글