Python không có toán tử tăng / giảm một bậc (++ / -). Thay vào đó để tăng giá trị, hãy sử dụng
a += 1
để giảm giá trị, sử dụng−
a -= 1
Ví dụ
>>> a = 0 >>> >>> #Increment >>> a +=1 >>> >>> #Decrement >>> a -= 1 >>> >>> #value of a >>> a 0
Python không cung cấp nhiều cách để làm điều tương tự.
Tuy nhiên, hãy cẩn thận nếu bạn đến từ một ngôn ngữ như C, Python không có "biến" theo nghĩa của C, thay vào đó python sử dụng tên và đối tượng và trong Python, số nguyên (int’s) là bất biến.
Hãy hiểu nó bằng một ví dụ−
>>> a =1 >>> print(id(a)) 1919375088 >>> print(hex(id(a))) 0x726756f0
Vì vậy, câu lệnh trên có nghĩa là gì trong python là:tạo một đối tượng kiểu int có giá trị 1 và đặt tên a cho nó. Đối tượng là một thể hiện của int có giá trị 1 và tên a tham chiếu đến nó. Tên được gán a và đối tượng mà nó đề cập đến là khác biệt.
Bây giờ, hãy tăng một
>>> a +=1 >>> print(id(a)) 1919375104 >>> print(hex(id(a))) 0x72675700
Vì int là không thay đổi, python hiểu câu lệnh trên là
-
Tra cứu đối tượng mà a tham chiếu đến (nó là int và id 0x726756f0)
-
Tra cứu giá trị của đối tượng 0x726756f0 (nó là 1).
-
Thêm 1 vào giá trị đó (1 + 1 =2)
-
Tạo một đối tượng int mới có giá trị 2 (đối tượng có id 0x72675700).
-
Gắn lại tên a cho đối tượng mới này (0x72675700)
-
Bây giờ a tham chiếu đến đối tượng 0x72675700 và đối tượng trước đó (0x726756f0) không còn được tham chiếu đến bằng tên a nữa. Nếu không có bất kỳ tên nào khác đề cập đến đối tượng ban đầu, nó sẽ được thu thập sau đó.
Vì vậy, từ phía trên, bạn có thể hiểu khi chúng tôi thực hiện:a + =1
Thao tác này sẽ gán lại a thành +1. Đó không phải là một toán tử tăng, bởi vì nó không tăng a, nhưng nó sẽ gán lại nó.
Hãy hiểu mức tăng / giảm ở trên với một số ví dụ khác−
>>> a = b = c =1 >>> id(a) 1919375088 >>> id(b) 1919375088 >>> id(c) 1919375088 >>> #Above all have the same id >>> >>> # Now increment a >>> a +=1 >>> id(a) 1919375104 >>> id(b) 1919375088 >>> id(c) 1919375088
Từ trên, bạn có thể hiểu rằng chúng ta có một đối tượng duy nhất mà a, b và c tham chiếu đến (một int với id 1919375088)
Khi tăng giá trị của a, bây giờ a được gán lại thành a + 1 (id:1919375104) và b và c khác tham chiếu đến cùng một đối tượng (1919375088).
Ngoài ra, python cũng sử dụng toán tử ++ / -.
>>> a =1 >>> ++a 1 >>> --a 1