파이썬 독학/입문 강의

[파이썬독학강의] 5.5 파이썬 문자열 f-string 사용법

데니 by danny 2023. 2. 2. 02:32
반응형

파이썬 f-string 사용법

님들, 안녕하세요. 14년차 IT 개발자 데니예요. 지난 시간에 문자열 포매팅(formatting) 방식 2가지를 배웠어요. 2가지 방식을 학습하지 못하신 님들을 위해서 강의 링크 남겨 놓을 테니 참고해 주세요. 오늘은 마지막 남은 1가지 방식인 파이썬 f-string 방식에 대해서 학습해볼거예요. f-string 방식은 문자열 포매팅(formatting) 방식 중 가장 최근에 나왔고 프로그래머 입장에서 다른 포매팅 방식보다 훨씬 사용하기 편한 포매팅 방식이에요. 더 편한 방식이 나오기 전까지는 우리는 앞으로 전개되는 강의와 실습에서 f-string 방식을 사용할 테니, 잘 익혀주시길 바랄게요. 강의 시작할게요.

*참고 강의
[파이썬독학강의] 5.4 파이썬 문자열 포매팅(formatting)_문자열 포맷

 

[파이썬독학강의] 5.4 파이썬 문자열 포매팅(Formatting)_문자열 포맷

님들, 안녕하세요. 14년차 IT 개발자 데니예요. 오늘은 파이썬 문자열 포매팅(formatting)에 대해서 배울 거예요. 문자열 중에 일부가 변할 수 있는 가능성이 있는 경우에 문자열 포매팅을 사용해요.

danny-edu.tistory.com

 

 

5.5 파이썬 문자열 f-string 사용법

f-string 방식에 대한 사용법을 알아보기에 앞서 님들 PC에 설치된 파이썬 버전을 확인할 필요가 있어요. 그 이유는 f-string 방식은 파이썬 3.6 버전부터 사용 가능해요.(3.6 미만 버전 사용 불가)
파이썬 버전 확인 방법은 간단해요. 확인 방법이 생각나지 않으시는 분들은 아래 링크 참고해주세요.

<파이썬 버전 확인 방법>

 

파이썬 버전 확인

목차 1. 파이썬 버전 확인 ▶ 윈도우 시작 메뉴-찾기-python 입력 ▶ 파이썬 IDLE Shell 실행 ▶ 윈도우 cmd 창에서 확인 1. 파이썬 버전 확인 ▶ 윈도우 시작 메뉴-찾기-python 입력 윈도우 시작 메뉴 ▷

danny-edu.tistory.com


파이썬 버전 3.6 미만이신 님들은 아래 링크 참고해서 최신 버전의 파이썬을 설치해 주세요.
<파이썬 설치하기>

 

[파이썬독학강의] 2. 파이썬3(Python) 설치하기_파이썬설치

님들 안녕하세요. 14년차 IT 개발자 데니예요. 이번 포스팅에서는 파이썬3을 설치해보는 시간을 가져볼 거예요. 파이썬3은 님께서 사용하고 계시는 컴퓨터 운영체제(윈도우, MacOS, 리눅스 등)에 상

danny-edu.tistory.com


이제 님들 파이썬 3.6 버전 이상으로 준비되셨으리라 생각하고 강의 계속 진행할게요.

▶ f 문자열 포매팅

아래 그림은 지난 문자열 포매팅(formatting) 강의에서 사용했던 예제예요. 지난 강의를 못 보신 님들을 위해 다시 한번 설명드릴게요. 해당 표는 학생들의 수학과 과학 시험 점수예요. 님들이 학부모를 위한 성적조회 앱을 개발한다고 가정하면, 학부모들이 학생 성적조회 앱에 로그인해서 본인 자녀의 성적 조회를 하면, '○○○ 수학 ☆☆점, 과학 ◇◇점'과 같이 문자열로 출력해줘야 해요.
님들은 지난 시간에 %포매팅 방식과 format함수 방식을 사용해서 이처럼 출력을 해주었어요. 이번 시간에는 f-string 방식으로 출력해 볼 거예요.

3명의 학생 성적



