문제
alpha_string46함수는 문자열 s를 매개변수로 입력받습니다.
s의 길이가 4혹은 6이고, 숫자로만 구성되있는지 확인해주는 함수를 완성하세요.
예를들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다
나의 풀이
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | def alpha_string46(s): number_of_string = len(s) try: float(s) if number_of_string == 4 or number_of_string == 6: return True else: return False except ValueError: return False # 아래는 테스트로 출력해 보기 위한 코드입니다. print( alpha_string46("a234") ) print( alpha_string46("1234") ) | cs |
나의 풀이에서 if 부분(입력받은 문자가 4개인지 혹은 6개인지)체크하는 부분을 제거하면 문자를 정수로 바꾸어 주는 코드이다. float형으로 변환 했을 때 오류가 발생하면 문자열에 문자가 있구나 하는 try except 구분을 활용한 것이다.
다른 사람의 풀이
1 2 3 4 5 6 | def alpha_string46(s): return s.isdigit() and (len(s) == 4 or len(s) == 6) # 아래는 테스트로 출력해 보기 위한 코드입니다. print( alpha_string46("a234") ) print( alpha_string46("1234") ) | cs |
이 문자열에 숫자만 있는지 판단만 하면 되니 isdigit 메소드를 사용하면 간단하게 풀 수 있는 것이었다.
'Computer Science > Problem Solving' 카테고리의 다른 글
[tryhelloworld]콜라츠 추측 by파이썬 (0) | 2017.08.15 |
---|---|
[tryhelloworld]두 정수 사이의 합 by파이썬 (0) | 2017.08.15 |
[tryhelloword]가운데 글자 가져오기 by 파이썬 (0) | 2017.08.15 |
[tryhelloworld]소수 찾기 by파이썬 (0) | 2017.08.14 |
[tryhelloworld]최솟값 만들기 by파이썬 (0) | 2017.08.14 |