1 life 2 live

파이썬 기초 프로그래밍(7) - 자료구조3 (문자열) [20.7.25] 본문

파이썬

파이썬 기초 프로그래밍(7) - 자료구조3 (문자열) [20.7.25]

대희투 2020. 7. 25. 17:48

1. 문자열 

■ 문자열? 우리는 이미 알고 있다!

   º 문자의 열 (sequence)

   º 작은 따옴표 (‘’) 또는 큰 따움포 (“”)로 둘러쌓인 문자들

 

■ 리스트의 특별한 형태

   º 리스트와 일부 유사하게 동작

   º 리스트와는 다른 문자열만의 고유 동작 존재

 

■ 리스트의 값 수정

   º 단일 값의 수정: 인덱스를 이용하여 재할당

   º 복수 값들의 수정: 슬라이스를 이용하여 재할당

 

■ 문자열에 대한 인덱싱 또는 슬라이싱 수정?

   º 단일 값 수정 시도 (인덱싱)

   º 복수 값 수정 시도 (슬라이싱)

   º 수정이 잘 안됨!

 

■ 문자열: 변경이 불가능 

 

2. 문자열: 응용 메소드

■ 문자열은 자체적으로 추가 기능들을 보유하고 있음!

   º IDE에서 문자열에 . 을 찍고 확인해보자!

 

■ 위치 및 개수 확인

 

■ count(sub)

   º 문자열에 서브 문자열 sub 가 몇 개 포함되어 있는지 확인

 

■ find(sub)/index(sub)

   º 문자열에 서브 문자열 sub가 어디에 위치하는지 확인

   º 서브 문자열 sub가 여러개일 경우, 처음 발견 위치를 반환

   º index()의 경우, sub 문자열을 발견하지 못할 경우 에러 발생!

 

 

 

■ 문자열 조작

 

■ 대/소문자 변환

   º lower(), upper() 활용

   º capitalize(): 첫 문자만 대문자로 변환

 

■ 문자열 치환

   º str.replace(old,new): old를 new로 치환

 

■ 문자열 결합

   º str.join(iter): 문자열 str을 iter의 각 요소 사이사이에 결합

   º str.zfill(width): 문자열을 width 길이만큼 만들기 위하여 0을 삽입

 

■ 문자열 공백 제거

   º str.strip(): 좌우측의 공백을 제거함

 

■ 문자열 분리

   º str.split(sep): str 문자열을 sep을 기준으로 분리하여 리스트로 반환

   º 문자열에 구분자가 연속하여 존재할 경우 빈 문자열 분리로 인식

      • 빈 문자를 분리 할 경우 빈 문자(‘’) 반환

   º sep이 주어지지 않을 경우

      • 공백들을 기준으로 분리하여 리스트로 반환

 

■ 문자열 분리

   º 결과가 어떻게 차이가 나는가?

      • split(‘ ‘): 하나의 공백을 기준점으로 처리

      • split(): 연속된 공백들을 모두 기준점으로 처리

 

■ 문자열 분리

   º str.splitlines(): str 문자열을 줄 단위(‘\n’ 등)로 분리하여  리스트로 반환

 

■ 문자열 검사

 

■ 대/소문자 여부 검사

 

■ 숫자/문자 여부 검사

 

 

 

3. 실습

■ 실습1) 사용자로부터 문자열을 입력받은 후 약어를 만들기 위한 프로그램을 작성하시오.

   º 문자열 메소드 중 split() 메소드와 upper() 또는 capitalize()를 활용

   º 단어는 스페이스(‘ ‘)로 구분된다고 가정

 ↓정답

더보기

str = input('문자열을 입력하세요: ')
str = str.split()

for i in str:
print(i[0].upper(), end='')

 

■ 실습2) 사용자로부터 문자열을 입력받은 후, 문자의 개수, 숫자의 개수, 공백의 개수를 계산하는 프로그램을 작성하시오.

   º 각 타입 별 갯수는 딕서녀리를 이용하여 저장하시오

   º 딕셔너리의 key는 각각 ‘alpha’, ‘digit’, ‘space’로 설정하시오

 ↓정답

더보기

str = input('문자열을 입력하세요: ')
count = {'alpha':0, 'digit':0, 'space':0}

for i in str:
if i.isalpha():count['alpha'] +=1
if i.isdigit(): count['digit'] += 1
if i.isspace(): count['space'] += 1

for k,v in count.items():
print(k, v)

 

4. 참고

■ 자료형 간 변환

   º int(): 정수로 변환

   º float(): 실수로 변환

   º str(): 문자열로 변환

 

■ 자료구조 간 변환

   º list()  list로 변환

   º set(): set으로 변환

   º tuple(): tuple로 변환

   º dict(): dictionary로 변환

 

■ 원본 데이터의 표현 방식에 따라 변환 불가능 할 수 있음

   º 예) 실수 형태의 문자열 → 정수 변환 불가 (e.g., int(‘1.0’))

 

5. 정리

■ 문자열

   º 문자열은 변경이 불가능한 자료구조

   º 문자열 조작, 검사 등의 다양한 편의성 메소드가 제공 됨

 

■ 자료형, 자료구조 간 변환

   º 형 변환을 위한 다양한 메소드들이 제공 됨

728x90
반응형
Comments