DEV Community

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

Posted on

format_map in Python (6)

Buy Me a Coffee

*Memo:

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

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

v = {'k':123456.78912}
       # |    11    |

print(v['k'])
# 123456.78912
# |    11    |

print('"{k:.20g}"'.format_map(v))
print('"{k:.20G}"'.format_map(v))
print('"{k:.20}"'.format_map(v))
# "123456.78912000000128"
#  |        20         |

print('"{k:.18g}"'.format_map(v))
print('"{k:.18G}"'.format_map(v))
print('"{k:.18}"'.format_map(v))
# "123456.789120000001"
#  |       18        |

print('"{k:.17g}"'.format_map(v))
print('"{k:.17G}"'.format_map(v))
print('"{k:.17}"'.format_map(v))
print('"{k:.11g}"'.format_map(v))
print('"{k:.11G}"'.format_map(v))
print('"{k:.11}"'.format_map(v))
print('"{k:}"'.format_map(v))
print('"{k}"'.format_map(v))
# "123456.78912"
#  |    11    |

print('"{k:.10g}"'.format_map(v))
print('"{k:.10G}"'.format_map(v))
print('"{k:.10}"'.format_map(v))
# "123456.7891"
#  |   10    |

print('"{k:.9g}"'.format_map(v))
print('"{k:.9G}"'.format_map(v))
print('"{k:.9}"'.format_map(v))
# "123456.789"
#  |   9    |

print('"{k:.8g}"'.format_map(v))
print('"{k:.8G}"'.format_map(v))
print('"{k:.8}"'.format_map(v))
# "123456.79"
#  |   8   |

print('"{k:.7g}"'.format_map(v))
print('"{k:.7G}"'.format_map(v))
print('"{k:.7}"'.format_map(v))
# "123456.8"
#  |  7   |

print('"{k:.6g}"'.format_map(v))
print('"{k:.6G}"'.format_map(v))
print('"{k:g}"'.format_map(v))
print('"{k:G}"'.format_map(v))
# "123457"
#  | 6  |

print('"{k:.6}"'.format_map(v))
# "1.23457e+05"
#  |  6  |

print('"{k:.5g}"'.format_map(v))
print('"{k:.5}"'.format_map(v))
# "1.2346e+05"
#  | 5  |

print('"{k:.5G}"'.format_map(v))
# "1.2346E+05"
#  | 5  |

print('"{k:.4g}"'.format_map(v))
print('"{k:.4}"'.format_map(v))
# "1.235e+05"
#  | 4 |

print('"{k:.4G}"'.format_map(v))
# "1.235E+05"
#  | 4 |

print('"{k:.3g}"'.format_map(v))
print('"{k:.3}"'.format_map(v))
# "1.23e+05"
#  |3 |

print('"{k:.3G}"'.format_map(v))
# "1.23E+05"
#  |3 |

print('"{k:.2g}"'.format_map(v))
print('"{k:.2}"'.format_map(v))
# "1.2e+05"
#  |2|

print('"{k:.2G}"'.format_map(v))
# "1.2E+05"
#  |2|

print('"{k:.1g}"'.format_map(v))
print('"{k:.1}"'.format_map(v))
print('"{k:.0g}"'.format_map(v))
print('"{k:.0}"'.format_map(v))
# "1e+05"

print('"{k:.1G}"'.format_map(v))
print('"{k:.0G}"'.format_map(v))
# "1E+05"

print('"{k:#.1g}"'.format_map(v))
print('"{k:#.1}"'.format_map(v))
print('"{k:#.0g}"'.format_map(v))
print('"{k:#.0}"'.format_map(v))
# "1.e+05"

print('"{k:#.1G}"'.format_map(v))
print('"{k:#.0G}"'.format_map(v))
# "1.E+05"

print('"{k:,.20g}"'.format_map(v))
print('"{k:,.20G}"'.format_map(v))
print('"{k:,.20}"'.format_map(v))
# "123,456.78912000000128"
#  |         20         |

print('"{k:,g}"'.format_map(v))
print('"{k:,G}"'.format_map(v))
# "123,457"
#  |  6  |

print('"{k:,}"'.format_map(v))
# "123,456.78912"
#  |    11     |

print('"{k:_.20g}"'.format_map(v))
print('"{k:_.20G}"'.format_map(v))
# "123_456.78912000000128"
#  |         20         |

print('"{k:_g}"'.format_map(v))
print('"{k:_G}"'.format_map(v))
# "123_457"
#  |  6  |

print('"{k:_}"'.format_map(v))
# "123_456.78912"
#  |    11     |
Enter fullscreen mode Exit fullscreen mode
print("{k1:g} {k2:g}".format_map({'k1':float('nan'), 'k2':float('inf')}))
# nan inf

