본문 바로가기
파이썬 - Python

[Python] 파이썬 f-string, python f-string

by devscb 2022. 3. 14.
반응형

[Python] 파이썬 f-string, python f-string



파이썬은 텍스트 문자열을 포맷하는 여러 가지 방법을 지원합니다.
여기에는 %포맷팅, str.format () string.Template이 있습니다.
이 방법들은 각각 장점이 있지만, 그 외에도 실전에서 사용하기 번거로워지는 단점이 있습니다.
이를 개선하기 위해 파이썬에서는 f-string 이 도입되었습니다.
f-string은 실제로 상수값이 아닌 런타임에 계산되는 값입니다.

f-string 사용법


"" 또는 '' 로 감싸진 문자열 앞에 단순히 f 한글자만 추가해주면 됩니다.
아래 예시처럼요!


language = "English"
print(f"I am learning {language}.")
 


위 코드를 실행시키면 아래와 같이 출력됩니다.
I am learning English.


f-string 의 다양한 사용 예

 


// 숫자를 사용하면 계산이 된다.
message = (
 f"9더하기 5는 {9 + 5}"
)
print(f"{message}")

//변수와 숫자를 포함하였을때 계산이 된다. 
length = 8
width = 4
print(f"사각형의 길이는 {2*(length + width)}cm")


// if문 사용
print(f"{num} is {'not ' if (num%2 != 0) else ''}even")

//함수 호출
def sq(x):
 return x * x
 
print(f"5의 제곱은 {sq(5)}")

// 메소드 호출
str = "Hello f-strings!"
print(f"{str.upper()")


//디버깅할 때 test=1 을 표시하기 위해서는 아래와 같이 작성한다.
test = 1
print(f"test={test}")

//하지만 파이썬 3.8에서는 변수를 한 번만 사용해도 되기 때문에 디버깅할 때 유용합니다.
test = 1
print(f"{test=}")




%를 사용한 포맷팅과의 비교


%를 사용한 포맷의 예제를 살펴보겠습니다.

//%를 사용한 포맷
thing = '물' 
bottle = 2.1 
ea = 2
print("%f L %s 이 %d개면 총 %f L 입니다.") %(bottle, thing, ea, bottle*ea)
// 출력결과 : 2.1 L 물이 2개면 총 4.2 L 입니다.



%를 사용한 포매팅은 변수 타입의 따라서 %d, %f, %s 등으로 구분해서 써줘야합니다.
기본적으로 %s는 문자열, %d는 정수, %f는 실수임을 명시하는 것입니다.
f string에 비교하자면, 포맷팅되어야 하는 문자열이 무엇인지를 알아야하고,
변수의 선언부와 포맷팅 스트링(%f, %s, %d등)과의 거리가 멀어, 디버깅/코딩시 보기 불편한 점이 있습니다.


{}를 사용한 포맷팅과의 비교


{}를 사용한 포맷의 예제를 살펴보겠습니다.


//%를 사용한 포맷
thing = '물' 
bottle = 2.1 
ea = 2
print("{} L {} 이 {}개면 총 {} L 입니다.".format(bottle, thing, ea, bottle*ea))
// 출력결과 : 2.1 L 물이 2개면 총 4.2 L 입니다.
 


%를 사용한 포맷 대비 포맷팅되어야하는 문자열을 몰라도 print를 할 수 있습니다.
그러나 여전히 변수선언부와 {}과의 거리가 멀어, 코딩/디버깅시 보기 불편한 점이 있습니다.

이렇게에 f-string을 쓰면 직관적으로 빠른 코딩/디버깅이 가능이 가능해집니다.


총평


간편하게 쓰기위한 좋은 기능인것 같습니다.
찾아보니 C#에도 있는 기능인것으로 확인하였고, Java나 javascript에서는 없는 기능인거로 보입니다.
좋은기능은 다른 언어에도 영향을 미쳐서 좋은 방향으로 발전되었으면 좋겠습니다.
f-string을 잘 모를때는 {}과 .format 을 썼었는데,
이제부터는 f-string을 자주 쓰는 습관을 들여 생산성을 높일 수 있도록 해봐야 겠습니다.

[Python] 파이썬 f-string, python f-string


#파이썬,#fstring,#string,#f-string,#python

 

https://devscb.com/post/85

 

[Python] Python f-string, python f-string

Python supports several ways to format text strings.This includes %formatting, str.format() string.Template.Each of these methods has its advantages, but it also has the disadvantage of being cumberso

devscb.com

 

 

728x90
반응형

댓글