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를 써줘야함.