DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on • Edited on

f-strings in Python (6)

Buy Me a Coffee

*Memo:

:[f][a][s][z][#][0][w][g][.p][t] can format a string with f-strings as shown below:

<Format a string with 'float' input by or not by 'g' or 'G'>:

v = 123456.78912 # | 11 |  print(v) # 123456.78912 # | 11 |  print(f'"{v:.20g}"') print(f'"{v:.20G}"') print(f'"{v:.20}"') # "123456.78912000000128" # | 20 |  print(f'"{v:.18g}"') print(f'"{v:.18G}"') print(f'"{v:.18}"') # "123456.789120000001" # | 18 |  print(f'"{v:.17g}"') print(f'"{v:.17G}"') print(f'"{v:.17}"') print(f'"{v:.11g}"') print(f'"{v:.11G}"') print(f'"{v:.11}"') print(f'"{v:}"') print(f'"{v}"') # "123456.78912" # | 11 |  print(f'"{v:.10g}"') print(f'"{v:.10G}"') print(f'"{v:.10}"') # "123456.7891" # | 10 |  print(f'"{v:.9g}"') print(f'"{v:.9G}"') print(f'"{v:.9}"') # "123456.789" # | 9 |  print(f'"{v:.8g}"') print(f'"{v:.8G}"') print(f'"{v:.8}"') # "123456.79" # | 8 |  print(f'"{v:.7g}"') print(f'"{v:.7G}"') print(f'"{v:.7}"') # "123456.8" # | 7 |  print(f'"{v:.6g}"') print(f'"{v:.6G}"') print(f'"{v:g}"') print(f'"{v:G}"') # "123457" # | 6 |  print(f'"{v:.6}"') # "1.23457e+05" # | 6 |  print(f'"{v:.5g}"') print(f'"{v:.5}"') # "1.2346e+05" # | 5 |  print(f'"{v:.5G}"') # "1.2346E+05" # | 5 |  print(f'"{v:.4g}"') print(f'"{v:.4}"') # "1.235e+05" # | 4 |  print(f'"{v:.4G}"') # "1.235E+05" # | 4 |  print(f'"{v:.3g}"') print(f'"{v:.3}"') # "1.23e+05" # |3 |  print(f'"{v:.3G}"') # "1.23E+05" # |3 |  print(f'"{v:.2g}"') print(f'"{v:.2}"') # "1.2e+05" # |2|  print(f'"{v:.2G}"') # "1.2E+05" # |2|  print(f'"{v:.1g}"') print(f'"{v:.1}"') print(f'"{v:.0g}"') print(f'"{v:.0}"') # "1e+05"  print(f'"{v:.1G}"') print(f'"{v:.0G}"') # "1E+05"  print(f'"{v:#.1g}"') print(f'"{v:#.1}"') print(f'"{v:#.0g}"') print(f'"{v:#.0}"') # "1.e+05"  print(f'"{v:#.1G}"') print(f'"{v:#.0G}"') # "1.E+05"  print(f'"{v:,.20g}"') print(f'"{v:,.20G}"') print(f'"{v:,.20}"') # "123,456.78912000000128" # | 20 |  print(f'"{v:,g}"') print(f'"{v:,G}"') # "123,457" # | 6 |  print(f'"{v:,}"') # "123,456.78912" # | 11 |  print(f'"{v:_.20g}"') print(f'"{v:_.20G}"') # "123_456.78912000000128" # | 20 |  print(f'"{v:_g}"') print(f'"{v:_G}"') # "123_457" # | 6 |  print(f'"{v:_}"') # "123_456.78912" # | 11 | 
Enter fullscreen mode Exit fullscreen mode
print(f'{float('nan'):g} {float('inf'):g}') # nan inf  print(f'{float('nan'):G} {float('inf'):G}') # NAN INF 
Enter fullscreen mode Exit fullscreen mode

<Format a string with Decimal() input by or not by 'g' or 'G'>:

from decimal import Decimal v = Decimal('123456.78912') # | 11 |  print(v) # 123456.78912 # | 11 |  print(f'"{v:.20g}"') print(f'"{v:.20G}"') print(f'"{v:.20}"') print(f'"{v:.18g}"') print(f'"{v:.18G}"') print(f'"{v:.18}"') print(f'"{v:.17g}"') print(f'"{v:.17G}"') print(f'"{v:.17}"') print(f'"{v:.11g}"') print(f'"{v:.11G}"') print(f'"{v:.11}"') print(f'"{v:g}"') print(f'"{v:G}"') print(f'"{v:}"') print(f'"{v}"') # "123456.78912" # | 11 |  print(f'"{v:.10g}"') print(f'"{v:.10G}"') print(f'"{v:.10}"') # "123456.7891" # | 10 |  print(f'"{v:.9g}"') print(f'"{v:.9G}"') print(f'"{v:.9}"') # "123456.789" # | 9 |  print(f'"{v:.8g}"') print(f'"{v:.8G}"') print(f'"{v:.8}"') # "123456.79" # | 8 |  print(f'"{v:.7g}"') print(f'"{v:.7G}"') print(f'"{v:.7}"') # "123456.8" # | 7 |  print(f'"{v:.6g}"') print(f'"{v:.6G}"') print(f'"{v:.6}"') # "123457" # | 6 |  print(f'"{v:.5g}"') # "1.2346e+5" # | 5 |  print(f'"{v:.5G}"') print(f'"{v:.5}"') # "1.2346E+5" # | 5 |  print(f'"{v:.4g}"') # "1.235e+5" # | 4 |  print(f'"{v:.4G}"') print(f'"{v:.4}"') # "1.235E+5" # | 4 |  print(f'"{v:.3g}"') # "1.23e+5" # |3 |  print(f'"{v:.3G}"') print(f'"{v:.3}"') # "1.23E+5" # |3 |  print(f'"{v:.2g}"') # "1.2e+5" # |2|  print(f'"{v:.2G}"') print(f'"{v:.2}"') # "1.2E+5" # |2|  print(f'"{v:.1g}"') print(f'"{v:.0g}"') # "1e+5"  print(f'"{v:.1G}"') print(f'"{v:.1}"') print(f'"{v:.0G}"') print(f'"{v:.0}"') # "1E+5"  print(f'"{v:#.1g}"') print(f'"{v:#.0g}"') # "1.e+5"  print(f'"{v:#.1G}"') print(f'"{v:#.1}"') print(f'"{v:#.0G}"') print(f'"{v:#.0}"') # "1.E+5"  print(f'"{v:,.20g}"') print(f'"{v:,.20G}"') print(f'"{v:,.20}"') print(f'"{v:,g}"') print(f'"{v:,G}"') print(f'"{v:,}"') # "123,456.78912" # | 11 |  print(f'"{v:_.20g}"') print(f'"{v:_.20G}"') print(f'"{v:_.20}"') print(f'"{v:_g}"') print(f'"{v:_G}"') print(f'"{v:_}"') # ValueError: invalid format string 
Enter fullscreen mode Exit fullscreen mode
from decimal import Decimal v1 = Decimal(value=float('nan')) v2 = Decimal(value=float('inf')) print(f'"{v1:g} {v2:g}"') print(f'"{v1:G} {v2:G}"') # "NaN Infinity" 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)