[Python] f-String

2023. 6. 21. 08:40·Programming
728x90
728x90

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 or 0X
    • decimal의 경우, 출력되는 prefix 없음.

최소글자수

  • 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), 문자열 변수를 출력에 사용됨.

__str__() 과 __repr__()

일반적으로 f-string에서 expression의 최종 evaluated object는 자신의 __str__() 메소드의 반환값인 str객체를 출력하게 된다.

하지만, 다음과 같이 __repr__()의 반환값으로 대체할 수도 있음.

f'{a!r} is repr'	# __repr__의 리턴값
f'{a!s} is str'		# __str__의 리턴값
f'{a} is str'		# __str__의 리턴값
  • __str__() 은 관련 객체의 informal representation에 해당하는 문자열을 반환하는 special method (print함수에서 출력 문자열)
  • __repr__() 은 관련 객체의 informal representation에 해당하는 문자열을 반환하는 special method (REPL 셀에서 출력)

참고 자료 :

scientific notation (과학적표기법, 소수점 자리가 매우 긴 경우 표기되는 방식)

2022.03.14 - [.../Physics] - 측정치에서 유효숫자 확인 및 과학적 표기법

 

측정치에서 유효숫자 확인 및 과학적 표기법

Significant figures (유효숫자) 모든 측정값은 근본적으로 근사값 임. 측정의 정확도에 한계(즉 오차가 존재)가 있기 때문에, 해당 오차보다 작은 수의 기재는 아무 의미가 없음. 즉, 유효한 (효력을

dsaint31.tistory.com

https://ds31x.tistory.com/125

 

[Python] String : 문자열

String(문자열)이란?다음 URL에서 4.3. String Type을 참고.https://dsaint31.tistory.com/515 [Python] (Data) Type: Summary1. Type 이란?Programming에서 사용되는 모든 value 혹은 object 들의 종류 를 (data) type이라고 부름.수학

ds31x.tistory.com

https://gist.github.com/dsaint31x/91c62f92af9e9033edee3283ef0ea319

 

python_numeral_system.ipynb

python_numeral_system.ipynb. GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

 

'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
'Programming' 카테고리의 다른 글
  • [Python] pip 란 (Package Management System)
  • [Python] Basic Methods of String
  • [Python] Assignment (Basic)
  • [Python] Module Search Path and sys.path
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (740)
      • Private Life (13)
      • Programming (186)
        • DIP (104)
        • ML (26)
      • Computer (119)
        • CE (53)
        • ETC (33)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (9)
      • ... (351)
        • Signals and Systems (103)
        • Math (172)
        • Linear Algebra (33)
        • Physics (42)
        • 인성세미나 (1)
      • 정리필요. (54)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (1)
        • PET Study 2009 (1)
        • 방사선 장해방호 (4)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    Vector
    SIGNAL
    Convolution
    DIP
    function
    Term
    math
    Probability
    Optimization
    Programming
    opencv
    signals_and_systems
    인허가제도
    fourier transform
    numpy
    linear algebra
    SS
    signal_and_system
    random
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[Python] f-String
상단으로

티스토리툴바