더북(TheBook)

비교 연산자의 우선순위는 산술 연산자보다는 낮고 불 연산자보다는 높으므로, (b*b - 4.0*a*c) >= 0.0과 같은 표현식에서는 괄호가 필요 없으며, month112 사이에 있는지 검사하기 위해서는 괄호 없이 month >= 1 and month <= 12처럼 표현식을 작성할 수 있다(그러나 괄호를 사용하면 표현식의 의도를 명확히 알려주므로, 더 좋은 코딩 스타일이다).

비교 연산은 불 논리와 함께 파이썬에서 의사 결정을 하는 기반이 된다. [프로그램 1.2.5]를 보면 해당 년도가 윤년인지 판단하기 위해 불 표현식과 비교 연산자를 사용하는 방법을 알 수 있다. 이번 절 끝에 나오는 연습문제에서 다른 예를 볼 수 있다. 그리고 더욱 복잡한 프로그램에서 불 표현식이 수행하는 역할은 1.3절에서 설명한다.

프로그램 1.2.5 윤년 판별 (leapyear.py)

import sys
import stdio

year = int(sys.argv[1])

isLeapYear = (year % 4 == 0) isLeapYear = isLeapYear and ((year % 100) != 0) isLeapYear = isLeapYear or ((year % 400) == 0)

stdio.writeln(isLeapYear)

% python3 leapyear.py 2016
True
% python3 leapyear.py 1900
False
% python3 leapyear.py 2000
True

이 프로그램은 정수형으로 입력받은 년도가 그레고리력에서 윤년에 해당하는지 검사한다. 4로 나누어지면 윤년이지만(2004), 4로 나누어지되 100으로 나누어지면 윤년이 아니다(1900). 그러나 100으로 나누어지되 400으로 나누어지면 윤년이다(2000).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.