본문 바로가기

컴공스

leap_year

@마크다운


# Leapyear

"""
Leap year(윤년)

윤년이 무엇인가?
4년에 한번씩 돌아오는 2월29일이 있는 해

그레고리력의 윤년 규칙 (위키피디아 윤년 참조)
1. 4로 나누어 떨어지는 해는 윤년으로 한다.
2. 1. 중에서 100으로 나누어 떨어지는 해는 평년으로 한다. (반대로 생각하면 100으로 나누어 떨어지지 않는다면 윤년이라는 소리)
3. 2. 중에서 400으로 나누어 떨어지는 해는 윤년으로 한다.

------해야하는것------
1.알고싶은 년도를 입력받아야 한다.
- 함수로 작성하도록 한다. -> 알고싶은 년도를 함수의 인자값으로 받는다.

2. 입력받은 인자 값이 년도가 맞는지 판단한다.
- 년도는 양의정수 (1,2,3,...)으로 이루어져 있다.
- 엄밀히 따지면 0에 대한 에러처리도 이루어져야하지만 여기선 하지 않는다.

3. 입력받은 인자의 값이 년도가 맞다면 윤년판단 후 결과값을 리턴, 아니면 에러를 리턴한다.

"""


def leap_year(year): # 함수의 이름선언은 소문자로 시작합니다.
if not str(year).isdigit(): # 입력받은 year의 값이 양의정수인지 판단하는 부분
return print("너..양의정수가 아니구나?")

else:
year = int(year)
if year % 400 == 0: # 입력받은년도가 400으로 나누어 떨어지면 윤년이다.
print("윤년입니다.")
elif year % 100 == 0: # 입력받은년도가 100으로 나누어 떨어지면 평년이다.
print("평년입니다.")
elif year % 4 == 0: # 입력받은년도가 4로 나누어 떨어지면 윤년이다.
print("윤년입니다.")
else: # 위의 조건들을 다 만족하지 않는다면 평년이다.
print("평년입니다.")


def leap_year2(year): # 함수의 이름선언은 소문자로 시작합니다.
if not str(year).isdigit(): # 입력받은 year의 값이 양의정수인지 판단하는 부분
return print("너..양의정수가 아니구나?")
else:
year = int(year)
print("윤년입니다.") if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0) else print("평년입니다.") # 삼항연산자를 사용한 계산

[gist](https://gist.github.com/anonymous/99325ce90e0c5cfe07e1ad7e30f6977f)

'컴공스' 카테고리의 다른 글

운영체제1  (0) 2018.05.05
객체란 무엇인가?  (0) 2018.04.14
주어진 리스트에서 정수만 뽑아 제곱하기 (단 lambda,filter,map만 사용)  (0) 2018.02.25
egyptian_multiplication  (0) 2018.02.11
숫자맞추기 게임  (0) 2018.02.04