본문 바로가기
Python

[TIL]Python 기초 실습 문제_24일차(문자열)

by 공부하죠 2024. 5. 7.
반응형

파이썬 문자열은 인덱싱, 슬라이싱 기능과 다양한 메서드를 제공합니다. 문자열은 수정할 수 없습니다. 

다만 곱하기와 합치기는 사용 가능합니다.

1. 문자열 인덱싱

letters가 바인딩하는 문자열에서 첫번째와 세번째 문자를 출력

letters = 'python'
print(lang[0], lang[2])
>>>
p t

 

슬라이싱할 때 '시작인덱스:끝인덱스:오프셋'을 지정

string = "홀짝홀짝홀짝"
print(string[::2])
>>>
홀홀홀

 

2. 문자열 슬라이싱

자동차 번호가 다음과 같을 때 뒤에 4자리만 출력

icense_plate = "24가 2210"
print(license_plate[-4:])
>>>
2210

 

문자열을 거꾸로 뒤집어 출력

string = "PYTHON"
print(string[::-1])
>>>
NOHTYP

 

3. replace 메서드

전화번호를 모두 붙여 출력

phone_number = "010-1111-2222"
phone_number1 = phone_number.replace('-', '')
print(phone_number1)
>>>
01011112222

 

소문자 'a'를 대문자 'A'로 변경

string = 'abcdfe2a354a32a'
string = string.replace('a', 'A')
print(string)
>>>
Abcdfe2A354A32A

 

정수형으로 타입을 변환하려면 int( ) 함수를 사용

이때 숫자 형태의 문자열에 컴마가 있는 경우 바로 변환된지 않음

먼저 문자열의 replace 메서드로 컴마를 제거한 후 변환

상장주식수 = "5,969,782,550"
컴마제거 = 상장주식수.replace(",", "")
타입변환 = int(컴마제거)
print(타입변환, type(타입변환))
>>>
상장주식수 = "5,969,782,550"

 

4. strip 메서드

문자열의 좌우의 공백 제거

data = "   삼성전자    "
data1 = data.strip()
print(data1)
>>>
삼성전자

[Tip] rstrip 메서드

문자열의 오른쪽 공백 제거

data = "039490     "
data = data.rstrip()
>>>
039490

lstrip()는 왼쪽 공백 제거

 

5. split 메서드

split 메서드를 활용하면 문자열을 여러개로 쪼개는데 유용

이러한 메서드를 알고 있으면 문자열로 되어 있는 파일 경로로 부터 파일 제목을 추 출하는 등의 상황에서 아주 유용하게 사용

a = "hello world"
a.split()
>>>
['hello', 'world']

 

이때 어떤 값을 넘겨주면 그 값을 기준으로 문자열을 분리

ticker = "btc_krw"
ticker.split("_")
>>>
['btc', 'krw']
date = "2020-05-01"
date.split("-")
>>>
['2020', '05', '01']

 

url 에 저장된 웹 페이지 주소에서 도메인을 출력 

split() 메서드를 사용하면 문자열로 표현된 url에서 `.`을 기준으로 분리

분리된 url 중 마지막을 인덱싱하면 도메인만 출력

url = "http://sharebook.kr"
url_split = url.split('.')
print(url_split[-1])
>>>
kr

 

[Tip] 문자열에서 공백을 제거한 후 문자열을 리스트로 변환하기

text = " Hello how are you "
cleaned_text = text.strip()
words = cleaned_text.split()
print(words) 
>>>
['Hello', 'how', 'are', 'you']

 

[Tip] 데이터 불러올때 경로 처리할때 split 사용

아래의 예시에서는 file_path 라는 문자열 변수에 데이터의 경로를 저장하고, split() 함수를 사용하여 문자열을 / 기준으로 분할

이때, rsplit() 함수를 사용하여 오른쪽에서부터 최대 1회만 분할하도록 설정하여 파일명과 디렉토리로 나눔. 분할된 결과를 각각 directory 와 filename 변수에 할당하여 출력

# 데이터의 경로를 문자열로 표현
file_path = "/usr/local/data/sample.txt"

# split() 함수를 사용하여 디렉토리와 파일명으로 분할
directory, filename = file_path.rsplit('/', 1)
print("디렉토리:", directory)
print("파일명:", filename)
>>>
디렉토리: /usr/local/dat
파일명: sample.txt

이러한 방식으로 데이터의 경로를 문자열로 표현하고, 이를 split() 함수를 활용하 여 필요한 정보를 추출

 

6. 문자열 연산

합치기

a = "3"
b = "4"
print(a + b)
>>>
34

 

곱하기

print("-" * 80)
>>>
--------------------------------------------------------------------------------
print("Hi" * 3)
>>>
HiHiHi
t1 = "python"
t2 = "java"
t3 = t1 + ' ' + t2 + ' '
print(t3 * 4)
>>>
python java python java python java python java

 

7. 문자열 출력 f-string 포맷팅

변수에 다음과 같이 문자열과 정수가 바인딩되어 있을 때 % formatting을 사용

변수의 위치에 중괄호{}를 사용하여 변수와 함께 기입

[방법 1]
x = 10
print(f"변수 x의 값은 {x}입니다.")

[방법 2]
x = 10
print("변수 x의 값은 {}입니다.".format(x))

>>>
변수 x의 값은 10입니다.
[방법 1]
name1 = "김민수" 
age1 = 10
name2 = "이철희"
age2 = 13
print("이름: %s 나이: %d" % (name1, age1))
print("이름: %s 나이: %d" % (name2, age2)

[방법 2]
name1 = "김민수" 
age1 = 10
name2 = "이철희"
age2 = 13
print("이름: {} 나이: {}".format(name1, age1))
print("이름: {} 나이: {}".format(name2, age2))
>>>
이름: 김민수 나이: 10
이름: 이철희 나이: 13

이번 글은 가단한 파이썬 실습을 위주로 정리했습니다.

파이썬을 기초부터 공부하고 싶다면 여기를 클릭🔥

반응형