print("{k1:G} {k2:G}".format_map({'k1':float('nan'), 'k2':float('inf')}))
# 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 = {'k':Decimal('123456.78912')}
                # |    11    |

print(v['k'])
# 123456.78912
# |    11    |

print('"{k:.20g}"'.format_map(v))
print('"{k:.20G}"'.format_map(v))
print('"{k:.20}"'.format_map(v))
print('"{k:.18g}"'.format_map(v))
print('"{k:.18G}"'.format_map(v))
print('"{k:.18}"'.format_map(v))
print('"{k:.17g}"'.format_map(v))
print('"{k:.17G}"'.format_map(v))
print('"{k:.17}"'.format_map(v))
print('"{k:.11g}"'.format_map(v))
print('"{k:.11G}"'.format_map(v))
print('"{k:.11}"'.format_map(v))
print('"{k:g}"'.format_map(v))
print('"{k:G}"'.format_map(v))
print('"{k:}"'.format_map(v))
print('"{k}"'.format_map(v))
# "123456.78912"
#  |    11    |

print('"{k:.10g}"'.format_map(v))
print('"{k:.10G}"'.format_map(v))
print('"{k:.10}"'.format_map(v))
# "123456.7891"
#  |   10    |

print('"{k:.9g}"'.format_map(v))
print('"{k:.9G}"'.format_map(v))
print('"{k:.9}"'.format_map(v))
# "123456.789"
#  |   9    |

print('"{k:.8g}"'.format_map(v))
print('"{k:.8G}"'.format_map(v))
print('"{k:.8}"'.format_map(v))
# "123456.79"
#  |   8   |

print('"{k:.7g}"'.format_map(v))
print('"{k:.7G}"'.format_map(v))
print('"{k:.7}"'.format_map(v))
# "123456.8"
#  |  7   |

print('"{k:.6g}"'.format_map(v))
print('"{k:.6G}"'.format_map(v))
print('"{k:.6}"'.format_map(v))
# "123457"
#  | 6  |

print('"{k:.5g}"'.format_map(v))
# "1.2346e+5"
#  | 5  |

print('"{k:.5G}"'.format_map(v))
print('"{k:.5}"'.format_map(v))
# "1.2346E+5"
#  | 5  |

print('"{k:.4g}"'.format_map(v))
# "1.235e+5"
#  | 4 |

print('"{k:.4G}"'.format_map(v))
print('"{k:.4}"'.format_map(v))
# "1.235E+5"
#  | 4 |

print('"{k:.3g}"'.format_map(v))
# "1.23e+5"
#  |3 |

print('"{k:.3G}"'.format_map(v))
print('"{k:.3}"'.format_map(v))
# "1.23E+5"
#  |3 |

print('"{k:.2g}"'.format_map(v))
# "1.2e+5"
#  |2|

print('"{k:.2G}"'.format_map(v))
print('"{k:.2}"'.format_map(v))
# "1.2E+5"
#  |2|

print('"{k:.1g}"'.format_map(v))
print('"{k:.0g}"'.format_map(v))
# "1e+5"

print('"{k:.1G}"'.format_map(v))
print('"{k:.1}"'.format_map(v))
print('"{k:.0G}"'.format_map(v))
print('"{k:.0}"'.format_map(v))
# "1E+5"

print('"{k:#.1g}"'.format_map(v))
print('"{k:#.0g}"'.format_map(v))
# "1.e+5"

print('"{k:#.1G}"'.format_map(v))
print('"{k:#.1}"'.format_map(v))
print('"{k:#.0G}"'.format_map(v))
print('"{k:#.0}"'.format_map(v))
# "1.E+5"

print('"{k:,.20g}"'.format_map(v))
print('"{k:,.20G}"'.format_map(v))
print('"{k:,.20}"'.format_map(v))
print('"{k:,g}"'.format_map(v))
print('"{k:,G}"'.format_map(v))
print('"{k:,}"'.format_map(v))
# "123,456.78912"
#  |    11     |

print('"{k:_.20g}"'.format_map(v))
print('"{k:_.20G}"'.format_map(v))
print('"{k:_.20}"'.format_map(v))
print('"{k:_g}"'.format_map(v))
print('"{k:_G}"'.format_map(v))
print('"{k:_}"'.format_map(v))
# ValueError: invalid format string
Enter fullscreen mode Exit fullscreen mode
from decimal import Decimal

print('"{k1:g} {k2:g}"'.format_map({'k1':Decimal(value=float('nan')),
                                    'k2':Decimal(value=float('inf'))}))
print('"{k1:G} {k2:G}"'.format_map({'k1':Decimal(value=float('nan')),
                                    'k2':Decimal(value=float('inf'))}))
# "NaN Infinity"
Enter fullscreen mode Exit fullscreen mode

Top comments (0)