Gibt es einen Vorteil, den einen gegenüber dem anderen zu verwenden? In Python 2 scheinen sie beide die gleichen Ergebnisse zurückzugeben:
>>> 6/3
2
>>> 6//3
2
Gibt es einen Vorteil, den einen gegenüber dem anderen zu verwenden? In Python 2 scheinen sie beide die gleichen Ergebnisse zurückzugeben:
>>> 6/3
2
>>> 6//3
2
In Python 3.x, 5 / 2
wird 2.5
zurückgeben und 5 // 2
wird 2
zurückgeben. Das erste ist Gleitkomma-Division, und das zweite ist Ganzzahldivision, manchmal auch Ganzzahldivision genannt.
In Python 2.2 oder später in der 2.x-Reihe besteht kein Unterschied für Ganzzahlen, es sei denn, Sie führen ein from __future__ import division
durch, was dazu führt, dass Python 2.x das Verhalten von 3.x übernimmt.
Unabhängig von dem zukünftigen Import wird 5.0 // 2
2.0
zurückgeben, da dies das Ergebnis der Ganzzahldivision der Operation ist.
Sie können eine detaillierte Beschreibung unter PEP 238: Ändern des Divisionoperators finden.
//
implementiert die "Floor Division", unabhängig von Ihrem Typ. Daher ergibt 1.0/2.0
0.5
, aber sowohl 1/2
, 1//2
und 1.0//2.0
ergeben 0
.
Siehe PEP 238: Änderung des Division Operators für Details.
/ Gleitkomma-Division
// Abrundungs-Division
Lassen Sie uns einige Beispiele sowohl in Python 2.7 als auch in Python 3.5 sehen.
Python 2.7.10 vs. Python 3.5
print (2/3) ----> 0 Python 2.7
print (2/3) ----> 0.6666666666666666 Python 3.5
Python 2.7.10 vs. Python 3.5
print (4/2) ----> 2 Python 2.7
print (4/2) ----> 2.0 Python 3.5
Wenn Sie (in Python 2.7) dasselbe Ergebnis haben möchten wie in Python 3.5, können Sie folgendes tun:
Python 2.7.10
from __future__ import division
print (2/3) ----> 0.6666666666666666 # Python 2.7
print (4/2) ----> 2.0 # Python 2.7
Während es keinen Unterschied in der Abrundungs-Division zwischen Python 2.7 und Python 3.5 gibt.
138.93//3 ---> 46.0 # Python 2.7
138.93//3 ---> 46.0 # Python 3.5
4//3 ---> 1 # Python 2.7
4//3 ---> 1 # Python 3.5
Wie bereits von allen beantwortet wurde, ist //
Ganzzahldivision.
Was daran wichtig ist, ist dass //
in allen Python-Versionen ab 2.2, einschließlich Python 3.x-Versionen, eindeutig Ganzzahldivision ist.
Das Verhalten von /
kann sich je nach folgenden Faktoren ändern:
__future__
-Import oder nicht (modul-lokal)-Q old
oder -Q new
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
3 Stimmen
Bitte schauen Sie sich Das Problem mit der ganzzahligen Division an, um den Grund für die Einführung des
//
Operators zur Durchführung ganzzahliger Division zu erfahren.