Titan + Enceladus |
#!/bin/bash
cat py_fmt
Semplicissimo, vero? Visualizza il file py_fmt che si trova nella stessa directory, per me ~/bin
Python Format specification, da qui:
https://docs.python.org/3/library/string.html#formatspec
Dati usati negli esempi
est = 'specifiche di format'
n_int = 42
n_fl1 = 123.456
n_fl2 = 73 / 37
K = 1000
M = 1000_000
G = 1000_000_000
Generico
st = f'{est}: intero {n_int}, float {n_fl1} e {n_fl2}'
print(st)
specifiche di format: intero 42, float 123.456 e 1.972972972972973
st = f'e anche: {K * n_fl2}, {M * n_fl2}, {G * n_fl2}'
print(st)
e anche: 1972.9729729729731, 1972972.972972973, 1972972972.972973
Usando format (come prima di 3.6):
st = 'intero {0}, float {1} e {2}'.format(n_int, n_fl1, K * n_fl2)
print(st)
intero 42, float 123.456 e 1972.9729729729731
Controllo formato/precisione
interi
st = f'{n_int} {n_int:d} {n_int:5d}'
print(st)
42 42 42
st = f'bin: {n_int:#b}, oct: {n_int:#o}, hex: {n_int:#x} o {n_int:#X}'
print(st)
bin: 0b101010, oct: 0o52, hex: 0x2a o 0X2A
floating point -- f
st = f'{n_fl1} {n_fl1:.2f} {n_fl1:10.4} {n_fl2} {n_fl2:.2f} {n_fl2:10.2}'
print(st)
123.456 123.46 123.5 1.972972972972973 1.97 2.0
formato esponenziale -- e
st = f'{n_fl1} {n_fl1:.2} {n_fl1:10.2e} {n_fl2} {n_fl2:.2e} {n_fl2:10.2E}'
print(st)
123.456 1.2e+02 1.23e+02 1.972972972972973 1.97e+00 1.97E+00
st = f'{n_fl2 * K} {n_fl2 * K : .2e} {n_fl2 * M : 10.2e}' + \
f'{n_fl2 * G : .3e} {n_fl2 * G : .3E}'
print(st)
1972.9729729729731 1.97e+03 1.97e+06 1.973e+09 1.973E+09
formato generale -- g
st = f'{n_fl2} {n_fl2 * K} {NL}' + \
f'{n_fl2 : .3e} {n_fl2 * K : .3e} {n_fl2 * M : .3e}' + \
f'{n_fl2 * G: .3e} {NL}' + \
f'{n_fl2 : .4g} {n_fl2 * K: .4g} {n_fl2 * M : .4g} {n_fl2 * G: .4G}'
print(st)
1.972972972972973 1972.9729729729731
1.973e+00 1.973e+03 1.973e+06 1.973e+09
1.973 1973 1.973e+06 1.973E+09
Non è perfetto, sto già pensando a una nuova versione, migliorata, ma per adesso produce questo (sì, lo so che non rende 🙂)
🔴🔵
Nessun commento:
Posta un commento