String in Python (28)

Buy Me a Coffee

*Memos:

:[f][a][s][z][#][0][w][g][.p][t] can format a string as shown below. *Format Specification Mini-Language explains more details:

<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     |
print(f'{float('nan'):g} {float('inf'):g}')
# nan inf

print(f'{float('nan'):G} {float('inf'):G}')
# NAN INF

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

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
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"

Leave a Reply