Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách kiểm tra chuỗi chỉ chứa ký tự thập phân?

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