파이썬에는 단항 증가/감소 연산자( ++/--)가 없습니다. 값을 늘리는 대신
를 사용하세요.a += 1
값을 감소시키려면 다음을 사용하십시오-
a -= 1
예시
>>> a = 0 >>> >>> #Increment >>> a +=1 >>> >>> #Decrement >>> a -= 1 >>> >>> #value of a >>> a 0
Python은 동일한 작업을 수행하는 여러 가지 방법을 제공하지 않습니다.
그러나 C와 같은 언어에서 온 경우 Python에는 C와 같은 의미에서 "변수"가 없습니다. 대신 Python은 이름과 객체를 사용하며 Python에서 정수(int's)는 변경할 수 없습니다.
예를 들어 이해합시다-
>>> a =1 >>> print(id(a)) 1919375088 >>> print(hex(id(a))) 0x726756f0
따라서 위의 명령문이 파이썬에서 의미하는 것은:값이 1인 int 유형의 객체를 만들고 이름을 지정하는 것입니다. 개체는 값이 1이고 이름이 참조하는 int의 인스턴스입니다. 할당된 이름과 참조하는 개체가 다릅니다.
이제 a
를 증가시키십시오.>>> a +=1 >>> print(id(a)) 1919375104 >>> print(hex(id(a))) 0x72675700
int는 변경할 수 없으므로 python은 위의 명령문을 다음과 같이 이해합니다.
-
a가 참조하는 객체 조회(int 및 id 0x726756f0)
-
개체 0x726756f0(1)의 값을 찾습니다.
-
해당 값에 1 추가(1+1 =2)
-
값이 2인 새 int 개체를 만듭니다(id가 0x72675700인 개체).
-
이 새 개체에 이름을 다시 바인드합니다(0x72675700)
-
이제 a는 개체 0x72675700을 참조하고 이전 개체(0x726756f0)는 더 이상 a라는 이름으로 참조되지 않습니다. 원래 개체를 참조하는 다른 이름이 없으면 나중에 가비지 수집됩니다.
따라서 위에서 보면 다음을 수행할 때 이해할 수 있습니다.a +=1
이것은 a를 a+1에 재할당합니다. 이것은 a를 증가시키지 않지만 재할당하기 때문에 증가 연산자가 아닙니다.
더 많은 예를 들어 위의 증가/감소를 이해합시다-
>>> 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
위에서 a, b 및 c가 참조하는 단일 객체가 있음을 이해할 수 있습니다(id가 1919375088인 int)
a의 값을 증가시키면 이제 a는 a+1(id:1919375104)로 다시 지정되고 다른 b와 c는 동일한 객체(1919375088)를 참조합니다.
또한 파이썬은 ++/-- 연산자를 제공합니다.
>>> a =1 >>> ++a 1 >>> --a 1