HOWTO · Python

Notazione scientifica in Python

Questo tutorial mostra come mostrare i numeri in notazione scientifica in Python

In questa pagina

La notazione scientifica viene utilizzata per rappresentare numeri molto grandi o piccoli in modo compatto e comprensibile. Tale notazione viene utilizzata anche nella programmazione; ad esempio, 6000000 può essere rappresentato come 6E+6. Allo stesso modo, 0.000006 può essere rappresentato come 6E-6.

Per una panoramica completa degli argomenti più richiesti, puoi consultare il nostro tutorial Python, che raccoglie le guide pratiche in un percorso di apprendimento ordinato.

In questo tutorial, discuteremo come utilizzare tali notazioni scientifiche in Python.

Usa la funzione format() per rappresentare i valori nella notazione scientifica in Python

La funzione di formattazione viene utilizzata per formattare le stringhe in un formato specifico. Possiamo usare questa funzione per convertire valori float grandi o piccoli nel rispettivo formato esponenziale come mostrato di seguito:

no1 = float(5800000.00000)
no2 = float(0.0000058)
print(format(no1, ".1E"))
print(format(no2, ".1E"))

Produzione:

5.8E+06
5.8E-06

Qui .1E è il modello di formattazione specificato. E indica la notazione esponenziale per stampare il valore in notazione scientifica, e .1 specifica che deve esserci una cifra dopo il decimale.

Usa le fstrings per rappresentare i valori nella notazione scientifica in Python

In Python 3.6 e versioni successive, possiamo usare fstrings per formattare le stringhe. Questo metodo è considerato più preciso e meno soggetto a errori. Migliora la leggibilità del codice rispetto alla tradizionale funzione format(). fstrings può aiutare nella rappresentazione, come mostrato di seguito.

no1 = float(5800000.00000)
no2 = float(0.0000058)
print(f"{no1:.1E}")
print(f"{no2:.1E}")

Produzione:

5.8E+06
5.8E-06

Si noti che il modello di formato è lo stesso del metodo sopra.

Usa la funzione numpy.format_float_scientific() per rappresentare i valori nella notazione scientifica

Il modulo NumPy in Python ha una funzione format_float_scientific() che può essere usata per formattare un valore fluttuante nella sua notazione scientifica.

Possiamo usare il parametro precision per specificare le cifre decimali totali e exp_digits per dire quante cifre sono necessarie nella notazione esponenziale. Altri parametri disponibili sono sign, unique e trim, che offrono maggiori personalizzazioni.

Il risultato finale restituito da questa funzione è una stringa.

import numpy as np

no1 = float(5800000.00000)
no2 = float(0.0000058)

print(np.format_float_scientific(no1, precision=1, exp_digits=3))
print(np.format_float_scientific(no2, precision=2, exp_digits=3))

Produzione:

5.8e+006
5.8e-006