Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 증가 및 감소 연산자?

<시간/>

파이썬에는 단항 증가/감소 연산자( ++/--)가 없습니다. 값을 늘리는 대신

를 사용하세요.
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