프로그래밍 언어/Python

Python에서 증감연산자를 사용하는 방법

Rateye 2021. 8. 30. 10:54
728x90
반응형
질문 : Python에서 증가 및 감소 연산자의 동작

사전 증가 / 감소 연산자를 변수 (예 : ++count )에 적용 할 수 있습니다. 컴파일되지만 실제로 변수의 값을 변경하지는 않습니다!

파이썬에서 사전 증가 / 감소 연산자 (++ /-)의 동작은 무엇입니까?

Python이 C / C ++에서 볼 수있는 이러한 연산자의 동작과 다른 이유는 무엇입니까?

답변

++ 는 연산자가 아닙니다. 두 개의 + 연산자입니다. + 연산자는 아무 일도하지 않는 ID 연산자입니다. (설명 : +- 단항 연산자는 숫자에서만 작동하지만 가상의 ++ 연산자가 문자열에서 작동하지 않을 것이라고 가정합니다.)

++count

다음과 같이 구문 분석

+(+count)

어떤 의미로

count

원하는 작업을 수행하려면 약간 더 긴 +=

count += 1

일관성과 단순성을 위해 ++-- 연산자가 제외되었다고 생각합니다. 나는 귀도 반 로섬이 결정에 대해 준 정확한 주장을 모르지만 몇 가지 주장을 상상할 수 있습니다.

  • 더 간단한 구문 분석. 기술적으로 ++count ++ , count (단항 ++ 연산자 1 개)처럼 쉽게 + , + , count (두 개의 단항 + 연산자)가 될 수 있기 때문에 모호합니다. 중요한 구문상의 모호성은 아니지만 존재합니다.
  • 더 간단한 언어. ++ += 1 의 동의어 일뿐입니다. 이것은 C 컴파일러가 어리 석고 대부분의 컴퓨터가 가지고있는 inc a += 1 을 최적화하는 방법을 몰랐기 때문에 발명 된 속기입니다. 컴파일러와 바이트 코드 해석 언어를 최적화하는 오늘날, 프로그래머가 코드를 최적화 할 수 있도록 언어에 연산자를 추가하는 것은 일반적으로 특히 일관되고 읽을 수 있도록 설계된 Python과 같은 언어에서 눈살을 찌푸립니다.
  • 혼란스러운 부작용. ++ 연산자를 사용하는 언어에서 일반적인 초보자 오류 중 하나는 사전 및 사후 증가 / 감소 연산자 간의 차이 (우선 순위 및 반환 값 모두)를 혼합하는 것입니다. Python은 언어 "gotcha"-s를 제거하는 것을 좋아합니다. C에서 사전 / 사후 증가우선 순위 문제 는 꽤 털이 많고 엉망이되기 쉽습니다.
출처 : https://stackoverflow.com/questions/1485841/behaviour-of-increment-and-decrement-operators-in-python
728x90
반응형