우선 홍길동 학생의 수학과 과학 점수를 f-string 방식으로 출력해 볼게요.
아래 그림은 파이썬 IDLE Shell 실습창에서 코딩한 내용이에요. 라인[1]~[3]은 학생 이름과 과목 성적을 변수에 대입했어요. 라인[4]를 보시면 문자 f 로 시작하고 그다음 작은따옴표가 출력해야 하는 문자열로 보이는 형식을 감싸고 있어요. 작은 따옴표 내부 내용에는 라인[1]~[3]에서 선언한 변수명을 중괄호{ }로 안에 넣어줬어요.
f-string 방식은 문자열 바로 앞에 f접두사를 반드시 붙여줘야 해요. 그리고 변숫값을 직접 참조할 수 있기 때문에 변수명을 중괄호 안에 넣어서 사용해요.

파이썬 f-string 방식 문자열 출력
파이썬 f-string 방식 문자열 출력


자 그럼 홍길동, 나둘리, 피카쵸 학생 모두의 성적을 출력해야 한다면 어떻게 코딩해야 할까요? 여러 가지 방법이 있어요. 그중에서 앞으로 여러분이 배워야 할 리스트, 반복문 for문, 함수 range()와 len()을 사용해서 출력하는 소스코드를 보여드릴게요. 예습한다고 생각하시고 봐주시면 감사하겠어요.
아래 그림 라인[1]~[3]은 리스트라는 자료형을 사용해서 변수에 값을 대입했어요. 일단 이번 장에서는 리스트는 대괄호 [ ]안에 여러 개의 값을 넣을 수 있고 숫자 인덱스(0, 1, 2...)를 이용해서 값에 접근할 수 있다고 알고 있어 주세요. 라인[4]는 반복문 for문을 사용했어요. for 문은 for 단어 바로 다음에 조건이 있어야 해요. 라인[4]에서 for 단어 바로 옆에 i in range(len(name)): 이라는 조건이 성립되면 반복시켜주는 파이썬 문법이예요. len()함수는 매개변수를 전달하면 해당 매개변수의 길이를 반환해줘요. len(name)은 name 리스트 변수의 길이 값을 반환해준다고 한다면, name 리스트 변수는 3명의 이름 값을 가지고 있으므로 숫자 3을 반환해줘요. 그럼 range(len(name))은 range(3)으로 해석할 수 있어요. range() 함수는 매개변수로 양의 정수 값 N을 1개 전달하면 0부터 N-1까지 숫자를 생성해줘요. range(3)이면 [0, 1, 2] 값을 만들어줘요.

