python 파트3. 문자열

reggias·2022년 11월 21일
0

python

목록 보기
3/14
post-thumbnail

문자열 기초

  • 파이썬에서는 '글'도 데이터로 사용한다.(문자열)
  • 문자열은 불변(immutable)이라 assignment 메서드를 지원하지않는다.
# 작은 따옴표 또는 큰 따옴표. 둘 다 같다.

a = "aa"
b = 'aa'
  • 따옴표로 감싸지 않으면 변수이름을 뜻함.
a = 1
b = "a"
c = a
print(a, b, c) # 1 "a" 1

문자열 연산

  • 문자열 두 개를 더하면 문자열이 이어붙여짐
first_name = "Harry"
last_name = "Potter"

first_name + last_name  # HarryPotter
first_name + " " + last_name  # Harry Potter

a = "3"
b = "5"
a + b    # 35
  • 문자열과 정수를 더하면 에러
a = "3"
a + 5    # 문자열과 숫자형은 더할 수 없어서 에러!
  • 문자열의 길이는 len() 함수를 써서 구할 수 있다.
print(len("abcde"))           # 5
print(len("Hello, Sparta!"))  # 14
print(len("안녕하세요."))      # 6

그 외 다양한 기능

  • 특정 자료형 뒤에 . 을 붙이고 쓰는 내장 함수를 '메소드(method)'라고 함.

  • 모든 알파벳을 대문자 또는 소문자로 변경(.upper, .lower)
sentence = 'Python is FUN!'

sentence.upper()  # PYTHON IS FUN!
sentence.lower()  # python is fun!
  • 특정 문자를 기준으로 문자열 나누기(.split)
# 이메일 주소에서 도메인 'gmail'만 추출하기
myemail = 'test@gmail.com'

result = myemail.split('@') # ['test','gmail.com'] (뒤에 배울 '리스트'라는 자료형이에요 :))

result[0] # test (리스트의 첫번째 요소)
result[1] # gmail.com (리스트의 두 번째 요소

result2 = result[1].split('.') # ['gmail','com']

result2[0] # gmail -> 우리가 알고 싶었던 것
result2[1] # com

# 한 줄로 한 번에!
myemail.split('@')[1].split('.')[0]
  • 특정 문자를 다른 문자로 변경(.replace)
txt = '서울시-마포구-망원동'
print(txt.replace('-', '>')) # '서울시>마포구>망원동'
  • 좌우 공백 제거하기(.strip)
data = "   삼성전자    "
data1 = data.strip()
print(data1)
  • 첫 글자만 대문자로 치환(.capitalize)
text = "hello"
Text = text.capitalize()
print(Text)
  • 파일 이름이 문자열로 저장되어 있을 때 파일 확장자명이 올바른지 확인하기(.endswith)
file_name = "보고서.xlsx"

print(file_name.endswith("xlsx"))   # True
print(file_name.endswith(("xlsx", "xls")))   # True
  • 파일 이름이 문자열로 저장되어 있을 때 파일명 시작부분이 올바른지 확인하기(.startswith)
file_name = "2020_보고서.xlsx"
print(file_name.startswith("2020"))

인덱싱과 슬라이싱

  • 문자열은 '문자들의 모임'이기 때문에 일부를 따로 떼어 부르는 방법이 있다. 한글자씩 부를 때는 몇 번째인지 '인덱스'를 넣어 불러서 인덱싱이라고 한다.
f="abcdefghijklmnopqrstuvwxyz"
f[1]   # b    파이썬은 숫자를 0부터 셉니다
  • 문자열의 일부를 잘라낼 때는 슬라이싱이라고 한다.
f[4:15]  # efghijklmno           f[4]부터 f[15] 전까지, 총 15-4=11개!

f[8:]    # ijklmnopqrstuvwxyz    f[8]부터 끝까지, 앞의 8개 빼고!
f[:7]    # abcdefg               시작부터 f[7] 전까지, 앞의 7개!

f[:]     # abcdefghijklmnopqrstuvwxyz  처음부터 끝까지
f[-5:]   # vwxyz                 뒤에 5자리만 출력하기
f[::2]   # acegikmoqsuwy         시작인덱스:끝인덱스:오프셋 지정
f[::-1]  # zyxwvutsrqponmlkjihgfedcba  문자열 뒤집기
  • 특정 문자열을 자르고 싶을 때는 split('문자열') 활용
myemail = 'abc@sparta.co'

domain = myemail.split('@')[1].split('.')[0]
print(domain)
profile
sparkle

0개의 댓글