Covenant

문제

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 == 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) == or len(s) == 6)
 
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print( alpha_string46("a234") )
print( alpha_string46("1234") )
cs

 이 문자열에 숫자만 있는지 판단만 하면 되니 isdigit 메소드를 사용하면 간단하게 풀 수 있는 것이었다.