Python

[Python] 문자열 형식화, 문자열 함수

SangRok Jung 2022. 8. 24. 17:53
반응형

문자열 형식화


▶ 문자열 형식화

문자열 의미
%d 정수
%s 문자열
%f 부동소수점 실수
%202 전체 20칸을 차지하는 문자열(공백을 앞에 붙인다.)
%-10d 전체 10칸을 차지하는 숫자 (공백을 뒤에 붙인다.)
%.5f 부동소수점의 소수점 아래 5자리 가지 표지

* %s 는 숫자도 받는다.

age = 20
print("안녕하세요 내 나이는 %d살 입니다." % age)

 

▷ 여러개의 값을 문자열 안에 넣어야 할 경우 % 뒤의 값을 소괄호로 감싸 주어야 한다.

year = 2022
month = 9
day = 5
print("%d-%02d-%02d" % (year, month, day))

 

▷ 부동 소수점

height = 172.5

print("내 키는 %f 입니다." % height)

 

▷ 정수, 소수, 문자열 출력.

e = 3

print("I have %d children" % 3)
print("I have %s children" % "three")
print("I have %d children" % e)
print("I have %f children %s" % (3.14, "wow"))

 

# This is 100% True!
print("This is %d%% True!" % 100)

# 전체 자릿수 + 우측, 좌측 정렬
print("%10s" % "good)
print("%-10s" % "good)


# 소수점 자릿수 정의
pi = 3.141592
print("%.2f" % pi)

# 전체 자릿수 정의
print(f"{pi:<20}")

 

 

 

 

 

▶ format 메서드를 사용한 문자열 형식화

format 메서드를 사용하여 %기호로 시작하는 형식지정 문자열 대신 {} 기호를 사용한다.

또한 자료형을 표시할 필요가 없다.

 

print("이름 : {name}, 나이 : {age}, 시력 : {eyesight}".format(name = "최시연" ,age = 33, eyesight = 1.5))

 

▷ format방식에서 공백의 크기를 지정하거나 부동소수점의 소수점 아래 숫자를 지정 할 때는 {} 안에 : 기호를 넣고 그 뒤에 고급 형식 지정 문자열을 넣는다. : 뒤에 오는 숫자는 공백의 크기를 뜻한다. <는 값을 앞쪽으로 붙이고 공백을 뒤로, >는 값을 앞으로 공백을 뒤로 붙인다. 소수점 자릿수를 지정 할 떄는 . 과 숫자 그리고 f를 사용한다. ,기호를 넣으면 1000단위 마다 붙이는 쉼표를 붙인다.

문자열 의미
{:>10} 전체 10칸을 차지하며 공백을 앞에 붙인다.(문자열을 오른쪽에 붙여서 출력)
{:<10} 전체 10칸을 차지하며 공백을 뒤에 붙인다.(문자열을 왼쪽에 붙여서 출력)
{:^10} 전체 10칸을 차지하며 공백을 앞뒤에 붙인다. (문자열을 중앙에 붙여서 출력)
{:.5f} 부동소수점의 소수점 아래 5까지 표시
{:,} 천단위 쉼표 표시
{:*>10} 전체 10칸을 차지하며 "*"을 앞에 붙인다.(문자열을 오른쪽에 붙여서 출력)
{:*<10} 전체 10칸을 차지하며 "*"을 뒤에' 붙인다.(문자열을 왼쪽에 붙여서 출력)
{:*^10} 전체 10칸을 차지하며 "*"앞뒤에 붙인다.(문자열을 중앙에 붙여서 출력)

 

 

print("This is %d%s True!" % (100, "%"))
print("This is %d%% True!" % 100)

# 전체 자릿수 + 우측, 좌측 정렬
print("%10s" % "good)
print("{:>10}".format("good"))
print("%-10s" % "good)
print("{:<10}".format("good"))

# 소수점 자릿수 정의
pi = 3.141592
print("{:.2f}".format(pi))
print("%.2f" % pi)

# 전체 자릿수 정의
print(f"{pi:<20}")
print("I have {} children".format(3))
print("I have {} children".format("three"))
print("I have {g} children".format(g = 3))
print("I have {g} children {a}".format(g = 3, a = "wow"))
print("I have {0} children {1}".format(3, "wow"))

# I have 3 children
# I have three children
# I have 3 children
# I have 3 children wow

 

▷ 좌측 정렬, 우측 정렬, 가운데 정렬

print("{:<20}".format("good"))
print("{:>20}".format("good"))
print("{:^20}".format("good"))
print("{:*^20}".format("good"))

# good                
#                 good
#         good
# ********good********

 

a = 4.5560
b = 'Argentine Pesos'
c = 1

print('{0:.2f} {1}are worth US{2}$'.format(a, b, c))
# 4.56 Argentine Pesosare worth US1$

 

▷ {} 회피

print("{{우리집}}에 {} 놀러와요".format("자주"))
#{우리집}에 자주 놀러와요

 

 

▶ f 문자열 형식화

파이썬 3.6부터 f-string이라는 것을 사용 할 수 있다.

f문자열은 문자열 앞에 f글자를 붙인 문자열이다.

f문자열에서는 {}안에 변수의 이름을 바로 사용 할 수 있다.

a = 3
b = 'wow'
print(f"I have {a} children {b}")
# I have 3 children wow
a = 3
b = 'wow'
good = "{good}{day}"
print(f"I have {a} children {b}")
print(f"I have {a+2} children {b}")
print(f"{good}")

# I have 3 children wow
# I have 5 children wow
# {good}{day}

 

 

 

 

 

문자열 함수


메서드 설명
str.format() 문자열 포멧팅하기
str.count() 문자열 개수 반환
str.find() 문자열 내부의 특정 문자 인덱수 반환
str.upper() 문자열 대문자로 반환
str.lower() 문자열 전체 소문자로 반환
str.replace() 문자열 내부의 특정 문자열 수정
str.split 문자열 분리
str.isspace() 문자열 공백있는치 확인
str.lstrip() 문자열 끝에 있는 좌측 공백 제거
str.rstrip() 문자열 끝에 있는 우측 공백 제거
str.strip() 문자열 양쪽 끝의 공백 제거

 

sa = "Korean culture"

print(sa.count("u"))
print(sa.find("K"))
print(sa.index("K"))
print(" ".join(sa))
print(",".join("123456789"))

# 2
# 0
# 0
# K o r e a n   c u l t u r e
# 1,2,3,4,5,6,7,8,9

 

sa = "Korean culture"

print(sa.upper()) #대문자로
print(sa.lower()) #소문자로
print('   korean   '.strip()) 	# 양쪽 끝 공백 제거
print('   korean   '.lstrip())				# 좌측 끝 공백 제거
print('   korean   '.rstrip())				# 우측 끝 공백 제거
print(sa.replace("Korean", "American"))		# 문자열 수정
print(sa.split(" "))						# 문자열 자르기
print("Korean & culture".replace(" ", "").split("&")) # 공백제거 후 문자열 자르기

# KOREAN CULTURE
# korean culture
# korean
# korean   
#    korean
# American culture
# ['Korean', 'culture']
# ['Korean', 'culture']

 

 

 

 

▶ 종합 예제

# C:\nano 출력하기
print("C:/nano")

# 주민번호 앞쪽 뒤쪽 출력
IU = "990316-2030998"
print(IU[:6])
print(IU[-7:])

# replace()
print("a:b:c:d".replace(":", "@"))

# split()
print("a&b&c&d".split("&"))

# 타입변환
print(int("720"))
print(str(100))

# 홀만 출력한다.
game = "짝홀짝홀짝홀"
print(game[1::2])
print(game[len(game)-1])

# Slicing
PN = "010-1234-5678"
print(PN[0:3], PN[4:7], PN[9: ])
print(PN.replace("-", ""))


# com만 출력하라.
add = "http//s:www.samsung.com"
print(add[add.find("com"):])
print(add[-3:]

# C:\nano
# 2
# a@b@c@d
# ['a', 'b', 'c', 'd']
# 720
# 100
# 홀
# 01012345678
# 01012345678
# com

 

반응형

'Python' 카테고리의 다른 글

[python] 반복문 for  (0) 2022.08.26
[python] 조건문 if  (0) 2022.08.25
[Python] Tuple(튜플)  (0) 2022.08.24
[Python] Set(집합)  (0) 2022.08.24
[Python] Dictionary(사전)  (0) 2022.08.24