본문 바로가기
Python

파이썬 초급 #026 조건문 if 조건문 예시: 윤년인지 아닌지 판별 프로그램

by Smart Factory in 2020 2022. 2. 3.
728x90
반응형

안녕하세요. 스마트 팩토리입니다.
파이썬 초급 #026 조건문 if 조건문 예시:  윤년인지 아닌지 판별 프로그램에 대해 알아보겠습니다. 

 

1. if 조건문  예시

(1) 윤년이란?
 - 지구의 자전주기와 공전 주기가 딱 맞물리지 않기 때문에 이를 맞추기 위해서 넣는 하루가 있는 해
 - 달력의 최소 단위인 하루는 자전주기를 기준으로 남는 0.244일(5시간 48분 46초), 공전주기는 365.2442임.
-  공전주기와 자전주기의 오차는 4년마다 하루 차이로 2월을 28일 하루 +1 하여 29일로 해줘야 한다.
- 400년간 97년이 윤년이다. 
- 1년의 평균 길이는 365.2425일 이를 실제 연으로 계산하면 0.0003일이 길다. 


(2) 윤년 이냐 아니냐는 수학적으로 다음 조건에 따라 판단할 수 있다.
  가. 서력 기원 연수(알고자 하는 년도)를 4로 나누어 떨어지면 윤년
  나. 가 중에서 100으로 나누어 떨어지면 평년
  다.  400으로 나누어 떨어지면 다시 윤년


 예를 들어
2022년은 평년이다.  4로 나누어 안떨어짐.ㅋㅋ 
               
2024년은 4로 나누어 떨어진다.  윤년 / 100으로 나누면 당연히 안떨어짐 
        
2000년은 4로 나누어 떨어짐 윤년 가능성 있음. 100으로 나누어 떨어짐 평년 ~~ 다시 400으로 나누어  떨어짐 윤년이다. 

1900년은 4로 나누어 떨어짐 윤년  100으로 나누어 쩔어짐 다시 평년 ~~ 400으로 나누어 떨어지지 않으면 최종 평년임~

이를 파이썬 코드로 알아보겠습니다. 

 

윤년인지 아닌지 알아보는 코드 

코드를 보면 간단하다는 것을 알 수 있습니다. 

 

year=int(input("연도를 입력하세요. 연도:"))

윤년인지 아닌지 알고 싶은 연도를 입력받습니다. 
연도는 정수니까 int 로 


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

    print(year,"년은 윤년입니다.")

 

 if 조건문을 보면  and 와 or 로 된 것을 볼 수 있습니다. 

4나누어 나머지가 0이면 윤년이고 100으로 나누어 나머지가 0이면 다시 평년입니다. 하지막 400으로 나누어 떨어지면 윤년이라는 것을 고려하면 

year %4==0 윤년은 4로 나누어  나머지가 0 이어야 함. 
year %100!=0 윤년은 100로 나누어  나머지가 0 아니어야 함.( 아니다는 != 로 같지 않다로 해야함)
year %400==0 윤년은 400로 나누어  나머지가 0 이어야 함. 

코드가 완성되는 것을 알 수 있습니다. 위 조건을 만족하면 윤년이 됩니다. 

else:
    print(year,"년은 평년 입니다.")

if 조건이 거짓일 경우 else 를 실행합니다. 

연도를 입력해서 출력값을 보면 다음과 같습니다. 

 

year=int(input("연도를 입력하세요. 연도:"))

if ((year%4==0) and (year%100)!=0) or (year %400)==0:
    print(year,"년은 윤년입니다.")
else:
    print(year,"년은 평년 입니다.")

 

728x90
반응형

댓글