본문 바로가기
Python_Wiki/Python_Syntax

(순서)자료형(data type) - 문자열 Strings

by yj-data 2025. 5. 27.

문자열 (strings)

  • 문자열 만드는 방법
    • 큰 따옴표/ 작은따옴표 로 문자를 만들기
    • 문자열 내부에 따옴표 넣기 - 어퍼스트로피는 작은따옴표로 계산이 되니 문자열 주위에는 큰 따옴표를 넣자 
    • 이스케이프 문자를 사용해 문자열 만들기
      • 이스케이프 문자: 출력물을 보기 좋게 만드는 용도. 역슬래시 기호와 함께 조합해서 사용하는 특수 문자. 역슬래시 함께 사용하면 단순한 따옴표로 인식한다(예, '나는 \'파이썬\' 공부를 한다.')
      • 종류: 줄바꿈/탭/역슬래시/작은따옴표/큰따옴표 - \n, \t, \\, \', \"
    • 여러 줄 문자열 만들기
      • 큰 따옴표나 작은 따옴표를 3번 반복한 기호를 사용. 시작과 끝 둘 다 사용하며 센터를 누르는 것마다 줄바꿈이 일어나고 결과물에 줄바꿈이 그대로 보인다
    • 줄 바꿈없이 문자열 만들기
      • 큰따옴표는 작은 따옴표를 3번 반복하며 그 아래 위로 빈 줄이 하나씩 생기는데, 그걸 없애기 위해서는 내용 앞뒤에 역슬래시를 넣는다.
      • 예, 변수 = '''\
        오늘은 글을
        이렇게 쓴다\
        '''
    • 문자열 연산: 문자열 연결 +, 문자열 반복*
      • 예, a= '오늘도', b= '공부' => print(a+b)   /   equal = "=" * 30
  • 인덱싱
    • 문자열 내부에 문자 하나를 선택하는 연산자: []
    • 대괄호 안에는 선택할 문자의 위치를 지정하며 이 숫자를 인덱스라고 부른다
    • 순방향은 0부터 시작, 역방향은 -1부터 시작
    • 문자열[인덱스]로 호출
  • 슬라이싱
    • 문자 열의 특정 범위를 선택할 때 사용하는 연산자: [:]
    • 호출: 문자열[인덱스1:인덱스2] = 인덱스1이상, 인덱스2미만 호출 
    • 인덱싱할때 len(string)보다 큰 숫자(x)가 나와도 string[x:] 를 쓸수있다. 오류 안남!! 리턴값은 ''로 나옴
  • 포맷팅(formatting)
    • 문자열 안에 어떤 값을 삽입하는 방법
    • 연산자 포매팅: %
      • 문자열 포맷 코드에 맞춰 바로 숫자와 문자를 대입할 때 사용
      • 정수/실수/문자1개/문자열 대입: %d / %f / %c / %s
      • 예, a=4, b='학교'   '나는 %d호선을 타고 %s를 가' % (a,b) (연산자 1개일 경우 괄호생략)
    • format() 함수 포매팅
      • 문자열 안에 {}(중괄호)를 넣고, 문자열 뒤에 도트를 찍고 format() 사용
        • 예, "나는 {}호선을 타고다녀.".format(6)
      • {}안에 숫자를 넣어, format()안에 들어가는 대입값을 차례로 지목할 수 있음 "나는{0}호선을 타고다녀.".format(6)
      • "I have a {}, I have a {}.".format("yes","no")  => 'I have a yes, I have a no.'
    • 소수점 포매팅
      • amount = 0.075
      • print (format(amount, ".2f")) => 0.08
      • %.2f는 소수점 둘째자리까지만 표현되도록 반올림 하라는 의미
    • f-string 포매팅
      • {} 대신 {}안에 바로 변수를 넣을 수 있음
      • name = "June" , id = 123
      • f"I am {name}, I have a {id}." => I am June, I have a 123.
#활용: 카카오 알림톡 - 이벤트 참여 안내
name = "홍길동"
event = "AI 활용 무료 세미나"
date = "4월 12일(금) 오후 7시"

message = "{}님, '{}'에 신청이 완료되었습니다.\n📅 일시: {}".format(name, event, date)
print(message)

#결과
#홍길동님, 'AI 활용 무료 세미나'에 신청이 완료되었습니다.
#📅 일시: 4월 12일(금) 오후 7시
  • 함수
    • 문자열 길이 출력: len(x)
    • 문자열 나누기 : .split()
    • 문자 개수세기: .count(x)
    • 문자열 바꾸기: .replace(x,y)
    • 위치 알려주기: .find(x) 
    • 소문자를 대문자로 바꾸기: .upper()
    • 대문자를 소문자로 바꾸기: .lower()
    • 문자열 삽입: join(x) - e.g. sentence = '.'.join('abcde') => a.b.c.d.e / x에는 str 형이 기대됨
      • int 자료형도 뽑고싶은데? => sentence = " ".join(map(str, 변수)) => 숫자가 띄엄띄엄 도출됨(문자형으로)
      • map 함수 => map(적용할 함수, 반복가능한 자료형)
    • .startswith, .endswith: 특정 문자열로 시작하는지/끝나는지 확인
    • 문자열 양쪽 끝 공백 없애기: .strip()   *replace와 다른 점은, strip은 문자열 바깥 양쪽만 적용이 되지만 replace는 어디든 적용이 된다. 그래서 '123,123,4556' 이런 문자형 숫자에서 쉼표를 없애려면 replace를 써줘야함.