Có một phương thức gọi là isdigit() trong lớp String trả về true nếu tất cả ký tự trong chuỗi là chữ số và có ít nhất một ký tự, false ngược lại. Bạn có thể gọi nó như sau:
>>> "12345".isdigit() True >>> "12345a".isdigit() False
Nhưng điều này sẽ thất bại với số dấu phẩy động. Chúng ta có thể dùng phương pháp sau cho những số đó:
def isfloat(value):
try:
float(value)
return True
except ValueError:
return False
isfloat('12.345')
isfloat('12a')
# Kết quả:
# True
# False
Bạn cũng có thể dùng regex cho cùng kết quả. Để khớp số thập phân, ta gọi re.match(regex, string) với regex: "^\\d+?\\.\\d+?$". Ví dụ:
>>> bool(re.match("^\\d+?\\.\\d+?$", '123abc'))
False
>>> bool(re.match("^\\d+?\\.\\d+?$", '12.345'))
True