빅데이터 & 딥러닝 스터디/파이썬 스터디(김변수와 시작하는 코딩생활 3기)

8/12 (금) 김변수와 시작하는 코딩생활 with 파이썬 스터디 9일차(필수 문자열 파헤치기 / 이름 출력하기)

승이네 2022. 8. 12. 00:10
반응형

 학습 내용 : 파트9. 문자열 파헤치기

 

 필수 과제 : 1-10.이름 출력하기

 

 

9. 문자열 파헤치기

 

 9-1. 문자열 인덱싱과 슬라이싱

 

 인덱싱(Indexing)은 무언가를 가리킨다는 의미입니다.

문자열의 글자에 번호를 지정하고 가리키는 것을 문자열 인덱싱이라 합니다.

 

 예를들어 hi라는 변수에 '파이썬 공부는 즐거워!' 라는 문자열을 지정하면 다음과 같습니다.

    !
0 1 2 3 4 5 6 7 8 9 10 11

이런 번호로 원하는 글자를 인덱싱할 수 있습니다.

 

 

    !
-12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

 양수가 아닌 음스로 뒤에서 부터 번호를 붙여줄 수도 있습니다.

 

 여기까지 문자열 인덱싱입니다.

 

 문자열 슬라이싱(Slicing)은 자른다는 의미입니다.

따라서 문자열 슬라이싱은 원하는 위치부터 원하는 위치까지 문자열을 자르는 방법입니다.

문자열을 슬라이싱하려면 문자열의 인덱스 번호를 알고 있어야 합니다.

 

변수명[시작번호 : 끝번호 +1]

 

 이렇게 기본 구조를 구성합니다.

예를 들어 hi라는 변수에 '파이썬 공부는 재밌어!' 라는 문자열이 저장되어 있을 때 인덱스 4번부터 6번까지의 '공부는' 이라는 문자열을 슬라이싱하려면 hi[4 : 7]이라고 작성합니다.

 

 문자열을 슬라이싱 하는 코드입니다.

끝번호는 +1을 해야 원하는 실행 결과를 받을 수 있다는 걸 다시 알게 되었습니다. 

 

 음수 인덱싱으로 슬라이싱한 코드입니다.

 

 또한 문자열 슬라이싱을 할 때 다음과 같이 간격을 정해줄 수도 있습니다.

 

 변수명[시작번호 : 끝번호 + 1 : 간격]

 

 시작 번호부터 끝 번호까지 간격만큼 인덱스를 건너뛰며 슬라이싱합니다. 이때 시직 번호나 끝 번호, 혹은 둘 다를 생략할 수도 있습니다.

 

 

 9-2. 문자열 포매팅

 

 지금까지는 쉼표나 더하기 기호를 사용해 변수를 출력했습니다.

이번에 배울 문자열 포매팅을 사용하면 조금 더 간단하게 변수와 문자열을 합쳐서 출력할 수 있습니다.

 

파이썬에서 문자열 포매팅을 출력하는 방법은 3가지 있습니다.

 

1) 문자열 포맷 코드 사용하기

 변수를 출력할 위치에 값 대신 문자열 포맷 코드를 작성하는 방식입니다.

정수는 %d, 실수는 %f, 문자열은 %s 등 자료형별로 정해진 포멧 코드가 있습니다.

 

 각 정수형 데이터를 출력했을 때의 모습입니다.

 

 문자열 포멧 코드와 포매팅을 하는 데이터의 자료형이 다른 경우입니다. 오류가 발생되어 실행되지 않습니다.

 

 

2) format 함수 사용하기

 

 파이썬에 이미 구현되어 있는 내장함수인 format()을 사용하는 방법입니다.

format() 함수는 문자열 포맷 코드를 사용하는 방식과 달리 자료형을 신경 쓰지 않고 포매팅할 수 있습니다.

문자열 안에서 포맷 코드를 쓰는 대신 {숫자}로 작성하고, 문자열 뒤에 .format(...)을 적습니다.

 

 다음과 같이 {0}자리에 n을 넣고, {1}자리에 m을 넣어 포매팅되어 출력됩니다.

