Python study

10일차

문자열 활용

명칭표현형
split특정 기호를 기준으로 문자열을 잘라주는 기능.split('특정 기호')
replace문자열(a)을 다른 문자열(b)로 바꿔주는 기능.replace('a','b')
count해당 문자(a) 개수 세기.count('a')
strip불필요한 공백 제거.strip()
lstrip왼쪽 공백 제거.lstrip()
rstrip오른쪽 공백 제거.rstrip()
upper대문자 전환.upper()
lower소문자 전환.lower()

문자열 활용 예제

  1. 포켓몬 이름 정리하기

리스트에 번호와 공백과 함께 저장되어 있는 포켓몬 이름을 오직 포켓몬 이름만 출력되게 정리하기

poke = ['1.이상해씨 ', '2.이상해풀 ', '3.이상해꽃 ', '4.파이리 ', '5.리자드 ']

pokename = []

for i in poke:
    pokename.append(i.split('.')[1].strip())

print(pokename)
  • 리스트 내에 더 많은 정보가 들어있더라도 정리할 수 있다.
  • for문을 통해 리스트 요소 하나하나를 i에 받아온다.
  • i.split('.') : '1.이상해씨 ' -> '1','이상해씨 ' 로 나눌 수 있다.
  • 포켓몬의 이름만 받기 위해서 인덱싱을 활용하여 i.split('.')[1]을 해주면 첫번째 요소인 번호, 두번째 요소인 포켓몬 이름 중에서 포켓몬 이름을 받아 올 수 있다.
  • strip() : '이상해씨 ' 받아온 이름에서 공백을 없애줘야하기 때문에 필요없는 공백을 없애주기 위해 사용한다.
  • i.split('.').strip() : 최종으로 이렇게 작성해주면 원하는 부분을 얻어 올 수 있다.

  1. 전화번호부에서 서울 사는 사람 구하기

나열되어 있는 여러개의 전화번호를 리스트로 나누어 담고 거기서 '02'로 시작하는 전화번호를 찾아서 세면 된다.

# case 1
tel = "051-467-3812,063-415-6555,02-344-2750,010-469-5158,02-675-9945"

tels = tel.split(',')
seoult = []

for i in tels:
    if i.split('-')[0] == '02':
        seoult.append(i)

print("서울 사는 사람 수 : ", len(seoult))
  • split('-')[0] == 02를 통해 서울 전화번호를 seoult리스트에 추가해주고
  • (len)seoult : 리스트의 길이를 구해 서울 사는 사람 수를 구할 수 있다.
# case 2
지역번호 = []

for i in tels:
    지역번호.append(tels.split('-')[0])

print("서울 사는 사람 수 : ", 지역번호.count('02'))
  • split('-')[0] 로 지역번호만 저장하는 list를 만들어서
  • count('02') 로 서울 지역번호의 개수를 count한다.

  1. 메뉴판에서 제품명 출력하기

    금액을 입력받고, 그 금액으로 구매 가능한 제품명을 출력하게 한다.

money = int(input("돈을 넣어주세요 : "))
Menu = "딸기 4000원\t파인애플 5000원\t포도 4000원\t사과 2000원\t감자 3000원\n수박 8000원\t감귤 4000원\t한라봉 7000원\t체리 3000원\t자두 2000원\n아메리카노 3000원\t카페라떼 4000원\t카페모카 4500원\t아인슈패너 6000원\n에스프레소 2000원\t카푸치노 3600원\t아이스티 3000원\t레몬에이드 4000원\n초코우유 1500원\t딸기우유 1500원\t바나나우유 1500원\t커피우유 1500원\n두유 2000원\t헤이즐넛 3000원\t오레오초코 4000원\t얼그레이 6000원"

menu = Menu.replace('\n','\t')
menu = menu.split('\t')

for i in menu:
    x = i.split(' ')
    
    if money >= int(x[1][:-1]):
        print("구매 가능한 과일 : ", x[0])
  • replace('\n','\t') 로 나눠줄 특정 기호를 통일해준다.
  • split(' ')[1] 로만 하면 '4000'이 아니라 '4000원' 으로 저장되기 때문에
  • x[1][:-1] 문자열 슬라이싱을 활용하여 맨 마지막 문자 전까지 저장하게끔 해준다.
  • 하지만 문자로 저장된 것이기 때문에 자료형을 바꿔주어야 해서 int(x[1][:1])까지 처리한다.
profile
내 꿈은 멋쟁이개발자

0개의 댓글