Python 06 문자열 포맷팅 및 관련 함수

김민호·2021년 8월 24일
0

Python

목록 보기
6/16
post-thumbnail

문자열 길이

len(문자열)

문자열 바꾸기

  • 문자열 자료형은 그 요솟값을 변경할 수 없는 immutable 자료형
  • 문자열 요솟값을 바꾸려면 슬라이싱을 통해 나누고 문자를 추가해야 함

문자열 포맷팅

  • %d 👉🏼 %5
print("I have %d books." %5)
  • %d 👉🏼 % number : 숫자값 변수 대입 가능
number = 10
print("I have %d books." % number)
  • %s 👉🏼 % "five
print("I have %s books." % "five")
  • 2개 이상의 값 넣기 가능 : % 한 번만 쓰고 () 안에 ,로 구분
number = 10
print("I have %d books, %s pencils, %d erasers." %(8, "nine", number))
#I have 8 books, nine pencils, 10 erasers.

포맷 코드와 숫자 함께 사용

  • "%전체길이s" %"문자열" : 전체 길이에 해당하는 문자열 공간에서 대입되는 문자열 값을 오른쪽으로 정렬하고 나머지는 공백으로 채움. 왼쪽정렬은 전체길이 앞에 -
print("%20s" % "hi")
# '                  hi'
print("%-20s" % "hi")
# 'hi                  '
  • "%전체길이.소수점 뒤에 나올 숫자의 갯수f" %부동소수
print("%10.4f" %5.12345678)
#'    5.1235' 
# 총 10칸 / 5번째자리에서 반올림 
# 5.1235가 6자리이기 때문에 전체길이가 0~6까지는 똑같은 값이 나오고 7부터 공백이 추가

format 함수를 사용한 포매팅

  • 숫자 대입
print("I eat {0} apples." .format(5))
# I eat 5 apples.

{0} 이 부분은 인덱스를 가리킴. 2개 이상일 때 0부터 1,2,3... 증가

  • 문자열 대입
print("I eat {0} apples." .format("ten"))
#I eat ten apples.
  • 변수 대입
number = 20
print("I eat {0} apples." .format(number))
#I eat 20 apples.
  • 2개 이상 가능(인덱스 사용)
number = 10
print("I have {0} books, {1} pencils, {2} erasers." .format(8, "nine", number))
# I have 8 books, nine pencils, 10 erasers.
  • 이름으로 넣기 가능
print("I eat {number} apples." .format(number=20))
#I eat 20 apples.
  • 인덱스+이름 혼용 가능

  • 오른쪽 정렬 : 화살표 뾰족한 방향으로 보낸다고 생각

print("{0:>10}".format("wow"))
#'       wow'
  • 왼쪽 정렬
print("{0:<10}".format("wow"))
#'       wow'
  • 가운데 정렬
print("{0:^10}".format("wow"))
# '   wow    '
  • 공백 채우기 : <,>,^ 바로 앞에 채울 문자
print("{0:=^10}".format("wow"))
# ===wow====
  • 소수점 표현 : 0은 인덱스
a = 5.12345678
print("{0:10.4f}".format(a))
#'    5.1235'
  • { 문자 그대로 표현하려면 {{ 두 번

f 문자열 포맷팅

name = "김민호"
print(f"제 이름은 {name}입니다")
#제 이름은 김민호입니다

age = 30
print(f"저는 내년에 {age+1}살이 됩니다")
#저는 내년에 31살이 됩니다
  • 문자열 앞에 f 접두사를 붙여서 사용
  • f 문자열 포맷팅은 표현식을 지원하기 때문에 문자열 안에서 변수와 +,- 수식 사용 가능
dict = {"name" : "김민호", "age" : "30"}
print(f'제 이름은 {dict["name"]}입니당. 현재 {dict["age"]}살 입니다.')
# 제 이름은 김민호입니당. 현재 30살 입니다.
  • 딕셔너리도 사용 가능

  • 정렬

print(f'{"wow":★<10}')
# wow★★★★★★★

print(f'{"wow":★>10}')
# ★★★★★★★wow

print(f'{"wow":★^10}')
# ★★★wow★★★★
  • 소수점 표현
a = 5.12345678
print(f'{a:10.4f}')
#    5.1235

문자열 관련 함수

  • 문자열.count('셀 문자') : 문자 개수 세기

  • 문자열.find('찾을 문자') : 문자가 처음으로 나온 위치 반환, 없으면 -1

  • 문자열.index('찾을 문자') : 문자가 처음으로 나온 위치 반환, 없으면 오류

  • "삽입할 문자".join('문자열')

print("+".join(['a', 'b', 'c', 'd']))
# a+b+c+d

리스트 원소들이 문자열로 합쳐짐

  • 문자열.upper() : 소문자를 대문자로

  • 문자열.lower() : 대문자를 소문자로

  • 문자열.lstrip() : 한 칸 이상의 연속된 왼쪽 공백 지우기

  • 문자열.rstrip() : 한 칸 이상의 연속된 오른쪽 공백 지우기

  • 문자열.strip() : 한 칸 이상의 연속된 양쪽 공백 지우기

  • 문자열.replace("A", "B") : A를 B로

  • 문자열.split() : 괄호 안에 아무것도 없으면 공백 기준으로 문자열 나눠줌
    문자열.split(':') : 이렇게 있으면 괄호 안의 값을 구분자로 해서 나눠줌

  • 문자열.islower() : 원본 문자열의 모든 문자가 소문자이면 True

  • 문자열.isupper() : 원본 문자열의 모든 문자가 대문자이면 True

  • 문자열.islittle() : 단어 첫 문자만 대문자, 나머지 소문자이면 True

  • 문자열.isalpha() : 원본 문자열의 모든 문자가 음절, 혹은 음소이면 True

  • 문자열.isdecimal() : 원본 문자열의 모든 문자가 숫자이면 True

  • 문자열.isalnum() : 원본 문자열의 모든 문자가 음절 or 음소 or 숫자이면 True

  • 문자열.isspace() : 원본 문자열의 모든 문자가 공백 문자일 때 True

  • 변수 =input(출력할 문자열) : 전달받은 객체를 문자열로 형변환해 반환

profile
개발자로서의 삶은 https://velog.io/@maxminos 에서 기록하고 있습니다 😀

0개의 댓글