본문 바로가기

프로그래밍/[Python] 파이썬

[Python] 문자열 포맷팅 f-string 활용 - 파이썬 문법

by GenieIT* 2024. 9. 4.

728x90
728x90

 

1. 파이썬 f함수란? (f-string)

Python의 f-string은 문자열 포맷팅을 간편하게 할 수 있는 방법 중 하나입니다. f-string은 Python 3.6부터 도입된 기능으로, 문자열 앞에 f를 붙여서 사용합니다.

  • 직관적인 문법 : {} 안에 변수를 넣거나, 표현식을 직접 쓸 수 있습니다.
  • 포맷 지정 : 숫자나 날짜 포맷을 지정 가능 합니다.
  • 표현식 사용 가능 : 복잡한 표현식도 {} 안에 넣을 수 있습니다.

 

 

1-1. 변수 사용법

name = "밤비"

ouput = f"제 이름은 {name} 입니다."

print(ouput) # 제 이름은 밤비 입니다.

 

1-2. 수식 사용법

a = 1000
b = 2000

print(f"두 수의 덧셈 결과는 {a+b} 입니다.")
print(f"두 수의 뺄셈 결과는 {b-a} 입니다.")
print(f"두 수의 곱셈 결과는 {a*b} 입니다.")
print(f"두 수의 나눗셈 결과는 {b/a} 입니다.")
print(f"두 수의 나눗셈 몫 결과는 {b//a} 입니다.")
print(f"두 수의 나눗셈 나머지 결과는 {b%a} 입니다.")


'''
실행결과
두 수의 덧셈 결과는 3000 입니다.
두 수의 뺄셈 결과는 1000 입니다.
두 수의 곱셈 결과는 2000000 입니다.
두 수의 나눗셈 결과는 2.0 입니다.
두 수의 나눗셈 몫 결과는 2 입니다.
두 수의 나눗셈 나머지 결과는 0 입니다.
'''

 

 

1-3. 정렬 사용법 (좌, 우, 가운데 정렬 및 특정 문자 채우기)

아래 예시 코드는 문자열 10자리를 기준으로 작성한 예시입니다. 부등호를 정렬하고자 하는 방향으로 생각하면 기억하기 쉽습니다. 또한 예시에서는 정렬 후에 특정 문자를 채우는 예시도 있는데, 별표를 예시로 넣었으나 다른 문자로 채우는 형식도 가능합니다. 다른 언어에서 사용하는 LPAD, RPAD 역할을 한다고 생각하시면 쉽습니다.

name = "밤비"

left = f"{name:<10}"
print(left)

right = f"{name:>10}"
print(right)

center = f"{name:^10}"
print(center)

left = f"{name:*<10}"
print(left)

right = f"{name:*>10}"
print(right)

center = f"{name:*^10}"
print(center)


'''
실행 결과
밤비        
        밤비
    밤비    
밤비********
********밤비
****밤비****
'''

 

1-4. 소숫점 반올림 사용법

소숫점소수점 반올림에 대해 간략하게 설명하자면, 소수점 앞에 자리는 반올림 후 전체 자릿수를 의미하고 뒷자리는 반올림 자릿수를 의미합니다. 아래 코드 예시는 어떤 식으로 변화하는지 보여드리는 예시입니다. 

number = 1.1264

print( f'{number:.2f}' )
print( f'{number:1.2f}' ) 
print( f'{number:2.2f}' )
print( f'{number:3.2f}' )
print( f'{number:4.2f}' )
print( f'{number:5.2f}' )
print( f'{number:6.2f}' )
print( f'{number:7.2f}' )


'''
실행 결과
1.13
1.13
1.13
1.13
1.13
 1.13
  1.13
   1.13
'''

 

아래 예시는 소숫점 반올림 후 좌, 우, 가운데 정렬의 빈 곳을 특정 문자('0')로 채우는 예시입니다. 

number = 1.1264

print("왼쪽 정렬 공백 0 채우기")
print( f'{number:0>.2f}' )
print( f'{number:0>1.2f}' ) 
print( f'{number:0>2.2f}' )
print( f'{number:0>3.2f}' )
print( f'{number:0>4.2f}' )
print( f'{number:0>5.2f}' )
print( f'{number:0>6.2f}' )
print( f'{number:0>7.2f}' )

'''
왼쪽 정렬 공백 0 채우기
1.13
1.13
1.13
1.13
1.13
01.13
001.13
0001.13
'''


print("오른쪽 정렬 공백 0 채우기")
print( f'{number:0<.2f}' )
print( f'{number:0<1.2f}' ) 
print( f'{number:0<2.2f}' )
print( f'{number:0<3.2f}' )
print( f'{number:0<4.2f}' )
print( f'{number:0<5.2f}' )
print( f'{number:0<6.2f}' )
print( f'{number:0<7.2f}' )

'''
오른쪽 정렬 공백 0 채우기
1.13
1.13
1.13
1.13
1.13
1.130
1.1300
1.13000
'''


print("가운데 정렬 공백 0 채우기")
print( f'{number:0^.2f}' )
print( f'{number:0^1.2f}' ) 
print( f'{number:0^2.2f}' )
print( f'{number:0^3.2f}' )
print( f'{number:0^4.2f}' )
print( f'{number:0^5.2f}' )
print( f'{number:0^6.2f}' )
print( f'{number:0^7.2f}' )

'''
가운데 정렬 공백 0 채우기
1.13
1.13
1.13
1.13
1.13
1.130
01.130
01.1300
'''

 

 

1-5. 날짜 포맷 사용법

from datetime import datetime

now = datetime.now()

print(now) #현재시각

formatted_date = f"오늘 날짜는 {now:%Y-%m-%d}입니다."
formatted_time = f"현재 시간은 {now:%H:%M:%S}입니다."
formatted_datetime = f"현재 날짜와 시간은 {now:%Y-%m-%d %H:%M:%S}입니다."

print(formatted_date)
print(formatted_time)
print(formatted_datetime)

'''
실행 결과
2024-09-04 15:10:03.627000
오늘 날짜는 2024-09-04입니다.
현재 시간은 15:10:03입니다.
현재 날짜와 시간은 2024-09-04 15:10:03입니다.
'''

 

 

 

728x90