python에서 문자열이 주어졌을때 숫자로 이뤄졌는지 검사하는 함수가 세개나 있다.
무슨 차이 일까 digit, decimal, numeric 사전에 검색해봐도 그냥 전부 숫자라고 나온다
-> 셋중에 판별 범위가 가장 좁다 decimal 은 즉시 숫자로 만들 수 있는 str값을 True로 반환한다. 예를 들어서 '1234567890' 같은 값만 말이다.
-> isdigit 은 조금 더 포괄적이다 3²같은 숫자처럼 생긴 숫자 값들은 숫자라고 검사해준다
decimal은 false가 나온다
-> isnumeric은 digit 보다도 범위가 넓다.
3²는 물론 ½ 같은 특수문자도 숫자로 받아준다.(도대체 저 특수문자는 어떻게 쓰지요...?)
그래서 이전에 풀었던 문제를 다시 가져와서 풀어보면
문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다.
def solution(s):
return s.isnumeric() and len(s) == 4 or len(s) == 6
한줄로 가능하다!