세조목

PYTHON 정리(점프투파이썬 - 문자열)(23.12.30) 본문

데이터 분석 공부/Python

PYTHON 정리(점프투파이썬 - 문자열)(23.12.30)

세조목 2023. 12. 30. 21:01
  • 본 내용들은 PYTHON을 공부하면서 차후 제가 복습하기위해 정리해놓은 것으로 제가 새롭게 알게된 내용들만을 정리하였습니다. 또한 배움이 부족하여 미처 다 파악하지 못한 부분들도 많으니 혹시나 이 포스팅을 보시는 분들께서는 다른 포스팅, 도서, 강의도 함께 참고하시기 바라겠습니다.

 

※ 점프 투 파이썬 'format 함수를 사용한 포매팅' ~ 2-2 끝까지
※  점프투파이썬을 보며 학습하되 예시 코드를 새롭게 작성해보면서 포스팅했습니다.
 

format 함수를 사용한 포매팅

포매팅 = 문자열 안에 어떤 값을 삽입하는 방법
 

포매팅 時 format 함수를 활용할 수 있다.

  1. 숫자 대입
  2. 문자열 대입
  3. 숫자 값을 가진 변수 대입
  4. 2개 이상의 값 넣기
  5. 이름으로 넣기
  6. 인덱스와 이름을 혼용해서 넣기
  7. 정렬(왼쪽, 오른쪽, 가운데)
  8. 공백 채우기
  9. 소수점 표현하기
  10. 중괄호 표현하기

1. 숫자 대입

"I eat {0} strawberries".format(3)

>>> "I eat 3 strawberries"

 

2. 문자열 대입

"Henry's favorite music genre is {0}.". format("Rock & Roll")

>>'Henry's favorite music genre is Rock & Roll.'

 

3. 숫자 값을 가진 변수 대입

number = 3
"My mom have {0} sister". format(number)

>>> 'My mom have 3 sister'

 

4. 2개 이상의 값 넣기

number = 365
day = "Thursday"

"A year have {0} days and I like {1} most.". format(number, day)

>>> 'A year have 365 days and I like Thursday most.'

 

5. 이름으로 넣기

"A year have {number} days and I like {day} most.". format(number=365, day="Thursday")

>>> 'A year have 365 days and I like Thursday most.'

 

6. 인덱스와 이름을 혼용해서 넣기

"A year have {0} days and I like {day} most.". format(365, day="Thursday")

>>> 'A year have 365 days and I like Thursday most.'

 

7. 정렬(왼쪽, 오른쪽, 가운데)

정렬 기본 문법은 아래와 같다.
"{0: n}".format("문자열" or 숫자)
여기서 왼쪽 정렬이냐, 오른쪽 정렬이냐, 가운데 정렬이냐에따라서 '0:' 뒤에 붙는 기호가 달라진다.
 

● 왼쪽 정렬

"{0:<n}".format("문자열" or 숫자)
n에는 전체 문자열의 길이가 들어감

"{0:<5}".format("hi")

>>> 'hi   '

 

● 오른쪽 정렬

"{0:>n}".format("문자열" or 숫자)
n에는 전체 문자열의 길이가 들어감

"{0:>8}".format("why")

>>> '     why'

 

●  가운데 정렬

"{0:^n}".format("문자열" or 숫자)
n에는 전체 문자열의 길이가 들어감
※ 0은 생략 가능

"{0:^13}".format(235)

>>> '     235     '

 

8. 공백 채우기

공백을 내가 원하는 문자 값으로 채워 넣을 수 있다.
정렬에서 사용했던 문법을 그대로 가져오면 되는데
' : ' 뒤에 넣고자 하는 값을 추가해주면 된다.
예시는 아래와 같다.

"{0:ㅑ<10}".format("hi")
>>> 'hiㅑㅑㅑㅑㅑㅑㅑㅑ'

"{0:e>8}".format(12)
>>> 'eeeeee12'

"{0:3^15}".format(876)
>>> '333333876333333'

 

9. 소수점 표현하기

format 함수를 활용해서 소수점도 지정할 수 있다.

"{0:0.4f}".format(7.312356)
>>> 7.3124

 
이때 콜론 뒤에 오는 숫자의 정수 부분은 문자열의 길이를 지정해주는 부분이다.

"{0:10.4f}".format(7.312356)
>>> '    7.3124'

 
참고로 소수점 자리수를 지정해주면 소수점 이하의 숫자는 반올림이 적용된다.
 

10. 중괄호 표현하기

format 함수를 활용해서 포매팅할 때 문자열을 중괄호에 넣고싶다면 중괄호를 2개 연속 적어주면된다.

"{{Find Me}}".format()
>>> '{Find Me}'

 

11. 콜론 앞 숫자 0 생략

콜론 앞 숫자 0은 생략이 가능하다.

다만 문자열을 여러개 출력해야할 때는 순서를 지정해줘야하기때문에 생략하면 안 된다.

