정리 노트/부스트코스 PY4E 2022

[부스트코스] 모두를 위한 파이썬 (PY4E) 4주 차_정리 (5/8)

우주바다 2022. 9. 27. 22:03
728x90

▼ 강의 보러 가기 ▼

www.boostcourse.org/cs122


4주차 학습 범위는 6,7단원!


[ 이번 주는 무엇을 배웠나요?  PY4E 요약 정리! ]  

 

6. 문자열

 

1)  자료형 타입 확인

input으로 입력 받는 값은 string 자료형이다. 

type( ) 함수로 현재 자료형을 확인 할 수 있다.

a = input('입력하세요: ')
print(type(a))
print(a)

2) 문자열의 개별 문자에 인덱스로 접근

대괄호 안에 인덱스 번호를 입력. 0번부터 시작한다.

문자열 길이보다 큰 값을 입력하면 오류가 발생한다. 

 

 

3) len 함수

문자열의 길이를 출력하는 내장 함수.

name = 'ujubada'
print(len(name))

# 출력값 : 7

4) 문자열의 길이 만큼 루프 

len()을 이용해서 개별 글자 반복 출력이 가능하다.

name = 'ujubada'
index = 0

# while 루프

while index < len(name) :
    letter = name[index]
    print(index, letter)
    index = index + 1

# 0 u
# 1 j
# 2 u
# 3 b
# 4 a
# 5 d
# 6 a

# for 루프

for letter in name :
    print(letter)

5) 문자열 슬라이싱

[a:b]  a부터 b-1번째까지 출력.

[:b] 0번째부터 b-1 번째까지 출력.

[a:] a번째부터 끝까지 출력

[:] 처음부터 끝까지 출력.

name = 'Ujubada'

print(name[0:4])
# 출력값: Ujub  (0~3번째까지 출력)
print(name[5:6])
# 출력값: d
print(name[:2])
# 출력값: Uj
print(name[3:])
# 출력값: bada
print(name[:])
# 출력값: Ujubada

6) 문자열 합치기

수리 연산자인 + 로 합칠 수 있다.

name = "uju"
hi = "hi!"

print(name + hi)
# 출력값 : ujuhi!

# cf.
print(name, hi)
# 출력값 : uju hi!

7) in을 논리 연산자로 사용

문자열에 특정 문자가 있는 지 확인 할 수 있다. 

 

name = 'ujubada'

print('j' in name)
# True 출력
print('m' in name)
# False 출력
print('ju' in name)
# True 출력

if 'a' in name :
    print('Found it!')
# Found it! 출력

8) .lower()   .upper()

문자열 타입에서 사용할 수 있는 다양한 메소드 중

대문자, 소문자로 바꿔 출력해주는 함수. 원본 값은 바뀌지 않는다.

greet = 'Hello'

zap = greet.lower()
print(zap)
# hello
print(greet.upper())
# HELLO 

print(greet)
# Hello  (원래 값은 바뀌지 않았음)

print('Hi'.lower())
# hi

9) .strip()

문자열에서 공백을 제거하는 메소드.

lstrip(): 왼쪽 공백 제거

rstrip(): 오른쪽 공백 제거

strip(): 오른쪽 왼쪽 공백 제거

 

10) .startswith()

문자열이 특정 문자로 시작하는 지 확인하는 메소드.

결과값은 불리언 타입으로 반환. (True/False)

line = 'This is my blog'
print(line.startswith('This'))
# True가 출력됨
print(line.startswith('t'))
# False가 출력됨 (대소문자 구분)

11) 문자열 파싱 

*파싱(parsing) : 원하는 데이터를 추출하여 가공하고 사용하기 쉬운 상태로 바꾸는 것.

이러한 역할을 하는 함수나 프로그램을 파서(parser)라고 한다.

웹 크롤링의 필수 개념으로 파이썬에서는 beautifulSoup이라는 라이브러리를 통해 html 문서를 파싱한다.

참고: https://hengbokhan.tistory.com/134

 

.find() 안에 문자나 문자열을 넣으면

그 문자가 몇 번째 인덱스부터 등장하는지 출력된다.

name = "uju"
name.find('j') # 출력값 : 1
name.find('z') # 출력값: -1

특정 값이 여러 개 있다면 더 먼저 등장하는 부분의 인덱스를 출력한다.

특정 구간 이후로부터 찾고 싶다면 , 숫자 를 뒤에 입력한다. 

, 숫자 는 그 부분부터 탐색 시작.

, 숫자 , 숫자 는 시작부터 끝까지. 그 범위 안에서만 탐색한다.

name = "uju"

name.find('u')    #출력값: 0
name.find('u',1)  #출력값: 2

name = 'ujubada'
name.find('a',0,2) #출력값: -1

7. 파일

 

1)  open( )

파일을 여는 함수. handle을 반환한다.

handle은 파일에 대한 작업을 수행할 때 사용되며,

여러 방식으로 저장되어 있는 텍스트를 처리하는 하나의 표준화된 방식이다.

fhand = open('hello.txt', 'r')

# open('파일명', '모드 선택')
# 파일명은 문자열 타입으로 입력하며, 확장자까지 포함해 작성한다.
# 'w' 또는 'r' 두 가지 모드를 선택할 수 있다.
# 'w'는 파일을 작성(write)할 때, 'r'은 파일을(read)읽을 때 사용.

 

2) open함수로 연 파일 출력하기

핸들을 반환하기 때문에 for문으로 출력하면 한 줄 씩 순서대로 출력한다.

fhand = open('readme.txt')

for line in fhand :
    print(line)

 

3) 파일의 라인 수 세기 

fhand = open('readme.txt')
count = 0

for line in fhand :
    count = count + 1
print('Line Count: ', count)

 

4) 파일 이름 입력 받기 

fname = input('Enter the file name:  ')
try:                          # 일단 한 번 실행하고
    fhand = open(fname)
except:                       # 오류가 나면 아래와 같이 처리한다.
    print('File cannot be opened: ', fname)
    quit()

*다음 포스팅 (6/8) 바로가기

728x90
반응형