본문 바로가기
개발자모드/혼자공부하는파이썬

[파이썬#08] 숫자와 문자열의 다양한 기능 - format() 함수, 대소문자변환, 공백제거, 문자열찾기, 문자열자르기

by 요니L 2022. 6. 29.

 

 


문자열의 format() 함수

format() 함수는 문자열이 가지고 있는 함수이다. 중괄호{}를 포함한 문자열 뒤에 마침표(.)를 찍고 format함수를 사용하는데 중괄호 개수와 format 함수 괄호 안의 매개변수의 개수는 반드시 같아야 한다. 

 

예)

"{}".format(10)

"{} {}".format(10, 20)

"{} {} {}".format(10, 20, 30)

 

 

↘format() 함수로 숫자를 문자열로 변환하기

string_a = "{}".format(10)

print(string_a)
print(type(string_a))

[실행결과]

 

format 함수는 {} 기호를 format의 괄호 안에 있는 매개변수로 대체하는 것이기 때문에 {}기호 앞뒤 혹은 {}기호와 {}기호 사이에 다양한 문자열을 넣을 수 있다.

 

↘format() 함수의 다양한 형태

format_a = "{} 억".format(100)
format_b = "파이썬 열공하여 첫 연봉 {}억 만들기 ".format(100)
format_c = "{} {} {}".format(3000, 4000, 5000)
format_d = "{} {} {}".format(1, "문자열", True)

print(format_a)
print(format_b)
print(format_c)
print(format_d)

[실행결과]

format_d의 경우 숫자 이외의 자료형에도 적용할 수 있다는 것을 보여주고 있다. 

 

↘IndexError 예외

{} 기호의 개수가 format() 함수의 매개변수 개수보다 많으면 IndexError 예외가 발생한다. 

매개변수가 {}보다 많은 경우는 {} 개수만큼 적용되고 나머지 매개변수는 버려지면서 정상 실행되지만 그 반대인 경우는 IndexError라는 예외가 발생한다.

 


format() 함수의 다양한 기능

↘정수 출력의 다양한 형태 [:d]

#정수
output_a = "{:d}".format(52)

#특정 칸에 출력하기
output_b = "{:5d}".format(52)  #→ int자료형의 정수를 출력, 매개변수 정수만 가능
output_c = "{:10d}".format(52)

#빈칸을 0으로 채우기
output_d = "{:05d}".format(52) 
output_e = "{:05d}".format(-52)

print(output_a)
print(output_b)
print(output_c)
print(output_d)
print(output_e)

[실행결과]

 

#기호와 함께 출력하기
output_f = "{:+d}".format(52)
output_g = "{:-d}".format(-52)
output_h = "{: d}".format(52) #→ 기호 부분 공백
output_i = "{: d}".format(-52) #→ 기호 부분 공백

print(output_f)
print(output_g)
print(output_h)
print(output_i)

[실행결과]

{: d}처럼 d 앞에 공백을 두면 양수의 경우에 기호 위치를 공백으로 비워둔다. 

 

#조합하기
output_h = "{:+5d}".format(52) #→ 기호를 뒤로 밀기(양수)
output_i = "{:+5d}".format(-52) #→ 기호를 뒤로 밀기(음수)
output_j = "{:=+5d}".format(52) #→ 기호를 앞으로 밀기(양수)
output_k = "{:=+5d}".format(-52) #→ 기호를 앞으로 밀기(음수)
output_l = "{:+05d}".format(52)  #→ 0으로 채우기(양수)
output_m = "{:+05d}".format(-52) #→ 0으로 채우기(양수)

print(output_h)
print(output_i)
print(output_j)
print(output_k)
print(output_l)
print(output_m)

[실행결과]

기호와 공백을 조합할 때는 (=) 기호를 앞에 붙일 수 있다. 

 

 

↘부동 소수점 출력의 다양한 형태 [:f]

소수점이 들어가는 float 자료형의 숫자에 대해서 알아보자. float 자료형 출력을 강제로 지정할 때는 [:f]를 사용한다.

output_a = "{:f}".format(52.273) 
output_b = "{:15f}".format(52.273) #→ 15칸 만들기
output_c = "{:+15f}".format(52.273) #→ 15칸에 부호 추가
output_d = "{:+015f}".format(52.273) #→ 15칸에 부호 추가하고 0으로 채우기

