PDA

View Full Version : [Python] - Assegnare la virgola mobile a più variabili


Alessiuccio
17-04-2012, 20:54
Ciao a tutti, sono agli inizi con Python e con la programmazione in generale. Volevo chiedere ai più esperti qual'è il modo giusto per rendere in virgola mobile il risultato di una funzione che coinvolge diversi interi...

per es.:

voglio creare una funzione che calcola la pendenza di una retta passante tra due punti...


def Pendenza(x1, y1, x2, y2):
... if x1 == x2:
... print "Retta parallela a Y"
... elif y1 == y2:
... print "Retta parallela a X"
... else:
... Risultato = (y2 - y1)/(x2 - x1)
... float(Risultato)
... return Risultato


così funziona, ma mi dà comunque il risultato come intero...
dove sbaglio?

cdimauro
17-04-2012, 21:51
Se i 4 valori sono tutti interi, il risultato della divisione rimarrà tale.

Per essere sicuro di ottenere comunque un float, devi convertirne almeno uno in float:
Risultato = float(y2 - y1)/(x2 - x1)

__ZERO_UNO__
17-04-2012, 21:53
Nella documentazione di Python è scritto che float() (la particolare funzione che stai usando) è un costruttore, come tale restituisce un oggetto di tipo float e, passandogli un argomento che può essere una stringa o un intero, la conversione in virgola mobile di esso. Il suo argomento non è modificato in alcun modo.

cdimauro
17-04-2012, 22:25
Ho parlato di valori, non di variabili. Tant'è che la funzione float è stata applicata al risultato di un'espressione.

Alessiuccio
18-04-2012, 20:34
perfetto ora mi è chiaro!

@cdimauro: sto proprio studiando dal libro che hai in firma :D