sein-choi 님의 블로그
[Python : basic] 자료형(문자열) 본문
문자열
문자를 나타내기 위한 데이터 형태의 자료형이다
작은따옴표(' '), 큰따옴표(" ") 로 둘러 싸인 문자의 집합이다
ex) '5', '안녕', 'hello', '1.23', '#안녕'
단, ₩, ', '' 는 특별한 문자이기 때문에 ₩ ₩, ₩', ₩' 형태로 입력해야한다
🔶문자열 변수
str1 = 'hello python'
str2 = "hello python"
# 여러 줄 문자열
str3 = ''' hello
python '''
🔶문자열 연결 : + 연산을 활용
str1 = 'hello'
str2 = 'python'
print(str1 + str2) # 'hello python'
🔶문자열 반복 : * 연산을 활용
str = 'ha'
print(str * 3) # 'hahaha'
✅문자열 인덱싱
문자열은 연속된 시퀀스를 가지고 있다
문자열의 각 요소는 0부터 시작하는 인덱스를 가지고 있다
인덱스 : 요소의 순서나 위치를 나타내는 번호
인덱싱 : 인덱스를 이용해서 특정 요소를 추출하는 과정
🔶문자열 인덱싱 : [인덱스]
# p추출
str = 'hello pyhon'
result = str[6]
print(result)
🔶문자열 음수 인덱싱
문자열의 끝에서부터 인덱스를 할당하여 추출한다
단, 음수 인덱스는 -1부터 시작한다
str = 'hello python'
result = str[-1]
print(result) # n
# p추출
str = 'hello python'
result = str[-6]
print(result)
✅문자열 슬라이싱
문자열의 부분을 추출한다
인덱싱과 슬라이싱의 차이점
인덱싱 : 단일 문자 추출
슬라이싱 : 연속된 문자열 추출
🔶문자열 슬라이싱 : [시작 인덱스 : 끝 인덱스 : 스탭(선택사항)]
시작 인덱스 : 슬라이스의 시작 위치를 설정한다
단, 시작 인덱스를 포함
끝 인덱스 : 슬라이스의 끝 위치를 설정한다
단, 끝 인덱스를 포함하지않음
스탭 : 문자를 선택하는 간격을 설정한다
# hello 추출
str = 'hello python'
result = str[0:5]
print(result)
시작 인덱스 생략 : [ : 끝 인덱스]
문자열의 처음부터 끝 인덱스 전까지 추출한다
끝 인덱스 생략: [시작 인덱스 : ]
시작 인덱스부터 문자열의 마지막까지 추출한다
시작 인덱스와 끝 인덱스 모두 생략 : [ : ]
문자열을 복사한다
str = 'hello python'
print(str[:6]) # hello
print(str[6:]) # python
print(str[:]) # hello python
🔶문자열 스탭
str = 'hello python'
result = str[0:5:2]
print(result) # hlo
🔶문자열 음수 슬라이싱
문자열의 끝에서부터 인덱스를 할당하여 추출한다
단, 음수 인덱스는 -1부터 시작한다
# hello 추출
str = 'hello python'
result = str[-12:-7]
print(result)
🔶문자열 음수 스탭
문자열을 역순으로 추출한다
# python 역순 nohtyp 추출
str = 'hello python'
result = str[-1:-7:-1]
print(result)
✅문자열 포맷팅(string formatting)
문자열 내부에 변수를 삽입하여 변수가 변함에 따라 문자열이 변경된다
f-문자열 기법 : f'문자{변수}'
name = '공주'
weight = 50.76
f_str = f'내 이름은 {name}이고 몸무게는 {weight}kg 입니다'
print(f_str) # 내 이름은 공주이고 몸무게는 50.76kg 입니다
#변수가 소수점인 경우 반올림 하는 방법 : {변수:.소수점자릿수f}
f_str = f'내 이름은 {name}이고 몸무게는 {weight:.1f}kg 입니다'
print(f_str) # 내 이름은 공주이고 몸무게는 50.8kg 입니다
✅문자열 함수 & 메소드
함수 : 함수이름(인자)
매소드 : 문자열.매소드이름(인자)
인자 : 함수를 호출할 때 실제로 함수에 전달되는 값
🔶문자열 길이 : len()
str = 'python'
print(len(str)) # 6
🔶대/소문자 변환 : .upper(), .lower()
str = 'hello'
print(str.upper()) # HELLO
🔶공백 제거 : .strip(), .lstrip(), .rstrip()
.strip() : 문자열 양쪽 공백을 제거한다
.lstrip() : 문자열 왼쪽 공백을 제거한다
.rstrip() : 문자열 오른쪽 공백을 제거한다
str = ' hello '
print(str.strip()) # 'hello'
print(str.lstrip()) # 'hello '
print(str.rstrip()) # ' hello'
🔶다른 문자열로 교체 : .replace('교체하고 싶은 문자', '교체할 문자')
# hello를 bye로 교체하기
str = 'hello python'
print(str.replace('hello', 'bye'))
🔶문자열 내에서 특정 문자의 첫 위치 찾기 : .find()
🔶문자열 내에서 특정 문자의 끝 위치 찾기 : .rfind()
# hello 위치 찾기
str = 'hello python hello'
print(str.find('hello')) # 0
print(str.rfind('hello')) # 13
🔶문자열 구성 확인하기 : .isdigit(), .isalpha(), .isalnum()
.isdigit() : 문자열이 숫자 조합인지 확인한다
.isalpha() : 문자열이 알파벳 조합인지 확인한다
.isalnum() : 문자열이 문자 or 숫자 조합인지 확인한다
str = '123'
print(str.isdigit()) # True
str = 'abc'
print(str.isalpha()) # True
str = 'abc123'
print(str.isalnum()) # True
출저 : 스파르타코딩, 데이콘
'python > 기본' 카테고리의 다른 글
[Python : basic] 튜플 (0) | 2024.11.18 |
---|---|
[Python : basic] 딕셔너리 (1) | 2024.11.18 |
[Python : basic] 리스트 (0) | 2024.11.18 |
[Python : basic] 자료형(불리언) (0) | 2024.11.17 |
[Python : basic] 기본 산술 연산자, 복합 대입 연산자 (1) | 2024.11.16 |