Python : f-String
Python 3.6 이후 도입됨.
기존의 중괄호 {}
과 format
메소드를 사용하여 문자열 포매팅을 설정하는 방식(Python 2.6 이후)과 유사하지만,
더 직관적으로 문자열을 포맷팅할 수 있는 기능으로 현재는 다른 방법들보다 권장됨
이를 formatted string literals라고도 부르며,
더 간결한(succinct) 구문을 가지고 있음.
Syntax
Python에서 문자열을 만드는 방식과 거의 유사하나
문자열을 싸고 있는 single or double quotes에서
시작하는 quote앞에 f
나 F
를 붙여주면 됨.
"simple text"
: 일반적인 Python 문자열f"formatted string lietera"
: f-String
How to print variables (or How to print Expressions)
f-String에서 variable은 single or double quotes로 감싸진 문자열 literal부분에서 {}
안에 놓이게 됨.
엄밀하게 애기하면 {}
안에는 expression이 들어갈 수 있고 해당 expression이 evaluation된 값이 문자열에서 해당 {}
부분이 치환되어 완성됨.
다음 예를 참고하라.
a = "문자열"
b = 7.0
s = f'이것은 f-String 입니다. a={a}, b={b+3} 입니다.'
print(s)
출력되는 string은 다음과 같음.
이것은 f-String 입니다. a=문자열, b=10.0 입니다.
Expression 내에는 python function 호출을 포함할 수 있음.
다음 예를 참고하라.
a = 'test"
print(f'This is a text:{a.upper()}')`
출력되는 string은 다음과 같음.
TEST
3.8 이후부터 variable들의 값을 쉽게 확인하는 기능을 추가함.
a = 'test'
b = 8.0
c = 3
print(f"New f-string\'s function : {a=}, {b=}, and {c=}.")
출력되는 string은 다음과 같음.
New f-string's function : a='test', b=8.0, and c=3
{}
안에 특정 class 의 object가 놓일 경우, 해당 object의 __str__
메서드의 반환값으로 치환딤.
Formatting String Definition
{variable_name:formatting_string_definition}
의 구문으로
variable_name
의 출력형태를 지정할 수 있음
(앞서 애기했지만 variable_name
은 expression으로 대체 가능함.)
{Expression [:[filling문자][정렬방식문자][Prefix지정문자][최소글자수][.최대글자수][변환형태]]}
filling문자
- 기본값은
' '
space공백문자이나 다른 문자로 지정할 수 있음. - expression에 해당하는 문자열이 뒤에 지정한 최소글자수 보다 적은 경우 사용됨.
Alignment문자
^
: Center alignment<
: Left alignment (default)>
: Right alignment
Prefix지정문자
#
: 샵(or 해쉬) 문자가 지정된 경우 int형 출력할 때 진법을 나타내는 다음의 prefix가 앞에 붙어서 출력됨: (진법 지정은 뒤의 변환형태에서 지정함.)- binary :
0b
- octal :
0o
- hexadecimal :
0x
or0X
- decimal의 경우, 출력되는 prefix 없음.
- binary :
최소글자수
- int로 입력됨
- expression의 글자수가 지정된 최소글자수보다 적은 경우에 filling문자가 채어짐.
.최대글자수
.
period 가 앞에 붙음.- float의 경우(아래의 변환형태를
f
로 지정한 경우)에는 최대글자수가 아닌 precision을 지정하게 됨. - int의 경우(아래의 변환형태를
s
로 지정한 경우)에는 사용할 수 없음. - string의 경우(아래의 변환형태를
s
로 지정한 경우)최대글자수가 됨.
변환형태
b
: binary (base-2), int에서 사용가능d
: decimal (base-10), int에서 사용가능o
: octal (base-8), int에서 사용가능x
: hexa decimal (base-16), int에서 사용가능f
: float 출력에 사용됨.e
: scientific notation으로 표기됨.s
: string (txt), 문자열 변수를 출력에 사용됨.
참고 자료 : scientific notation (과학적표기법, 소수점 자리가 매우 긴 경우 표기되는 방식)
2022.03.14 - [.../Physics] - 측정치에서 유효숫자 확인 및 과학적 표기법
'Programming' 카테고리의 다른 글
[Python] pip 란 (Package Management System) (0) | 2023.06.22 |
---|---|
[Python] Basic Methods of String (0) | 2023.06.21 |
[Python] Assignment (Basic) (0) | 2023.06.20 |
[Python] Module Search Path and sys.path (0) | 2023.06.18 |
[Python] importlib.reload : module 재적재 (0) | 2023.06.18 |