2015-12-14 13 views
11

Basta chiedersi qui, qual è il punto di avere un archivio variabile un valore infinito in un programma? C'è qualche uso effettivo e c'è qualche caso in cui sarebbe preferibile usare foo = float('Inf'), o è solo un piccolo frammento che hanno bloccato per il gusto di metterlo in?Qual è il punto di float ('Inf') in Python?

risposta

21

Agisce come un valore superiore illimitato per il confronto. Questo è utile per trovare i valori più bassi per qualcosa. ad esempio, calcolare i costi del percorso del percorso quando si attraversano alberi.

ad es. Trovare il percorso "più economico" in un elenco di opzioni:

>>> lowest_path_cost = float('inf') 
>>> # pretend that these were calculated using some worthwhile algorithm 
>>> path_costs = [1, 100, 2000000000000, 50] 
>>> for path in path_costs: 
... if path < lowest_path_cost: 
...  lowest_path_cost = path 
... 
>>> lowest_path_cost 
1 

se non aveste float('Inf') a vostra disposizione, quale valore useresti per the initial lowest_path_cost? Sarebbe 9999999 essere sufficiente - float('Inf') rimuove questa congettura.

5

Dal documentation: sono stati aggiunti

Molte funzioni in virgola mobile. La funzione float() ora trasforma la stringa nan in un valore IEEE 754 Not A Number e + inf e -inf in infinito positivo o negativo. Funziona su qualsiasi piattaforma con semantica IEEE 754. (Contributo di Christian Heimes; problema 1635.)

riferiscono anche questo: Working with Infinity and NaNs