f'{value:width}' where: value is any expression that evaluates to a number width specified the number of characters used in total to display, but if a value needs more space that the width specified then more space is used
abc = 100 print(f'{abc:12}') print(f'{abc:<12}') print(f'{abc:>12}')
f'{value:width.precisionf}' where: value is any expression that evaluates to a number width specified the number of characters used in total to display, but if a value needs more space that the width specified then more space is used precision indicates the number of characters after the decimal point
abc = 10.0/3.0 print(f'{abc:12.4}') print(f'{abc:<12.4f}') print(f'{abc:>12.4f}')
f'{value:>width}' f'{value:<width}' where: value is any expression that evaluates to a number width specified the number of characters used in total to display, but if a value needs more space that the width specified then more space is used.
Syntax: "{" [field_name] ["!" conversion] [":" format_spec] "}" # let's understand what each field means... field_name ::= arg_name ("." attribute_name | "[" element_index "]")* arg_name ::= [identifier | digit+] attribute_name ::= identifier element_index ::= digit+ | index_string index_string ::= <any source character except "]"> + conversion ::= "r" | "s" | "a" format_spec ::= [[fill]align][sign][#][0][width][grouping_option][.precision][type] # Looking at the underlying fields under format_spec... fill ::= <any character> align ::= "<" | ">" | "=" | "^" sign ::= "+" | "-" | " " width ::= digit+ grouping_option ::= "_" | "," precision ::= digit+ type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"