print(output_a)
print(output_b)
print(output_c)
print(output_d)

[실행결과]

 

추가로 부동 소수점의 경우 소수점 아래 자릿수를 지정할 수 있다. 

output_a = "{:15.3f}".format(52.273)
output_b = "{:15.2f}".format(52.273)
output_c = "{:15.1f}".format(52.273)
print(output_a)
print(output_b)
print(output_c)

[실행결과]

매개변수의 소수점 아래 자릿수 보다 작게 출력할 경우 반올림이 일어난다. 

 

 

↘의미 없는 소수점 제거하기 [:g]

파이썬은 0과 0.0을 출력했을 때 내부적으로 자료형이 다르므로 서로 다른 값을 출력한다. 그런데 의미 없는 0을 제거한 수 출력하고 싶은 때는 [:g]를 사용하면 된다.

output_a = 52.0
output_b = "{:g}".format(output_a)

print(output_a)
print(output_b)

[실행결과]

 


대소문자 바꾸기: upper() 와 lower()

↘upper() : 문자열의 알파벳을 대문자로 변환

a = "Hello bts"
a.upper()

[실행결과]

 

↘lower(): 문자열의 알파벳을 소문자로 변환

a = "Hello BTS"
a.lower()

[실행결과]

※ upper() 함수와 lower() 함수를 사용하더라도 a 원본은 변하지 않는다. 

 

 

 


문자열 양옆에 공백 제거하기: strip()

↘strip() : 문자열 양옆에 공백 제거

↘lstrip() : 왼쪽의 공백을 제거

↘rstrip() : 오른쪽의 공백을 제거

 

input_a = """
안녕하세요
공백제거 테스트입니다
"""
print(input_a)

[실행결과]

문자열 위아래에 의도치 않게 줄바꿈이 들어가게 된다. 이럴 경우 strip() 함수로 쉽게 제거할 수 있다. 

 

print(input_a.strip())

[실행결과]

 

 


문자열 구성 파악하기: isOO()

문자열이 소문자로만 구성되어져 있는지, 알파벳으로만 구성되어져 있는지, 숫자로만 구성되어져 있는지 등을 확인할 때는 is로 시작하는 이름의 함수를 사용한다. 

 

↘isalnum() : 문자열이 알파벳 또는 숫자로만 구성되어져 있는지 확인

isalpha() : 문자열이 알파벳으로만 구성되어져 있는지 확인 

isidentifier() : 문자열이 식별자로 사용할 수 있는 것인지 확인 

isdecimal() : 문자열이 정수 형태인지 확인 

isdigit() : 문자열이 숫자로 인식될 수 있는 것인지 확인

isspace() : 문자열이 공백으로만 구성되어져 있는지 확인

islower() : 문자열이 소문자로만 구성되어져 있는지 확인

isupper() : 문자열이 대문자로만 구성되어져 있는지 확인

 

print("BTS7".isalnum())
print("BTS7".isalpha())
print("BTS7".isidentifier())
print("BTS7".isdecimal())
print("BTS7".isspace())
print("BTS7".islower())
print("BTS7".isupper())

[실행결과]

 

 


문자열 찾기: find()와 rfind()

문자열 내부에 특정 문자가 어디에 위치하는지 확인할 때 find() 함수와 rfind() 함수를 사용한다.

 

↘find() : 왼쪽부터 찾아서 처음 등장하는 위치를 찾는다. 

rfind() : 오른쪽부터 찾아서 처음 등장하는 위치를 찾는다.

 

output_a = "안녕안녕하세요".find("안녕")
print(output_a)

output_b = "안녕안녕하세요".rfind("안녕")
print(output_b)

[실행결과]

※ 문자열은 0번째부터 시작한다.

 


문자열과 in 연산자

문자열 내부에 어떤 문자열이 있는지 확인하려면 in 연산자를 사용한다. 출력은 True / false 로 나온다.

print("안녕" in "안녕하세요")
print("잘자" in "안녕하세요")

[실행결과]

 


문자열 자르기: split()

 

문자열을 특정한 문자로 자를 때는 split() 함수를 사용한다.

a = "10 20 30 40 50".split(" ")
print(a)

[실행결과]

 

여기까지.

댓글