낭만개발자
낭만개발자
낭만개발자
전체 방문자
오늘
어제
  • 분류 전체보기 (57)
    • Web) HTML & CSS (5)
    • Web) HTTP (2)
    • 언어) Java (2)
    • 언어) Python (6)
    • 언어) PHP (1)
    • Linux (2)
    • 데이터 관리) Pandas (4)
    • Algorithms (13)
    • 개발자 역량 (4)
    • 프로젝트 (14)
      • Django 초기 프로젝트 (1)
      • CatCoDog _ 반려동물 식품 판매 사이트 (9)
      • 개인 홈서버 프로젝트 (2)
      • 이력핏 : AI가 추천해주는 이력서 (2)
    • 문제와 사고 (2)
    • ETC (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Leetcode
  • dp
  • 장고 초기 세팅
  • css 포지션
  • css
  • python basic
  • css 위치변경
  • Java
  • Merge Sorted Array
  • 오늘의 문제
  • 리눅스
  • python
  • css basic
  • 웹개발
  • algorithm
  • rainbow table
  • WEB
  • 파이썬 기본
  • Unique Paths
  • catcodog
  • python operator
  • 파이썬 기초
  • 파이썬
  • django setting
  • JWT 웹
  • 파이썬 자료형
  • Number Of Island
  • css 기본
  • 파이썬 숫자형
  • leetcode88

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
낭만개발자

낭만개발자

[Python] Python 자료형(2): 문자열(String)형
언어) Python

[Python] Python 자료형(2): 문자열(String)형

2022. 5. 1. 12:03

[Python] 파이썬 자료형(2) 문자열(String)형

​

​
​

1. 문자열형 (String)

​
문자열(String)이란, 말 그대로 문자, 단어 등으로 구성된 문자들의 집합을 말합니다.
다음 처럼요.
​

"Hello, My name is Limitless Model"
'L'
"25"

​
문자열형은 모두 큰 따옴표, 혹은 작은 따옴표로 둘러싸여 있습니다.
​
​
그렇다면, 세 번쨰 "25" 는 앞서 배운 숫자형과 무엇이 다를까요??
​

💡숫자형 vs 문자열 속의 숫자

숫자형 25와, 문자열 속의 숫자 "25"는 무엇이 다를까요?
앞의 숫자형 25는 말 그대로 '숫자(정수)'로서의 25로 인식을 하고, 뒤의 문자열 속 25는 '문자'로서 인식합니다. 

다음의 예를 보면 이해가 쉬우실 겁니다.




ndumber라는 변수에는 숫자형 25를 대입하고, string이라는 변수에는 문자열형 25를 대입했습니다.

그리고 각 자료형끼리 더하기 연산자를 이용해 연산을 시행했을 때,
숫자형 25는 수치적인 계산을 거쳐 50이 출력된 반면, 문자열형은 문자열 두 개가 나란히 나열됨을 알 수 있습니다. 

​
​
​
문자열형을 여러 줄 작성하고 싶을 때는 큰(작은) 따옴표를 연달아서 세 번 사용하시면 됩니다.
​

​
​
​

1) 문자열형의 인덱싱(Indexing)

​

💡인덱싱의 기본 구조:
    문자열명 [문자 주소]

​
인덱싱(Indexing)이란, 무엇인가를 "가리킨다"는 의미입니다.
​
인덱싱을 통해 문자열 내의 원하는 주소의 문자를 추출할 수 있습니다.
컴퓨터는 보통 주소 0번을 첫번째 주소로 인식합니다.
​
"Limitless"라는 문자열을 받을 때, 시작 문자인 "L"의 주소를 0번으로, 순차적으로 인식해가는 것입니다. 다음 처럼요.
​

​
​
여기서 인덱싱을 하는 방법은, 문자열이 저장된 변수명 뒤에 대괄호를 이용하여 해당 문자의 주소를 적는 것입니다.
​
​

​
"Limitless"가 저장된 변수 string에서 2번 주소를 가진 문자는 "m"이므로, 추출값이 m임을 확인할 수 있습니다.
​
​
​
그렇다면 Limitless 문자열에서 "less"문자열을 추출하고 싶으면 어떻게 할까요?
​

​
위처럼 주소 하나하나를 인덱싱해서 통합하는 방법도 있지만, 파이썬에서는 더 좋은 기능을 제공해줍니다. 바로 슬라이싱(Slicing)입니다
​
​
​

2)문자열의 슬라이싱(Slicing)

​

