Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

문자열에 10진수 문자만 포함되어 있는지 확인하는 방법은 무엇입니까?

<시간/>

문자열의 모든 문자가 숫자이고 하나 이상의 문자가 있으면 true를 반환하고 그렇지 않으면 false를 반환하는 String 클래스의 isdigit() 메서드가 있습니다. 다음과 같이 호출할 수 있습니다.

>>> "12345".isdigit()
True
>>> "12345a".isdigit()
False

그러나 이것은 부동 소수점 숫자의 경우 실패합니다. 이러한 숫자에 대해 다음 방법을 사용할 수 있습니다.

def isfloat(value):
  try:
    float(value)
    return True
  except ValueError:
    return False
isfloat('12.345')
isfloat('12a')
This will give the output:
True
False

동일한 결과에 대해 정규식을 사용할 수도 있습니다. 일치하는 소수의 경우 정규식을 사용하여 re.match(regex, string)를 호출할 수 있습니다. "^\d+?\.\d+?$". 예를 들어,

>>> bool(re.match("^\d+?\.\d+?$", '123abc'))
False
>>> bool(re.match("^\d+?\.\d+?$", '12.345'))
True