본문 바로가기
파이썬/파이썬 기초

파이썬(Python) f-string 문자열 포맷팅 방법

by 이박수 2024. 9. 4.

목차

파이썬(Python) f-string 문자열 포맷팅

파이썬(Python) f-string 쉽게 이해하기

파이썬(Python) f-string 활용 예제1

파이썬(Python) f-string 활용 예제2

 

파이썬(Python) f-string 문자열 포맷팅

파이썬(Python)을 통한 프로젝트를 진행하다보면 문자열을 다룰 일이 많다. 특히 문자열을 다루면서 문자열과 변수의 조합이 필요할때가 많이 있는데, 특히 문자열과 숫자의 조합이 필요한 경우가 종종있다. 이것은 나중에 예시로 다루겠다.

 

문자열과 정수는 기본적으로 결합이 안되기때문에 정수를 스트링으로 변경해서 연결해야 하기때문에 불편한점이 많다.

 

이를 간단하게 해결하는 방법이 바로 f-string 포맷팅이다.

 

예를들어 아래와 같은 코드가 있다고 가정하자.

text = "1번째 예제입니다"

 

여기에서 1번째, 2번째, 3번째 이렇게 문자열안에 숫자만 변경이 되는 경우를 예를들어보자.

 

문자열안에 숫자가 있고, 숫자를 변수로 표현해야 하는데, 이때 편하게 사용하는 방법이 바로 f-string이다.

기본적으로 이렇게 사용해주면 된다.

count = 1
text = f"{count}번째 예제입니다"
print(text)

 

문자열 " " 앞에 f를 붙여주자. 그리고 변수로 표현하고 싶은 부분은 { }처리해주고, { } 안에 변수를 넣어주면 된다.

위와 같이 입력하고 코드를 실행시켜 보자

 

위와 같은 결과가 나타난다. 아직 감이 잘 오지 않는다면 아래의 내용을 계속 보아라

파이썬(Python) f-string 쉽게 이해하기

f-string 포맷팅은 간단하게(?) 설명 해보도록 하겠다.

예를들어 출력 결과가 아래와 같이 나와야 된다고 생각해보자. 여기에서 총 100번의 문장이 출력되어야 하는데,.

여기에서 공통규칙을 찾아보자. 바로 앞 숫자가 바뀔뿐 뒤의 문장은 바뀌지 않는다. 따라서 우리는 바뀌는 부분을 변수로 처리하면 된다

 

앞의 숫자만 바뀌기 때문에 바뀌는 부분에 어떻게 변수로 바꿀수 있을까?

f-sting을 사용하지 않는다면 이렇게 해볼 수 있을 것이다.

count = 1
text = "번째 예제입니다"
result = count + text
print(result)

 

당연히 에러가 발생한다.

 

에러의 내용을 보면 'int' 어쩌고, 'str' 어쩌고 이렇게 나온다. 직감적으로 정수와 문자열의 결합이 안됨을 알 수 있다.

즉, count의 경우 정수이고, text는 문자열이기 때문에 더하기가 안된다. 그럼 이렇게 바꿔 보자.

count = 1
text = "번째 예제입니다"
result = str(count) + text
print(result)

 

우리가 원하는 결과가 나오긴 하지만 뭔가 불편하다. 출력 결과가 직관적이지 않고, 헷갈리기도 한다. 

이럴때 f-string으로 포맷팅을 해주면 편리한 것이다.

f-string이 익숙하지 않다면 아래처럼 따라해보라. 이해가 쉽게 될 수도(?) 있다

먼저 출력하고 싶은 결과를 그대로 표현해준다. 그리고 변수를 선언해준다

그 다음 문자열 앞에 f을 붙여라. 여기서 반드시 " " 앞에 f를 붙여야 한다. 

 

그 다음 변수로 바꾸고 싶은 부분을 { }로 씌워준다. 그리고 { } 의 값을 앞서 선언한 변수를 넣어주면 된다.

 

생각보다 어렵지 않다? 그런데 굳이 왜 이렇게 쓰는걸까? 아래의 예제를 통하여 실전에서 사용하는 방법을 살펴보자

파이썬(Python) f-string 활용 예제1

f-string를 이용하여 2단에서 9단까지 출력하는 구구단을 한번 짜보자.

 

출력결과는 아래와 같이 나와야 한다. 여기서 출력될때마다 변경되는 부분을 찾아보자. 

앞, 뒤, 결과 이렇게 3가지 값이 바뀌는 것을 알 수 있다.

 

 

바뀌는 곳을 변수로 처리하고 연산을 하면 쉽게 구구단을 구현할 수 있을 것이다.

코드는 아래와 같다.

for i in range(2,10):
    for n in range(1,10):
        print(f"{i} x {n} = {i * n}")

2단에서 9단까지 출력해야 하기때문에 2중 for문을 사용해야 한다. 그리고 출력 결과는 f-sting으로 표현하였으며, 마지막 결과는 { } 안에서 연산을 진행하였다. 

여기에서 f-string은 { }안에서 연산도 가능하다는 것을 알 수 있다.

 

결과 역시 깔끔하게 잘 나온다.

파이썬(Python) f-string 활용 예제2

좀 더 실무적은 예제를 가지고 접근해보자.

크롤링을 하다보면 CSS_SELECTOR 값을 가져와야 하는 경우가 있다.( 이 예제는 따로 다루도록 하겠다.)

CSS_SELECTOR 값을 가지고 와서 반복문을 통하여 여러개의 테이블을 값을 가져와야 하는데, 이때 CSS_SELECTOR 값을 살펴보면 이렇게 나온느 경우가 종종있다.

 

우선 네이버 쇼핑에서 노트북을 검색해서 1번째, 2번째 노출되는 상품을 크롤링한다고 가정해보자

 

아래의 값은 네이버 쇼핑의 1번째, 2번째 상품의 CSS_SELECTOR 값이다.

 

우리는 for을 이용하여 네이버 쇼핑의 상품명과 가격 등 다양한 정보를 크롤링 할 수 있다. 크롤링을 위해서 상품명에 해당되는 CSS_SELECTOR 값을 가져와 보면 위와 같이 반복되는 것을 알 수 있다.

 

그래서 이걸 그대로 for문을 이용하여 정보를 가져올 수 있다. (아래의 코드만 입력한다고 해서 실행되는건 아니다.)

for i in range(1,3):
    N_name =  driver.find_element(By.CSS_SELECTOR, f'#content > div.style_content__xWg5l > div.basicList_list_basis__uNBZx > div > div:nth-child({i}) > div > div.adProduct_info_area__dTSZf > div.adProduct_title__amInq > a').text
    N_price = driver.find_element(By.CSS_SELECTOR, f'#content > div.style_content__xWg5l > div.basicList_list_basis__uNBZx > div > div:nth-child({i}) > div > div.adProduct_info_area__dTSZf > div.adProduct_price_area__yA7Ad > strong > span.price > span.price_num__S2p_v > em').text
    print(N_name, N_price)

 

여기에서 아래와 같이 f-string을 적용할 수 있다.

 

대략 아래와 같은 결과가 나올것이다.

 

 

오늘은 f-string에 대하여 알아 보았다. 파이썬을 공부하면서 많이 사용하는 문법인만큼 꼭 기억해두면 좋을 것이다.

 

앞으로 다룰 예제에서 f-string이 자주 나오기때문에 다른 코드를 이해하기 위해서는 반드시 익히도록 하자.

 

오늘은 끝!