💡슬라이싱의 기본 구조:
    문자열명[시작 주소 : 끝 주소+1]

​
Slicing은 무엇인가를 "잘라낸다"는 의미입니다.
​
번거롭게 주소 하나하나를 일일이 인덱싱하여 통합하는 것이 아니라, 사용자가 선택한 범위 통쨰로 추출할 수 있는 것입니다. 다음처럼요
​

​
여기서 주의할 점은, 슬랑이싱에서 범위의 끝주소 입니다.
​
string[5:9] 의 의미는, string문자열의 5번주소 ~ 9번주소앞 까지 추출하라는 의미입니다.
그래서 만약 string[5:8]로 출력을 한다면, 8번 주소의 앞까지 추출되어 "les"가 추출되는 것이죠.
​
​
​

3)문자열 포매팅(Formatting)

​
만약 다음과 같은 문장들을 추출해야 한다고 가정해봅시다.
​

​
반복되는 구조를 가진 문자열들을 일일이 출력하는 것은 상당히 번거로울 것입니다.
이럴 때 문자열 안의 특정한 값만을 바꾸기만 하면 될 때 유용하게 쓰이는 것이 문자열 포매팅 기법입니다. 다음처럼요.
​

​
위처럼 변하는 특정한 값에 %d(정수형 포맷 코드)를 입력하고, 문자열 뒤에 %기호를 작성하고, 원하는 값을 작성하시면 됩니다.
그러면 다음과 같이 유지/보수가 굉장히 수월해짐을 알 수 있습니다!
​

​
꼭 숫자형만 포매팅할 수 있는 것은 아닙니다.
다음의 포맷코드 표를 보시고, 원하시는 자료형을 포매팅하시면 됩니다.

​
​
​

4)f문자열 포매팅(f-String Formatting)

​
파이썬 3.6 버전 부터는 f-문자열 포매팅을 사용할 수 있게 되었습니다. (3.6 미만 버전에서는 사용 불가하니 주의해 주세요!)
​
f 문자열 포매팅은 문자열 앞에 f접두사가 들어갑니다. 기본 용법은 다음과 같습니다.
​

  f-String Formatting
  ```python
      valiable_1 = "  "
      valiable_2 = "  "
      print(f"Hello, valiable_1 is {valiable_1}, and valiable_2 is {valiable_2}") 

​  
간단한 예시로 확인해보겠습니다.  
​




​  
이처럼, 문자열 포매팅과 f-문자열 포매팅 등을 통해 문자열을 보다 수월하기 관리할 수 있게 되었습니다!

​  
​  
​

### 5)문자열 관련 함수

문자열에 대한 기본적인 것들은 모두 알아보았으니, 이제 문자열에서 유용하게 쓰이는 함수에 대해 알아보겠습니다.

1\. 모든 문자 소문자화: **_문자열명.lower()_**
string = "Limitless Model" 
print(string.lower()) 
>>>limitless model

​  
2\. 모든 문자 대문자화: **_문자열명.upper()_**
string = "Limitless Model" 
print(string.upper()) 
>>>LIMITLESS MODEL

​  
3\. 문자열 길이 추출: **_len(문자열명)_**
string = "Limitless" 
print(len(string)) 
>>>9

​  
4\. 특정 문자 바꾸기: **_문자열명.replace(기존 문자, 대체 문자)_**
string = "Limitless Model" 
print(string.replace("Model", "Python")) 
>>>Limitless Python

​  
5\. 특정 문자 주소 추출: **_문자열명.index()_**
string = "Limitless" 
print(string.index("s")) #첫번째 s 주소 추출 
print(string.index("s", index + 1)) # 첫번째 s 다음으로 나오는 s 주소 추출 
>>>7 
>>>8

​  
6\. 특정 문자 출현 수 추출: **_문자열명.count()_**
string = "Limitless" 
print(string.count("s")) 
>>>2

```

​
​

저작자표시 (새창열림)

'언어) Python' 카테고리의 다른 글

[Python] Python 자료형(6): 집합(Set)형  (0) 2022.05.08
[Python] Python 자료형(5): 딕셔너리(Dictionary)형  (0) 2022.05.02
[Python] Python 자료형(4): 튜플(Tuple)형 (feat. 리스트형)  (0) 2022.05.01
[Python] Python 자료형(3): 리스트(List)형  (0) 2022.05.01
[Python] Python 자료형(1) 숫자(Number)형과 연산자  (0) 2022.04.28
    낭만개발자
    낭만개발자
    Learning By Doing!💪

    티스토리툴바