Charles R. Severance (찰스 R. 세브란스)의 <모두를 위한 파이썬(PY4E)> 수강 내용
https://www.boostcourse.org/cs122/joinLectures/284901
학습목표
문자열의 특성을 이해하고 루프와 함께 문자(Character) 타입을 출력할 수 있다.
핵심키워드
- 문자열
문자열
문자열 타입과 관련하여서는 타입 변환, 인덱싱, len 함수, for 루프 활용을 이해하고 사용할 수 있으면 된다.
문자열 읽기, 타입 변환
문자열을 사용한 데이터를 읽어 오게 되면 우리는 에러나 사용자 입력에 대해 많은 대처를 할 수 있게 된다.
또한 사용자 입력으로 들어오는 값은 문자열 타입으로 입력되므로 입력한 값으로 다른 무엇인가를 하기를 원한다면 적절한 타입 변환을 해줘야 한다.
nmae=input('Enter: ')
print(type(name))
print(name)
# > Enter: 123으로 입력
# 인풋값 123의 타입은 <class 'str'>과 동일
# 123으로 출력
문자열의 내부 들여다 보기
우리는 특정 문자열을 구성하고 있는 개별 문자 값에 인덱스를 활용해서 접근할 수 있다. 여기서 유의해야할 것은 첫 번째 오는 문자에 대한 인덱스는 0부터 시작한다는 점이다. 만약 해당 문자열이 가지고 있는 인덱스를 넘어서는 값을 호출하게 되면 오류가 발생한다.
fruit='banana'
letter=fruit[0]
print(letter)
letter=fruit[1]
print(letter)
letter=fruit[2]
print(letter)
# b로 출력
# a로 출력
# n로 출력
len 함수
문자열에 대해서 우리는 len() 내장 함수를 활용해서 문자열의 길이를 알 수 있다.
ex) len(banana)라고 한다면 banana가 몇 개의 문자로 구성되어 있는지 알 수 있게 된다.
fruit='banana'
print(len(fruit))
# 6으로 출력
문자열의 길이만큼 루프 실행
우리는 len() 함수를 활용하면 문자열의 길이 만큼 루프를 실행할 수 있다.
fruit='banana'
index=0
# while 루프
while index<len(fruit):
letter=fruit[index]
print(index, letter)
index=index+1
# 0 b
# 1 a
# 2 n
# 3 a
# 4 n
# 5 a
# for 루프
for letter in fruit:
print(letter)
학습목표
파이썬 문자열 타입의 내장 메소드를 이해하고 사용할 수 있다.
핵심키워드
- 문자열
- 내장 메소드
문자열 슬라이싱
지금까지 우리는 문자열에서 단일 문자를 가져 왔다. 특정 범위에 있는 문자를 가져올 수도 있다.
myString = 'Monty Python'
print(myString[0:4])
# Mont가 출력 여기서 0 to 4에서 4에 대한 인덱스는 출력되는 값에 포함되지 않는 것을 확인
print(myString[6:7])
# P가 출력
print(myString[6:20])
# Python이 출력
print(myString[:2])
# index값이 2에 해당하는 문자 앞부터 출력
print(myString[8:])
# index값이 8에 해당하는 문자부터 출력
print(myString[:])
# 전체가 출력
문자열 합치기
문자열 연결은 수리 연산자인 +
를 이용해서 달성할 수 있다.
firstString = 'Hello'
secondString = 'There'
print(firstString + secondString)
# HelloThere로 출력
thirdString = firstString+''+secondString
print(thirdString)
# Hello There로 출력
in을 논리 연산로 사용하기
특정 문자열에 우리가 확인하고자 하는 문자가 있는지 확인하기 위해 우리는 in을 사용할 수 있다.
fruit='banana'
print('n' in fruit)
# True로 출력
print('m' in fruit)
# Falase로 출력
print('nan' in fruit)
# True로 출력
if 'a' in fruit:
print('Found it!')
# Found it!으로 출력
문자열 라이브러리
문자열 타입의 객체에서 우리는 다양한 메소드를 사용할 수 있다.
great='Hello Bob'
zap=great.lower()
print(zap)
# hello bob으로 출력
print(great)
# Hello Bob으로 출력
print('Hi There'.lower()
# hi there로 출력
print(great.upper())
# HELLO BOB으로 출력
Strip 메소드
문자열에서 공백을 제거할 수 있는 메소드가 존재한다.
lstrip(): 왼쪽 공백 제거
rstrip(): 오른쪽 공백 제거
strip(): 오른쪽 왼쪽 공백 제거
greet = ' Hello Bob '
greet.lstrip()
# 왼쪽의 공백이 삭제
greet.rstrip()
# 오른쪽의 공백이 삭제
greet.strip()
# 양쪽의 공백이 삭제
시작문자열 찾기
startswith라는 메소드를 통해서 우리는 특정 문자로 문자열이 시작되는지도 확인할 수 있다. 결과값은 불리언 타입으로 반환된다. 즉, 해당 문자로 시작한다면 True. 그렇지 않다면 False가 반환된다.
line='Please have a nice day'
print(line.startswith('Please'))
# True로 출력
print(line.startswith('p'))
# False로 출력 : 대소문자 구분
실습
Exercise 6-5
Take the following Python code that stores a string:
str = 'X-DSPAM-Confidence: 0.8475 '
Use find
and string slicing to extract the portion of the string after the colon character and then use the float
function to convert the extracted string into a floating point number.
str = 'X-DSPAM-Confidence: 0.8475 '
ipos = str.find(':')
# print(ipos)
piece = str[ipos+2:]
# print(piece)
# print(piece+42.0) # will fail
value=float(piece)
print(value)
# print(value+42.0)