gyumin.log

파이썬 / 는 항상 실수

10 / 25라고 썼다가 틀리는 문제. 파이썬의 /는 결과가 어떻든 항상 float라서 답은 5.0이다.

핵심: 5.05값은 같고 타입만 다르다.

10 / 2 == 5      # True  ← 값은 같음
type(10 / 2)     # float ← 타입이 실수라서 5.0으로 표기

왜 이렇게 됐나? Python 2에서는 10/33, 10/3.03.333이었다. 넣는 값에 따라 결과 타입이 바뀌니 조용히 틀리는 버그가 많았다. 그래서 Python 3은 아예 연산자를 둘로 쪼갰다.

연산자이름결과
/참 나눗셈항상 float
//정수 나눗셈정수끼리면 int (버림)

정수 5가 필요하면: 10 // 2 또는 int(10 / 2)

시험 대비

/를 보면 무조건 소수점을 달아라. 5라고 쓰면 틀린다.

출력
10 / 25.0
4 / 22.0
10 / 33.3333333333333335
10 // 33
10 // 25

10 / 3의 끝자리가 ...35로 지저분한 건 실수 오차 때문. 시험에 이렇게 긴 값은 안 나오니 신경 안 써도 된다.

반대로 C는 정수끼리 나누면 항상 버림이라 7 / 23 - 언어끼리 정반대라 세트로 외워두면 좋다 → 노트 C 자료형.