*Memo:
- My post explains Format Specification with f-strings (1).
- My post explains Format Specification with f-strings (2).
- My post explains Format Specification with f-strings (3).
- My post explains Format Specification with f-strings (4).
- My post explains Format Specification with f-strings (5).
- My post explains format().
- My post explains format_map().
- My post explains a string.
f-strings can create a string with f
or F
with ''
or ""
and zero or more values, then format the string as shown below:
<{variable}>:
*Memo:
- A
{}
can output a value:- It accepts any type of a value.
- A
{}
must have an expression with zero or more spaces. - A
{}
can have=
with zero or more spaces after an expression to output the value including its expression. - If using
=
, the spaces in the expression and around=
in{}
are included in the value. - If not using
=
, the spaces in the expression in{}
aren't included in the value.
v1 = 'A' v2 = 'B' v3 = 'C' print(f'-{v1}-{v2}-{v3}-') print(F"-{v1}-{v2}-{v3}-") print(f'-{ v1 }-{ v2 }-{ v3 }-') print(F"-{ v1 }-{ v2 }-{ v3 }-") # -A-B-C- print(f'-{v1=}-{v2=}-{v3=}-') print(F"-{v1=}-{v2=}-{v3=}-") # -v1='A'-v2='B'-v3='C'- # ↓ ↓ ↓ ↓↓ ↓↓ ↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ print(f'-{ v1 = }-{ v2 = }-{ v3 = }-') print(F"-{ v1 = }-{ v2 = }-{ v3 = }-") # - v1 = 'A'- v2 = 'B'- v3 = 'C'- # ↑ ↑ ↑ ↑↑ ↑↑ ↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ print(f'{'ABC'} {100} {True}') print(F"{'ABC'} {100} {True}") # ABC 100 True print(f'') print(F"") # Nothing print(f'{}') print(F"{}") print(f'{ }') print(F"{ }") # SyntaxError: f-string: valid expression required before '}'
v1 = 'AB' v2 = 4 print(f'-{v1+'CDE'}-{3*v2}-') print(f'-{ v1 + 'CDE' }-{ 3 * v2 }-') print(f'-{ v1 + 'CDE' }-{ 3 * v2 }-') print(f'-{ v1 + 'CDE' }-{ 3 * v2 }-') # -ABCDE-12- print(f'-{v1+'CDE'=}-{3*v2=}-') # -v1+'CDE'='ABCDE'-3*v2=12- # ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ print(f'-{ v1 + 'CDE' = }-{ 3 * v2 = }-') # - v1 + 'CDE' = 'ABCDE'- 3 * v2 = 12- # ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ # ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ print(f'-{ v1 + 'CDE' = }-{ 3 * v2 = }-') # - v1 + 'CDE' = 'ABCDE'- 3 * v2 = 12- # ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ # ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ print(f'-{ v1 + 'CDE' = }-{ 3 * v2 = }-') # - v1 + 'CDE' = 'ABCDE'- 3 * v2 = 12- # ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑
print(f'-{'AB'+'CDE'}-{3*4}-') print(f'-{ 'AB' + 'CDE' }-{ 3 * 4 }-') print(f'-{ 'AB' + 'CDE' }-{ 3 * 4 }-') print(f'-{ 'AB' + 'CDE' }-{ 3 * 4 }-') # -ABCDE-12- print(f'-{'AB'+'CDE'=}-{3*4=}-') # -'AB'+'CDE'='ABCDE'-3*4=12- # ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ print(f'-{ 'AB' + 'CDE' = }-{ 3 * 4 = }-') # - 'AB' + 'CDE' = 'ABCDE'- 3 * 4 = 12- # ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ # ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ ↓↓ print(f'-{ 'AB' + 'CDE' = }-{ 3 * 4 = }-') # - 'AB' + 'CDE' = 'ABCDE'- 3 * 4 = 12- # ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ ↑↑ # ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ ↓↓↓↓ print(f'-{ 'AB' + 'CDE' = }-{ 3 * 4 = }-') # - 'AB' + 'CDE' = 'ABCDE'- 3 * 4 = 12- # ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑ ↑↑↑↑
*Indentation is possible between {
and }
.
v = 'CD' print(f'AB{ v + 'EF'}') print(f'AB{v + 'EF'}') print(f'AB{v + 'EF'}') print(f'AB{v + 'EF' }') # ABCDEF print(f' AB{v + 'EF'}') print(f'AB {v + 'EF'}') print(f'AB{v + 'EF'} ') # SyntaxError: unterminated f-string literal
*Format Specification can be used with f-strings
:
v = -0.0 print(f'"{v:0>-z#010_.0f}"') print(f'"{v:0>-z#10_.0f}"') print(f'"{v:>-z#010_.0f}"') # "000000000." print(f'"{v:0>-z#010_.0f}" "{v:0>-z#10_.0f}" "{v:>-z#010_.0f}"') print(f'"{v:0>-z#010_.0f}" "{v:0>-z#10_.0f}" "{v:>-z#010_.0f}"') # "000000000." "000000000." "000000000."
<{variable[index]}>:
v = ['A', 'B', 'C'] print(f'-{v}-{v[0]}-{v[1]}-{v[2]}-') # -['A', 'B', 'C']-A-B-C-
v = [['A', 'B'], ['C', 'D']] print(f'-{v}\n-{v[0]}-{v[1]}\n-{v[0][0]}-{v[0][1]}-{v[1][0]}-{v[1][1]}-') # -[['A', 'B'], ['C', 'D']] # -['A', 'B']-['C', 'D'] # -A-B-C-D-
<{variable[key]}>:
*Memo:
-
key
cannot omit""
or''
.
v = {'name':'John', 'age':36} print(f'-{v}\n-{v['name']}-{v['age']}-') # -{'name': 'John', 'age': 36} # -John-36- print(f'{v[name]}') # NameError: name 'name' is not defined print(f'{v[age]}') # NameError: name 'age' is not defined
v = {'person':{'name':'John', 'age':36}} print(f'-{v}\n-{v['person']}\n-{v['person']['name']}-{v['person']['age']}-') # -{'person': {'name': 'John', 'age': 36}} # -{'name': 'John', 'age': 36} # -John-36-
<variable.key & variable.key()>:
import math v = math print(f'{v.pi}') # 3.141592653589793 print(f'{v.pow}') # <built-in function pow> print(f'{v.pow(3, 2)}') # 9.0
<!s & !r & !a>:
*Memo:
-
!s
is str() which can create a string. -
!r
is repr() which can create a printable string. -
!a
is ascii() which can create the printable string of ASCII characters. *Non-ASCII characters are represented with\x
,\u
, or\U
escape.
v = "Jφhи\tSмiтh" print(f"{v!s}") # Jφhи Sмiтh print(f"{v!r}") # 'Jφhи\tSмiтh' print(f"{v!a}") # 'J\u03c6h\u0438\tS\u043ci\u0442h'
v = 'I\'m Jφhи\tSмiтh.' print(f'{v!s}') # I'm Jφhи Sмiтh. print(f'{v!r}') # "I'm Jφhи\tSмiтh." print(f'{v!a}') # "I'm J\u03c6h\u0438\tS\u043ci\u0442h."
<{{ & }}>
*Memo:
-
{
can escape{
. -
}
can escape}
.
print(f'The bracket {{ is escaped.') # The bracket { is escaped. print(f'The bracket }} is escaped.') # The bracket } is escaped. print(f'The {{brackets}} are escaped.') # The {brackets} are escaped.
Top comments (0)