10

Natknąłem się na składnię kodu d //= 2, gdzie d jest zmienną. To nie jest część żadnej pętli, nie całkiem rozumiem.
Czy ktoś może mnie oświecić, proszę?Co oznacza składnia "zmienna // = wartość" w języku Python?

+1

Powinniśmy uczynić to kanoniczną odpowiedzią i zamknąć mniej pomocniczo sformułowane [Two forward slashes in Python] (http://stackoverflow.com/questions/14444520/two-forward-slashes-in-python) jako duplikat to. – smci

+0

innym [2013 odpowiedzi] (http://stackoverflow.com/questions/14820104), który jest łatwo znaleźć w [stackse] (http://stackse.com) stosując ** pytona // = ** zapytania. – ren

+0

google dla "operatora python" najpierw –

Odpowiedz

26

// jest operatorem podziału piętra. Poza tym = oznacza działanie na zmiennej "w miejscu". Jest podobny do operatorów += i *=, jeśli widziałeś je wcześniej, z wyjątkiem tego, że jest z podziałem.

Załóżmy, że mam zmienną o nazwie d. Ustawiłem tę wartość na 65, w ten sposób.

>>> d = 65 

Wywołanie d //= 2 podzieli d przez 2, a następnie przypisać wynik d. Ponieważ d // 2 wynosi 32 (32,5, ale z częścią dziesiętną zdjęto) d staje 32:

>>> d //= 2 
>>> d 
32 

To tak samo jak wywołanie d = d // 2.

+0

To samo pod tym okoliczności, ale w ogóle, to nie jest koniecznie to samo. Zobacz https://docs.python.org/3/library/operator.html#operator.__floordiv__ vs. https://docs.python.org/3.4/library/operator.html#operator.__ifloordiv__. – glglgl

6

Dzieli d przez 2, zaokrąglając w dół. Python można uruchamiać interaktywnie, wypróbuj.

$ python 
Python 2.7.10 (default, Oct 23 2015, 19:19:21) 
>>> a = 4 
>>> a //= 2 
>>> a 
2 
+4

"a = 5" byłby lepszym przykładem. (Aby kontrastować z 'a/= 2') –

4

Dzieli zmienną z dzieleniem podłogi przez dwa i przypisuje nową wartość do zmiennej.