python은 C에 기본을 두지만 --a, a++은 지원하지 않습니다.
그렇지만 a += 1은 지원을 하므로 연속 연산을 사용하고자 하는 경우는 뒤의 경우를 사용하면 됩니다.
기본적인 +, -, *, / 와 같은 사칙 연산 외에도 정수 나눗셈(//)도 지원합니다.
C 나 Java에서는 없는 연산인데 파이썬에는 정수 나눗셈을 별도로 두고 있습니다.
이유는 python이 C와 같은 자료형을 따르고는 있지만
변수를 선언할때 별도의 형 선언을 하지 않아 결과를 예측할 수 없기 때문입니다.
일반적으로 정수 + 소수 = 소수가 되며 정수 - 소수 = 소수가 됩니다.
그렇지만 6 / 2 를 했을 경우 3(정수)일까 아니면 3.0(소수)일까요?
아니 그것 보다는 실질적으로 7/2를 하면 3.5가 되어야 할까 3이 되어야할까요?
(일반적으로 C같은 자료 구조를 가진 경우는
7/2의 경우 자동으로 정수 연산을 실행하고 변수 또한 정수 변수에 대입하기 때문에
자동으로 값이 3.5가 아닌 3이 됩니다.
그래서 본의 아니게 버그를 만드는 경우가 많이 발생 합니다.
하지만 파이썬의 경우 정수 나눗셈과 소수 나눗셈(기본값)을 나누어 가지고 있기 때문에 / 을 사용했다면
무조건 소수가 되고 변수의 형도 소수형으로 변경이 됩니다. -- 주의 필요 --
)
의외로 현장에서는 7/2가 3일 필요가 꽤 있습니다.
그런 경우 python 은 7//2로 정수 나눗셈을 구해야 합니다.
예를 들면 모수가 5로 나누어 떨어지지 않는 경우 오류가 나는 머쉰 런닝 모델이 있다면
전체 모수 t 를 t = (t//5) * 5를 하면 정확하게 5로 나누어 떨어지는 수를 구할 수 있습니다.
정수 나눗셈의 나머지는 7%2로써 답은 1이 됩니다.
이 외에 3항 식 이라고 하는
b = a == 2 ? 3 : 4 의 경우는 C에서의 표현이지만 python은 b = 3 if a == 2 else 4 라고 표현한다.
어떻게 보면 C/C++의 또 다른 방향의 발전체가 파이썬 인 것입니다.
'python > python 기초문법' 카테고리의 다른 글
Python - 2 (0) | 2023.01.24 |
---|---|
파이썬 기초 1 - 설치 (0) | 2023.01.24 |