#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목Python에서 % 연산자 사용 시 나머지의 부호와 관련하여 질문 드립니다.2024-03-11 12:03
작성자

안녕하십니까 교수님, 2024-1학기 수강생입니다.


Practice_03_Variables 자료의 '기본 연산자 실습하기' 파트에서 실습을 하다가, 다음과 같은 질문이 생겨 여쭤보려고 합니다.


실습을 진행 중, 파이썬에서 왼쪽 피연산자와 오른쪽 피연산자의 부호, 몫과 나머지의 부호의 연관성에 궁금증이 생겨 다음과 같은 코드로 계산을 실행해 보았습니다. 


print(-9//2)

print(-9%2) 

print(-9//-2) 

print(-9%-2) 

print(9//2) 

print(9%2) 

print(9//-2) 

print(9%-2) 


결과는 다음과 같았습니다. 


-5

1

4

-1

4

1

-5

-1

이를 통해 오른쪽 피연산자의 부호를 따라 나머지의 부호가 결정된다는 사실을 알 수 있었습니다. 

검색을 통해, c와 java 에서는 왼쪽 피연산자의 부호를 따라 나머지의 부호가 결정된다는 것을 알게 되었습니다. 

(예를 들어, -9//2=-4 , -9%2=-1, 9/-2=-5 ,9%-2=1)

저 또한 실습 진행 시  c에서와 같은 결과값을 기대하고 진행하였으나, 다른 결과값이 나와 질문드립니다. Python은 이와 정 반대로 몫과 나머지를 계산한다고 암기하면 될까요? 아니면 어떠한 매커니즘에 의해 이 케이스에서만 c와는 다른 결과가 나온다고 이해해야 할까요?


검색 결과 관련 페이지를 찾았으나,(http://python-history.blogspot.com/2010/08/why-pythons-integer-division-floors.html) 저의 수준에서 이해가 어려워 위의 질문(Python에서 나머지의 부호는 오른쪽 피연산자의 부호를 따른다)이 맞다면 단순히 이렇게 암기하고 넘어가고자 합니다. 답변 주시면 감사하겠습니다!


수업과는 무관한 질문 죄송합니다. 항상 감사드립니다. 

댓글