1 life 2 live
파이썬 기초 프로그래밍(7) - 자료구조3 (문자열) [20.7.25] 본문
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. 정리
■ 문자열
º 문자열은 변경이 불가능한 자료구조
º 문자열 조작, 검사 등의 다양한 편의성 메소드가 제공 됨
■ 자료형, 자료구조 간 변환
º 형 변환을 위한 다양한 메소드들이 제공 됨
'파이썬' 카테고리의 다른 글
| 파이썬 기초 프로그래밍(8-2) - 함수(지역변수, 전역변수) [20.7.27] (0) | 2020.07.27 |
|---|---|
| 파이썬 기초 프로그래밍(8-1) - 함수(선언, 인자) [20.7.26] (0) | 2020.07.26 |
| 파이썬 기초 프로그래밍(6-2) - 자료구조2 (딕셔너리) [20.7.18] (0) | 2020.07.18 |
| 파이썬 기초 프로그래밍(6-1) - 자료구조2 (세트) [20.7.17] (0) | 2020.07.17 |
| 파이썬 기초 프로그래밍(5-3) - 자료구조1 (튜플 및 정리) [20.7.16] (0) | 2020.07.16 |