ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] f 문자열 포매팅 (f-string formatting)
    Today's/DevelopStory 2021. 6. 16. 02:04

    문자열 포매팅이란, 문자열 안에 어떤 값이나 변수 따위를 삽입하는 방법을 말한다.
    그 중에서도 f 문자열 포매팅 (이하 f-sting) 은 파이썬 3.6 버전 이후에 등장한 기능이다.

    f-string 의 사용 방법을 간단하게 표현한다면 f 와 {중괄호}다.

    기본적으로 따옴표를 사용하여 나타낸 문자열 앞에 f 접두사를 붙이는 것으로 사용한다.
    그리고 해당 문자열 안에 값이나 변수를 삽입하려는 부분을 {중괄호} 로 감싸주는 방식이다.

    예시:

    def roket_runch_count_down(number):
    	if number < 0:
        	return print("로켓 발사!!")
    	print(f"로켓 발사 {number}초 전...")
        roket_runch_count_down(number - 1)
        
    roket_runch_count_down(10)
    
    -----------------------------------------
    로켓 발사 10초 전...
    로켓 발사 9초 전...
    로켓 발사 8초 전...
    로켓 발사 7초 전...
    로켓 발사 6초 전...
    로켓 발사 5초 전...
    로켓 발사 4초 전...
    로켓 발사 3초 전...
    로켓 발사 2초 전...
    로켓 발사 1초 전...
    로켓 발사 0초 전...
    로켓 발사!!

     

    ※ f-string 사용 방법 몇가지

     1. 정렬

    f'{"left":<10}'    # 'left      '
    f'{"center":^10}'  # '  center  '
    f'{"right":>10}'   # '     right'

     구조를 살펴보면 다음과 같다.
     중괄호 안에서 콜론(:) 을 통해 정렬하고자 하는 방향을 입력한다.
     입력방식 : < 왼쪽, ^ 가운데, > 오른쪽 정렬이다.
     뒤의 숫자는 문자열 전체 길이를 뜻 한다.
     왼쪽 정렬 예시를 보면 문자열 전체 길이 10자 중, l,e,f,t 4자를 왼쪽으로 정렬하고 나머지 6자를 공백처리된다.
     가운데 정렬의 경우 문자열 좌, 우로 남은 문자열 길이를 골고루 분배하여 공백처리된다.
     만약 남은 문자열이 홀수라면 오른쪽에 삽입되는 공백이 1칸 더 많다.

    f'{"가운데":★^10}'    # '★★★가운데★★★★'

     위와 같이 남은 여백을 다른 문자로 채우기도 가능하다.

     2. 소수점

    pi = 3.141592653589
    print(f'{pi:10.10f}')  # '3.1415926536'
    pi = 3.141592653589
    print(f'{pi:10.4f}')   # '    3.1416'
    pi = 3.141592653589
    print(f'{pi:10.2f}')   # '      3.14'
    pi = 3.141592653589
    print(f'{pi:.4f}')     # '3.1416'

     위 예시의 10.4에서 10은 문자열 총 자리수를 뜻 한다.
     문자열의 길이에는 소수점(.)도 포함한다.
     만약 소수점 자리가 문자열 자리를 초과하는 경우에는 지정한 소수점 자리수를 우선한다.
     문자열 길이를 따로 지정하지 않을 때, 즉 0은 생략해도 무방하다.

     3. 중괄호 문자로 출력

    f'{{중괄호}}'  # {중괄호}

     위 예시처럼 중괄호를 문자열에 출력하고자 할 때에는 중괄호를 두번 사용하면 된다.

    'Today's > DevelopStory' 카테고리의 다른 글

    [React] redux module 예시  (0) 2021.07.06
    [JavaScript] promise  (0) 2021.07.04
    [Python]내장함수 : replace  (0) 2021.06.17
    [Python] 내장 함수 : map  (0) 2021.06.15
    [Python] while  (0) 2021.06.13

    댓글

Designed by Tistory.