-
35.5 연습문제: 날짜 클래스 만들기코딩도장 심사문제모음 2020. 11. 9. 22:53728x90
다음 소스 코드에서 Date 클래스를 완성하세요. is_date_valid는 문자열이 올바른 날짜인지 검사하는 메서드입니다. 날짜에서 월은 12월까지 일은 31일까지 있어야 합니다.
풀이.1
인덱스 슬라이싱을 이용해 월, 일이 해당 범위 안에 들어오면 True를 반환한다.
여기서는 속성 및 인스턴스를 사용하지 않고, 결과만 구현하면 되고 클래스에 접근하지 않아도된다.
따라서 정적 메서드를 사용하였다.
## 정적 메서드에서는 if 사용후 else로 마무리 하지 않아도 정상동작 한다.
class Date: @staticmethod def is_date_valid(time): if 1 <= int(time[5:7]) <= 12 and 1 <= int(time[8:]) <= 31: return True
## time은 문자열로 입력이되고 if 조건문을 활용하기 위해 int로 변환해준다.
풀이.2 (코딩도장)
년, 월, 일 (변수)에 map, int, split('-')을 이용한다.
##여기서 중요한 포인트는 map 객체도 언패킹을 할 수 있다는 사실이다.##
각 변수에 년, 월, 일을 할당하였으므로 아래와 같이 출력도 가능하다.
class Date: @staticmethod def is_date_valid(time): year, month, day = map(int, time.split('-')) # 리스트나 튜플로 감싸주지 않았음 print(year, month, day) Date.is_date_valid('2000-01-20') :: 2000 1 20
if 문의 역할은 비교 연산자를 이용하여 return으로 반환하는 것으로 해결
class Date: @staticmethod def is_date_valid(time): year, month, day = map(int, time.split('-')) return 1 <= month <= 12 and 1 <= day <= 31
728x90'코딩도장 심사문제모음' 카테고리의 다른 글
36.8 연습문제: 리스트에 기능 추가하기 (0) 2020.11.11 35.6 심사문제: 시간 클래스 만들기 (0) 2020.11.10 34.6 심사문제: 게임 캐릭터 클래스 만들기 (0) 2020.11.08 34.5 연습문제: 게임 캐릭터 클래스 만들기 (0) 2020.11.08 33.6 심사문제: 카운트다운 함수 만들기 (0) 2020.11.06