3명의 학생 성적 출력(f-string&#44; for문&#44; len()&#44; range())
3명의 학생 성적 출력(f-string, for문, len(), range())

결과적으로 라인[4]는 for i in [0, 1, 2]: 으로 바꿔 코딩할 수 있고, 해석하자면 i 변수에 0 값을 대입해서 라인[5]를 수행하고, 다시 라인[4]로 와서 i변수에 1 값을 대입해서 라인[5]를 수행해요. 라인[4]로 다시 돌아와서 마지막으로 변수 i에 2 값을 대입하고 라인[5]를 수행하고 for문을 종료해요.
아래 소스코드는 위 그림과 동일한 소스코드입니다.

1
2
3
4
5
6
7
8
9
10
>>> name = ['홍길동''나둘리''피카쵸']
>>> math = [1005090]
>>> science = [957080]
>>> for i in range(len(name)):
...        print(f'{name[i]} 수학 {math[i]}점, 과학 {science[i]}점')
...
홍길동 수학 100점, 과학 95점
나둘리 수학 50점, 과학 70점
피카쵸 수학 90점, 과학 80점
>>>
cs


**라인[4]~[5] 수행 절차 요약**
1. 변수 i가 0 일 때, f'{name[0]} 수학 {math[0]}점, 과학 {science[0]}점' 출력, name[0]은 '홍길동', math[0]은 100, science[0]은 95
2. 변수 i가 1 일 때, f'{name[1]} 수학 {math[1]}점, 과학 {science[1]}점' 출력, name[1]은 '나둘리', math[0]은 50, science[0]은 70- 3. 변수 i가 2 일 때, f'{name[2]} 수학 {math[2]}점, 과학 {science[3]}점' 출력, name[2]은 '피카쵸', math[2]은 90, science[2]은 80

위 실습 예제에 대해서 이해가 안 되신다고 파이썬을 포기하시거나 절대 좌절하지 않으셨으면 좋겠어요. 해당 예제는 f-string 방식으로 3명의 학생 성적을 모두 출력해 주기 위해서 이런 방법도 있다고 알려드리기 위해서 넣었고요. 이해가 안 되신다면 딱 한 번만 님들 파이썬 IDLE Shell 실습창에 직접 입력해 보시고 실행시켜서 결과만 확인해 주세요.

▶ 문자열 정렬

이번에는 f-string 방식에서 문자열 정렬(왼쪽, 가운데, 오른쪽 정렬)을 해볼게요.

1
2
3
>>> f'{"Hello":<10}'
'Hello     '
>>>
cs

라인[1]은  f접두사 다음에 나오는 중괄호{ } 안을 보시면 문자열 "Hello"가 있고 그 바로 다음에  :<10이 있어요. :<은 해당 문자열을 왼쪽 정렬시키라는 의미예요. 10은 출력될 문자열 전체 길이를 지정해 준 거예요. 전체 출력 문자열 길이는 10자리이고, 10자리 중에서 "Hello"는 5자리이므로 나머지 5자리는 띄어쓰기로 출력될 거예요. 라인[2]은 5자리인 문자열 "Hello"가 왼쪽 정렬되고 나머지 5자리는 띄어쓰기로 총 10자리 문자열이 출력되었어요.

 

 

1
2
3
>>> f'{"Hello":>10}'
'     Hello'
>>>
cs

라인[1]은 f접두사 다음에 나오는 중괄호{ } 안을 보시면 문자열 "Hello"가 있고 그 바로 다음에 :>10이 있어요. :<은 해당 문자열을 오른쪽 정렬시키라는 의미예요. 10은 출력될 문자열 전체 길이를 지정해 준 거예요. 전체 출력 문자열 길이는 10자리이고, 10자리 중에서 "Hello"는 5자리이므로 나머지 5자리는 띄어쓰기로 출력될 거예요. 라인[2]은 띄어쓰기로 5자리가 출력된 다음 문자열 "Hello"가 오른쪽 정렬되어 출력되었어요.

1
2
3
>>> f'{"Hello":^10}'
'  Hello   '
>>>
cs

라인[1]은 f접두사 다음에 나오는 중괄호{ } 안을 보시면 문자열 "Hello"가 있고 그 바로 다음에 :^10이 있어요. :^은 해당 문자열을 가운데 정렬시키라는 의미예요. 10은 출력될 문자열 전체 길이를 지정해 준 거예요.
라인[2]은 처음 2자리가 띄어쓰기되고, 문자열 "Hello" 5자리가 가운데 정렬되고 마지막으로 나머지 3자리가 띄어쓰기되었어요. 이처럼 가운데 정렬 시에 띄어쓰기 자릿수가 홀수인 경우 좌측 n자리, 우측 n+1자리로 가운데 정렬이 돼요.

▶ 공백 채우기

문자열을 가운데 정렬하고 띄어쓰기되는 부분에 다른 문자를 채우고 싶은 경우 아래 실습 예제를 참고하시면 돼요.

1
2
3
>>> f'{"Hello":=^10}'
'==Hello==='
>>>
cs

위 실습 예제와 다른 부분은 = 문자예요. 띄어쓰기 부분에 다른 문자를 채워 넣고 싶으시면 :^ 사이에 원하시는 문자를 입력하시면 돼요. 저는 = 문자를 입력해 봤어요.
라인[2]은 띄어쓰기 부분이 사라지고 = 문자로 채워진 걸 보실 수 있으세요.

 

 

▶ 소수점 표현

f-string 방식을 사용해서 내년 예상 경제 성장률을 소수점 2자리 까지 문자열로 출력해 주도록 실습해 볼게요.

1
2
3
4
5
>>> nx_yr_eg_rate = 2.7545454545
>>> str = f'내년 경제 성장률 {nx_yr_eg_rate:.2f}% 예상'
>>> str
'내년 경제 성장률 2.75% 예상'
>>>
cs

라인[1] 내년 예상 경제 성장률을 변수에 대입시켜 주었어요.
라인[2] f-string 방식을 문자열 형식을 작성하여 str 변수에 대입시켜 주었어요. 중괄호 { }안에 nx_yr_eg_rate 변수명을 넣어서 해당 값을 출력해주려고 해요. 단, .2f를 사용해서 해당 값을 소수점 2자리까지 출력해 주도록 하고 있어요.
라인[3]~[4] '내년 경제 성장률 2.75% 예상'이라는 문자열이 출력되면서 소수점 2자리까지 출력해 주었어요.

님들 오늘도 여기까지 읽어 주시고 실습 병행해 주셔서 정말 고생하셨어요.
다음 시간에는 문자열 관련 함수에 대해서 포스팅해 볼게요. 다음 시간에 봬요.

반응형