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
반응형
'Python' 카테고리의 다른 글
파이썬 초급 #028 반복문 for 루프 "- " 표시 , 리스트 반복, 문자열반복, 시퀀스 (0) | 2022.02.05 |
---|---|
파이썬 초급 #027 반복문 for 루프 / while - range() 함수 기초 (0) | 2022.02.04 |
파이썬 초급 #025 조건문 if 중첩 if 문- 예제 2 학점 판별 프로그램 (if elif else 문) (0) | 2022.02.02 |
파이썬 초급 #024 조건문 if 중첩 if 문- 아이디 패스워드 로그인 코드 (0) | 2022.02.01 |
파이썬 초급 #023 조건문 if elif 문 예시 2022년 현재 나이 알려주는 프로그램 (0) | 2022.01.31 |
댓글