.fomat(0번째, 1번째)로 작용하여 출력됩니다.

 

##꼭 0부터 순서대로 적어야 하나요?##

fomat()함수를 사용하는 방법은 3가지가 있어요.

① 인덱스를 사용하는 경우

 - 중괄호 안에 인덱스를 넣어 주면 순서대로 포매팅돼요. 중복되는 값을 넣고 싶을 때 같은 인덱스를 여러 번 쓸 수 있어요.

 

② 인덱스를 사용하지 않는 경우

 - 인덱스를 사용하지 않으면 fomat() 안에 적은 값 순서대로 포매팅돼요.

 

③ 변수를 사용하는 경우

 - 중괄호 안에 원하는 변수 이름을 넣어줄 수도 있어요. 예를들어 print("{name}" .format(name = 철수)) 라고 적으면 name에 '철수'라는 값이 포매팅돼요.

 

 

3) f 문자열 사용하기

 

마지막으로 f 문자열이라는 것을 사용하여 포매팅할 수 있습니다.

제일 간단한 형태로 문자열 앞에 f를 붙이고, 포매팅할 위치에 있는 변수를 중괄호로 감싸는게 전부입니다.

 

 n자리에 3이 포매팅 되고, m자리에 "Three"가 포매팅 되어 나타납니다.

 

 

 9-3. 문자열 응용 함수

 

 파이썬에는 문자열 자료형과 관련된 내장 함수가 많습니다.

함수를 이용하면 문자열을 똑똑하게 활용할 수 있습니다.

 

1) 문자열 길이 구하기 : len()

 

len(문자열)

 

len(문자열)은 해당 문자열의 길이를 반환합니다.

 

 다음과 같이 hi의 문자열 길이를 보여줍니다.

 

 

2) 특정 문자의 개수 세기 : count()

 

문자열.count(문자)

 

문자열.count(문자)는 문자열 안에 포함된 해당 문자의 개수를 반환합니다.

 

 다음과 같이 문자열 (a)에 있는 "apple" 중 p의 개수를 반환합니다.

 

 

3) 특정 문자의 위치 찾기 : find()

 

 문자열.find(문자)

 

 문자열.find(문자)는 문자열에서 해당 문자의 위치, 즉 인덱스를 반환합니다.

만약 문자열에 해당문자가 여러 개 있으면 그 중 첫 번째의 인덱스를 반환하고, 없으면 1을 반환합니다.

 

 e는 문자열의 4번째에 있어 반환했고, z는 문자열에 없어 -1을 반환했습니다.

 

 

3) 특정 문자열을 다른 문자열로 반환하기 : replace()

 

 문자열.replace(기존 문자열, 대체 문자열)

 

 문자열.replace(기존 문자열, 대체 문자열)을 이용하면 전체 문자열 안에 있는 어떤 문자열을 찾아 대체 문자열로 반환합니다.

 

 기존 문자열을 대체 문자열로 바꾸는 대신 대문자는 구별을 못하였습니다.

대소문자를 잘 구별해 사용해야 하네요.

 

 

5) 특정 문자를 기준으로 문자열 자르기 : split()

 

 문자열.split(문자)

 

 문자열.split(문자)는 해당 문자를 기준으로 문자열을 자릅니다.

문자를 적지 않은 경우에는 자동으로 띄어쓰기, 탭, 엔터 등의 공백을 기준으로 잘립니다.

 

 다음과 같이 결과 값이 나옵니다.

 

위 5가지 함수 이외에도 join(문자열 사이에 문자열을 삽입하기), upper(소문자를 대문자로 바꾸기), lower(대문자를 소문자로 바꾸기), strip(양쪽 공백 지우기) 등 다양한 문자열 함수를 사용할 수 있습니다.

 

 

 

 필수 과제 1-10. 이름 출력하기

 

 '제 이름은 OOO입니다.' 라는 문자열 변수를 만들고 문자열 슬라이싱으로 OOO만 출력해 보세요. 

 

 지금까지 배운 슬라이싱을 활용하여 음수, 양수, 음수와 양수를 섞어서 구성해 봤습니다.

반응형