10

Tôi gặp phải cú pháp mã d //= 2 trong đó d là một biến. Đây không phải là một phần của bất kỳ vòng lặp nào, tôi không hoàn toàn nhận được biểu thức.
Ai có thể khai sáng cho tôi được không?Cú pháp "biến // = a value" có nghĩa là gì trong Python?

+1

Chúng ta nên làm cho câu trả lời chính tắc này và đóng các từ ít khéo léo hơn [Hai dấu gạch chéo về phía trước trong Python] (http://stackoverflow.com/questions/14444520/two-forward-slashes-in-python) là bản sao của điều này. – smci

+0

Một câu trả lời khác [2013] (http://stackoverflow.com/questions/14820104) có thể dễ dàng tìm thấy tại [stackse] (http://stackse.com) bằng cách sử dụng truy vấn ** python // = **. – ren

+0

google cho "toán tử python" đầu tiên –

Trả lời

26

// là toán tử phân chia tầng. Các = bên cạnh nó có nghĩa là để hoạt động trên biến "tại chỗ". Nó tương tự như các toán tử +=*=, nếu bạn đã nhìn thấy các toán tử này trước đây, ngoại trừ điều này là với sự phân chia.

Giả sử tôi có một biến được gọi là d. Tôi đặt giá trị của nó là 65, như thế này.

>>> d = 65 

Calling d //= 2 sẽ chia d bằng 2, và sau đó gán kết quả đó để d. Kể từ đó, d // 2 là 32 (32,5, nhưng với phần thập phân cất cánh), d trở thành 32:

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

Nó giống như gọi d = d // 2.

+0

Nó giống nhau trong hoàn cảnh này, nhưng nói chung, nó không phải là nhất thiết phải giống nhau. Xem https://docs.python.org/3/library/operator.html#operator.__floordiv__ và https://docs.python.org/3.4/library/operator.html#operator.__ifloordiv__. – glglgl

6

Nó chia d cho 2, làm tròn xuống. Python có thể được chạy tương tác, Hãy thử nó.

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

'a = 5' sẽ là một ví dụ tốt hơn. (Để tương phản với 'a/= 2') –

4

Chia biến có chia tầng chia làm hai và gán số tiền mới cho biến.

Các vấn đề liên quan