개발 이야기

[파이썬 완전정복] 문자열 유형

ANDYLION 2020. 6. 14. 22:55
728x90
반응형

문자열

오늘은 문자열에 대해 알아보도록 하겠습니다.

 

문자는 영어로 Character라고 명칭합니다.

그리고 우리는 C언어에서 char라고 배웠습니다.

이것은 하나의 문자를 의미합니다.

그리고 우리는 String이라고 문자열을 배웠습니다.

그럼 문자와 문자열의 차이는?

문자는 말 그대로 문자열을 만들기 전에 하나의 문자를 의미합니다.

그리고 이러한 문자를 여러 개 모아서 나타낸 것을 문자열이라고 합니다.

 

예를 들어, "파이썬 완전정복"은 문자열입니다.

그리고 하나하나의 요소가 문자입니다.

표로 다시한번 나타내보겠습니다.

1번 요소 2번 요소 3번 요소 4번 요소 5번 요소 6번 요소 7번 요소 8번 요소
 
index : 0 index : 1 index : 2 index : 3 index : 4 index : 5 index : 6 index : 7

문자열로 표현하는 것은 문자를 더한다는 의미로 생각하면 됩니다. 

"하나하나의 문자들을 하나의 문자열로 만들기 위해 배열에 넣는 행위"

 

출력을 한번 해보겠습니다.

보는 것처럼 str이라는 변수에 해당 문자열을 저장하고 출력하니

결과 값이 위와 같이 나왔습니다.

그런데 각 요소의 인덱스가 맞는지 확인이 필요하겠죠?

그럼 한번 인덱스별로 찍어보겠습니다.

 

 

컴퓨터는 기본적으로 0부터 시작합니다.

그래서 코딩을 할 때는 항상 0부터 시작한다는 것을 명심해야합니다.

문자열의 길이를 구하는 함수는 len(문자열)입니다.

해당 내용의 문자열의 길이를 확인하고,

range는 (0<= x < 8) 로 반복문을 수행하는 것입니다.

내용을 보면 str[0-7]까지 문자열이 존재하는 것을 확인 할 수 있습니다.

 

그럼 기본적인 내용을 확인했으니,

문자열을 위한 주요 함수를 확인해보겠습니다.

 

인덱스를 이용한 슬라이싱

슬라이싱은 문자열을 자른다는 의미입니다.

만약 "파이썬 완전정복"에서 "완전정복"만 출력하고 싶다고 생각해보죠.

슬라이싱은 원하는 위치를 선택해서 출력하는 것이다.

#STRING변수[시작위치:종료위치]

#example.
	str='파이썬 완전정복' # 8자리
    
    print(len(str)) # 8 출력
    
    #파이썬 출력하기
    print(str[0:3]) # 0 1 2 
    print(str[:3]) # 0 1 2
    
    #완전정복 출력하기
    print(str[4:8]) # 4 5 6 7
    print(str[4:]) # 4 5 6 7

문자열에 사용하는 특정 함수들에 대해 알아보겠습니다.

lower() 와 upper()

lower() 와 upper()입니다.

#lower() : 대문자를 소문자로
str = 'PyTHon'

print(str.lower()) #python

#upper() : 소문자를 대문자로
str = 'PyTHon'

print(str.upper()) #PYTHON

strip( )

strip 함수에 대해 알아보겠습니다.

strip은 문자열에서 좌 or 우 공백을 제거하고 문자열을 붙여주는 역할을 합니다.

"(공백)파이썬(공백)완전정복(공백)"에서 썬과 완사이에 공백이 있습니다.

그럼 3개의 공백을 strip을 사용해서 제거해보도록 하겠습니다.

# strip() : 문자열에서 공백을 제거합니다.

# strip은 lstrip / strip / rstrip으로 나뉩니다.
str = "   파이썬  완전정복   "

print(str) #기본 출력
print(str.lstrip()) # lstrip의 경우
print(str.strip()) # strip의 경우
print(str.rstrip()) # rstrip의 경우

근데 가운데 공백이 남아 있네요....이상하다고요?

아까도 얘기했듯이 좌 or 우 공백만 제거하는 역할을 하는 것이 strip입니다.

가운데 공백은 replace()를 통해 제거할 수 있습니다.

 

replace( )

그래서 이번에 해볼 함수는 replace입니다.

# replace() : 문자열 내용 바꾸기
# replace함수는 다음과 같이 사용합니다.

str = '파이썬 완전정복'

# replace(바꿔야할 문자, 바꿀 문자)
str1 = str.replace(" ", "") #파이썬완전정복
print(str1)

이번에는 문자열의 내용을 변경해보겠습니다.

"파이썬" -->"앤디라이언의 파이썬"으로 변경된 것이 보입니다.

이와 같이 replace는 특정 내용을 추가/변경/삭제할 때 모두 사용됩니다.

split( )

다음으로 확인할 내용은 특정 구분자로 구분해서 데이터를 출력하는 split함수입니다.

# split() : 문자열 나누기

#specific bacode number "123-4567-8901"

bacode="123-4567-8901"

print(bacode.split('-')) #모두 나누기
print(bacode.split('-',1)) #첫번째 나누기

특정 구분자들을 제거하고 숫자를 리스트로 관리할 수 있게 만들어 줍니다.

split은 리스트를 스터디할 때 다시 체크하세요~!!

len( )

다음은 len함수입니다.

# len() : 문자열의 길이를 얻어오는 함수

str1 = "파이썬"
str2 = "파이썬 완전정복"
str3 = "스터디는 재미있다"
str4 = "이제 한번 제대로 공부하자. 파이썬"

print(len(str1))
print(len(str2))
print(len(str3))
print(len(str4))

해당 문자들에 대한 총 글자 수를 len함수를 통해서 얻어 올 수 있습니다.

문자열 수식 연산

마지막으로 문자열 연산에 대해 알아보겠습니다.

문자열은 수식으로 연산이 가능합니다

# 문자열 연산하기

# 문자열 덧셈 +
# 문자열 곱셈 *

underbar = "="*30 # ======================================================
str = "파이썬" + "완전정복" #파이썬완전정복

print(underbar)
print(str)
print(underbar)

문자열에 대해 알아봤습니다.

다음은 리스트/튜플 등의 데이터 저장에 대한 내용을 공부해보도록 합시다.

 

728x90
반응형
SMALL