Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะตรวจสอบได้อย่างไรว่าสตริงมีอักขระทศนิยมเท่านั้น?


มีเมธอดที่เรียกว่า isdigit() ในคลาส String ที่คืนค่า จริง หากอักขระทั้งหมดในสตริงเป็นตัวเลข และมีอักขระอย่างน้อยหนึ่งตัว มิฉะนั้น เท็จ เรียกได้ดังนี้:

>>> "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

คุณยังสามารถใช้ regexes เพื่อผลลัพธ์เดียวกันได้ สำหรับทศนิยมที่ตรงกัน เราสามารถเรียก re.match(regex, string) โดยใช้ regex:"^\d+?\.\d+?$" ตัวอย่างเช่น

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