//
è incondizionatamente "divisione pavimenti", per esempio:
>>> 4.0//1.5
2.0
Come si vede, anche se entrambi gli operandi sono float
s, //
ancora piani - in modo da sapere sempre in modo sicuro quello che fara '.
singolo /
può o non può pavimento a seconda versione di Python, le importazioni future, e anche le bandiere su cui corsa di Python, per esempio ...:
$ python2.6 -Qold -c 'print 2/3'
0
$ python2.6 -Qnew -c 'print 2/3'
0.666666666667
Come si vede, unico /
possono piano, o può restituire un float, basato su problemi completamente non locali, fino al valore del flag -Q
compreso ... ;-).
Quindi, se e quando si sa si desidera pavimenti, sempre uso //
, che garantisce. Se e quando sai di avere non vuoi vuoi pavimenti, schiaffi uno float()
intorno ad altri operandi e usa /
. Qualsiasi altra combinazione, e siete in balia di versione, le importazioni, e bandiere -!)
fonte
2009-10-08 04:28:53
Io in realtà come questo stile migliore ... mi ricordo in almeno uno di lingua che ho usato (VB?) Il fattore di differenziazione è stato '/' 'vs \' ... ma non riusciva mai a ricordare che era quale! –
Il PEP si occupa anche del fatto che il backslash è riservato ai caratteri di escape o alle nuove linee di escape, in modo tale che il tipo di operatore '' immediatamente eliminato '\ '. –
Grazie, sono stato impegnato con Python 3+ per un po 'di tempo, e non l'ho mai rinnovato, ho sempre fatto 'int (n/i)'. Grandi informazioni qui! – Hidde