print("{:<10}".format("A"))
>>> 'A         '

print("{0:<10}{1:>5}".format("A", "B"))
>>> 'A             B'

 

문자열 포매팅(아래 포스팅 마지막 순서에 有)

2023.12.29 - [데이터 분석 공부/Python] - PYTHON 정리(23.12.29)(정렬과 공백, 소수점 표현)

 

PYTHON 정리(23.12.29)(정렬과 공백, 소수점 표현)

점프 투 파이썬 1. 정렬과 공백 "%15s" % "hi" ' hi' %와 숫자를 결합하면 문자열을 정렬하고 공백을 지정할 수 있다. 먼저 %15s의 경우 전체 길이가 15개인 문자열 공간에 대입되는 값을 오른쪽으로 정

eyeoftheworld1209.tistory.com

 

문자열 관련 함수

문자열 자료형은 자체적으로 함수를 가지고 있는데 이를 내장함수라고한다.

  1. count('세아리고자하는 문자')
  2. find('몇 번째에 위치해있는지 알고자하는 문자')
  3. index('몇 번째에 위치해있는지 알고자하는 문자')
  4. " ".join('문자열')
  5. upper()
  6. lower()
  7. lstrip()
  8. rstrip()
  9. strip()
  10. replace()
  11. split()

1. count('세아리고자하는 문자')

a = "tomato"
a.count("t")
>>> 2

b = "banana"
b.count("a")
>>> 3

 

2. find('몇 번째에 위치해있는지 알고자하는 문자')

찾고자하는 문자가 처음으로 나온 위치를 반환한다.

a = "christmas tree"
a.find("t")
>>> 5

b = "kimkwangsuk street"
b.find("w")
>>> 4

c = "I love you"
c.find("k")
>>> -1

 ※ counting은 0부터 시작한다는 점을 항상 잊어서는 안 된다.
 ※ 찾고자하는 값이 문자열에 없을 경우 -1을 반환한다.
 

3. index('몇 번째에 위치해있는지 알고자하는 문자')

find함수와 동일하나 한 가지 차이점이 있는데
index함수는 찾고자하는 값이 문자열에 없으면 아래와 같이 오류 메시지가 출력된다는 것이다.

a = "Everytime I think about you"
a.index('w')

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found

 

4. " ".join('문자열')

괄호 안에 들어있는 문자열의 문자 사이 사이에 따옴표 안에 있는 문자를 넣어주는 함수이다.
join함수는 리스트나 튜플도 입력으로 사용할 수 있는데 만약 ""(or '')으로 둔다면
리스트나 튜플에 있는 모든 값들을 하나로 합칠 수 있다.

"-".join("qwerty")
>>> 'q-w-e-r-t-y'

 

5. upper()

소문자를 모두 대문자로 바꿔주는 내장함수다.

a = "qwer"
a.upper()
>>> 'QWER'

 

6. lower()

대문자를 모두 소문자로 바꿔주는 내장함수다.

a = "BADwqer"
a.lower()
>>> 'badwqer'

 

7. lstrip()

왼쪽 공백을 지우는 내장함수다.

a = "     apple   "
a.lstrip()
>>> 'apple   '

 

8. rstrip()

오른쪽 공백을 지우는 내장함수다.

a = "     apple   "
a.rstrip()
>>> '     apple'

 

9. strip()

양쪽 공백을 모두 지우는 내장함수다.

a = "     apple   "
a.strip()
>>> 'apple'

 

10. replace()

문자열을 바꿔주는 내장함수다.
구성은 변수명.replace("기존 문자", "바꾸고싶은 문자") 이다.

a = "Don't turn on the mega central office tower"
a.replace("mega", "ultra")

>>> 'Don't turn on the ultra central office tower'

 

11. split()

문자열을 나눠주는 내장함수다.
괄호 안에 아무 값도 넣어주지 않으면 공백을 기준으로 나누어주고, 값이 있을 경우 값을 구분자로 해서 나누어 준다.

a = "Let's find the most delicious food"
a.split()
>>> ['Let's', 'find', 'the', 'most', 'delicious', 'food']

b = "1983-03-12"
b.split("-")
>>> ['1983', '03', '12']

 


 
문자열은 자체의 값을 변경할 수 없는 immutable 자료형이다.
이게 무슨 말이냐하면
내장함수를 사용해서 기존 문자열을 수정했다하더라도 문자열이 지정된 변수를 입력하면 다시 원래 문자열이 출력된다.
아래와 같이 말이다.

a = "weer"
a.upper()
>>> 'WEER'

print(a)
>>> 'weer'

 
그래서 바뀐 문자열을 계속해서 사용하고싶을때는 원래 변수명에 바뀐 문자열을 다시 지정해주어야한다.
아래와 같이 말이다.

a = "weer"
a = a.upper()
print(a)
>>> 'WEER'