2016-05-06 11 views
1

Python 2 hat zwei Division Operatoren: / und //. Die folgende Ausgabe:Unterschied zwischen "//" und "/" in Python 2

========================================= RESTART: Shell ========================================= 
>>> for x in range(10): 
     for y in range(1, 10): 
       print x,'//',y,'=',x//y 
       print x,'/',y,'=',x/y 
       print 


0 // 1 = 0 
0/1 = 0 

0 // 2 = 0 
0/2 = 0 

0 // 3 = 0 
0/3 = 0 

0 // 4 = 0 
0/4 = 0 

0 // 5 = 0 
0/5 = 0 

0 // 6 = 0 
0/6 = 0 

0 // 7 = 0 
0/7 = 0 

0 // 8 = 0 
0/8 = 0 

0 // 9 = 0 
0/9 = 0 

1 // 1 = 1 
1/1 = 1 

1 // 2 = 0 
1/2 = 0 

1 // 3 = 0 
1/3 = 0 

1 // 4 = 0 
1/4 = 0 

1 // 5 = 0 
1/5 = 0 

1 // 6 = 0 
1/6 = 0 

1 // 7 = 0 
1/7 = 0 

1 // 8 = 0 
1/8 = 0 

1 // 9 = 0 
1/9 = 0 

2 // 1 = 2 
2/1 = 2 

2 // 2 = 1 
2/2 = 1 

2 // 3 = 0 
2/3 = 0 

2 // 4 = 0 
2/4 = 0 

2 // 5 = 0 
2/5 = 0 

2 // 6 = 0 
2/6 = 0 

2 // 7 = 0 
2/7 = 0 

2 // 8 = 0 
2/8 = 0 

2 // 9 = 0 
2/9 = 0 

3 // 1 = 3 
3/1 = 3 

3 // 2 = 1 
3/2 = 1 

3 // 3 = 1 
3/3 = 1 

3 // 4 = 0 
3/4 = 0 

3 // 5 = 0 
3/5 = 0 

3 // 6 = 0 
3/6 = 0 

3 // 7 = 0 
3/7 = 0 

3 // 8 = 0 
3/8 = 0 

3 // 9 = 0 
3/9 = 0 

4 // 1 = 4 
4/1 = 4 

4 // 2 = 2 
4/2 = 2 

4 // 3 = 1 
4/3 = 1 

4 // 4 = 1 
4/4 = 1 

4 // 5 = 0 
4/5 = 0 

4 // 6 = 0 
4/6 = 0 

4 // 7 = 0 
4/7 = 0 

4 // 8 = 0 
4/8 = 0 

4 // 9 = 0 
4/9 = 0 

5 // 1 = 5 
5/1 = 5 

5 // 2 = 2 
5/2 = 2 

5 // 3 = 1 
5/3 = 1 

5 // 4 = 1 
5/4 = 1 

5 // 5 = 1 
5/5 = 1 

5 // 6 = 0 
5/6 = 0 

5 // 7 = 0 
5/7 = 0 

5 // 8 = 0 
5/8 = 0 

5 // 9 = 0 
5/9 = 0 

6 // 1 = 6 
6/1 = 6 

6 // 2 = 3 
6/2 = 3 

6 // 3 = 2 
6/3 = 2 

6 // 4 = 1 
6/4 = 1 

6 // 5 = 1 
6/5 = 1 

6 // 6 = 1 
6/6 = 1 

6 // 7 = 0 
6/7 = 0 

6 // 8 = 0 
6/8 = 0 

6 // 9 = 0 
6/9 = 0 

7 // 1 = 7 
7/1 = 7 

7 // 2 = 3 
7/2 = 3 

7 // 3 = 2 
7/3 = 2 

7 // 4 = 1 
7/4 = 1 

7 // 5 = 1 
7/5 = 1 

7 // 6 = 1 
7/6 = 1 

7 // 7 = 1 
7/7 = 1 

7 // 8 = 0 
7/8 = 0 

7 // 9 = 0 
7/9 = 0 

8 // 1 = 8 
8/1 = 8 

8 // 2 = 4 
8/2 = 4 

8 // 3 = 2 
8/3 = 2 

8 // 4 = 2 
8/4 = 2 

8 // 5 = 1 
8/5 = 1 

8 // 6 = 1 
8/6 = 1 

8 // 7 = 1 
8/7 = 1 

8 // 8 = 1 
8/8 = 1 

8 // 9 = 0 
8/9 = 0 

9 // 1 = 9 
9/1 = 9 

9 // 2 = 4 
9/2 = 4 

9 // 3 = 3 
9/3 = 3 

9 // 4 = 2 
9/4 = 2 

9 // 5 = 1 
9/5 = 1 

9 // 6 = 1 
9/6 = 1 

9 // 7 = 1 
9/7 = 1 

9 // 8 = 1 
9/8 = 1 

9 // 9 = 1 
9/9 = 1 

>>> 

beweist (fast?) Die ganze Zeit a/ba//b entspricht. Gibt es Zeit, dass es nicht ist? Wenn nicht, warum hat Python 2 zwei Operatoren eingebaut, die dasselbe tun?

+1

Wenn auf ganze Zahlen in Python 2.x angewendet, '/' und '' // sind genau gleich. Versuchen Sie den gleichen Test in Python 3.x und bereiten Sie sich auf eine Überraschung vor. Mit zwei Betreibern konnte man sich auf die Zukunft vorbereiten. –

+0

'von __future__ Import division' –

+0

Der neue' // 'Divisions-Operator von [PEP 238 - Ändern der Abteilung Operator] eingeführt wurde (https://www.python.org/dev/peps/pep-0238/). Um die "Zukunft" (Python 3) Stil Division standardmäßig zu erhalten, starten Sie Ihr Programm mit dem Import von [ '__future__'] (https://docs.python.org/2/library/__future__.html), die Peter Wood kommentiert über. –

Antwort

6

// ist der platt-Divisions-Operator in Python. Das Ergebnis wird leicht erkennbar sein, wenn Sie Floating-Point versuchen Dividieren

# Python 2 
>>> 10.0/3 
3.3333333333333335 
>>> 10.0 // 3 
3.0 
Werte

In Python2, Dividieren zwei Ints Integer-Division verwendet, die Sie das gleiche wie platt Division endet immer. Sie können jedoch weiterhin // verwenden, um ein floored Ergebnis der Gleitkommadivision zu erhalten. In Python3 führt das Teilen von zwei Ints zu einem Gleitkomma, aber die Verwendung von // wirkt als Ganzzahldivision.

# Python3 
>>> 10/3 
3.3333333333333335 
>>> 10 // 3 
3 
+0

dankte. Jetzt verstehe ich. –

+1

In Python 2 können Sie 'from__future__ import division' verwenden, um das Python 3-Verhalten von'/'zu erhalten. – kindall

+0

@Qlstudio konsequent, wenn Sie zukunftssicher gegen Ihren Code wollen als python3 verwendet wird, verwenden Sie immer '' // wenn Dividieren zwei Ints –

0

In Python 2.7, Realteilung tun müssen Sie Abteilung von einem Modul namens Zukunft importieren:

from __future__ import division 

Dann wird die / wird die reale (floating) Division, beispielsweise:

15/4 = 3.75 

Und die // wird die integer-Division (der ganzzahlige Teil der Realteilung) sein, Beispiel:

15 // 4 = 3 
Verwandte Themen