Hướng dẫn check string contain number python - kiểm tra chuỗi chứa số python

Bạn có thể áp dụng hàm isDigit () trên mỗi ký tự trong chuỗi. Hoặc bạn có thể sử dụng các biểu thức thông thường.

Ngoài ra, tôi tìm thấy làm thế nào để tôi tìm thấy một số trong một chuỗi trong Python? với những cách rất phù hợp để trả lại số. Giải pháp dưới đây là từ câu trả lời trong câu hỏi đó.

number = re.search(r'\d+', yourString).group()

Alternatively:

number = filter(str.isdigit, yourString)

Để biết thêm thông tin, hãy xem REGEX DOCU: http://docs.python.org/2/l Library/re.html

Chỉnh sửa: Điều này trả về các số thực, không phải là giá trị boolean, vì vậy các câu trả lời ở trên đúng hơn cho trường hợp của bạn

Phương pháp đầu tiên sẽ trả về chữ số đầu tiên và các chữ số liên tiếp tiếp theo. Do đó, 1.56 sẽ được trả lại là 1. 10.000 sẽ được trả lại là 10. 0207-100-1000 sẽ được trả lại là 0207.

Phương pháp thứ hai không hoạt động.

Để trích xuất tất cả các chữ số, dấu chấm và dấu phẩy, và không mất các chữ số không liên tục, hãy sử dụng:

re.sub('[^\d.,]' , '', yourString)

Biết cách kiểm tra xem chuỗi Python có chứa một số có thể là thứ bạn sẽ phải làm tại một số điểm trong ứng dụng của bạn không.

Một cách tiếp cận đơn giản để kiểm tra xem chuỗi python có chứa một số là để xác minh mọi ký tự trong chuỗi bằng phương thức chuỗi isDigit () không. Khi đã hoàn thành, chúng tôi sẽ nhận được một danh sách các booleans và nếu bất kỳ yếu tố nào của nó là đúng, điều đó có nghĩa là chuỗi chứa ít nhất một số.

Có nhiều cách để giải quyết vấn đề này và hướng dẫn này trải qua một vài trong số chúng.

Bắt đầu nào!

  • Sử dụng một vòng lặp và isDigit () để tìm hiểu xem một chuỗi có chứa các số không
  • Một cách khác để sử dụng isDigit () để kiểm tra xem một chuỗi có chứa số không
  • Sử dụng hàm bất kỳ () để kiểm tra xem chuỗi có chứa số không
  • Kiểm tra xem chuỗi Python có chứa các số bằng cách sử dụng biểu thức thông thường không
  • Làm thế nào để bạn kiểm tra xem chuỗi có chứa số bằng hàm bản đồ không?
  • Sự kết luận

Sử dụng một vòng lặp và isDigit () để tìm hiểu xem một chuỗi có chứa các số không

Một cách khác để sử dụng isDigit () để kiểm tra xem một chuỗi có chứa số không

Sử dụng hàm bất kỳ () để kiểm tra xem chuỗi có chứa số không

Kiểm tra xem chuỗi Python có chứa các số bằng cách sử dụng biểu thức thông thường không

def containsNumber(value):
    for character in value:
        if character.isdigit():
            return True
    return False

Một cách tiếp cận cơ bản để thực hiện kiểm tra này là sử dụng vòng lặp cho mọi ký tự của chuỗi và kiểm tra xem ký tự đó có phải là số bằng cách sử dụng phương thức chuỗi isDigit () không.

Nếu ít nhất một ký tự là một chữ số thì hãy trả về đúng nếu không sai.

>>> print(containsNumber('1s4f6h'))
True
>>> print(containsNumber('python'))
False
>>> print(containsNumber('python3'))
True

Chúng tôi sẽ viết một chức năng để thực hiện logic này:

Một cách khác để sử dụng isDigit () để kiểm tra xem một chuỗi có chứa số không

Sử dụng hàm bất kỳ () để kiểm tra xem chuỗi có chứa số không

Kiểm tra xem chuỗi Python có chứa các số bằng cách sử dụng biểu thức thông thường không

>>> '123'.isdigit()
True
>>> '1'.isdigit()
True
>>> 'a'.isdigit()
False
>>> 'a1'.isdigit()
False
>>> ''.isdigit()
False         

Một cách tiếp cận cơ bản để thực hiện kiểm tra này là sử dụng vòng lặp cho mọi ký tự của chuỗi và kiểm tra xem ký tự đó có phải là số bằng cách sử dụng phương thức chuỗi isDigit () không.

>>> value = 'adf2'
>>> [char.isdigit() for char in value]
[False, False, False, True]         

Nếu ít nhất một ký tự là một chữ số thì hãy trả về đúng nếu không sai.list comprehension that generates a list of booleans in which every element is the value returned by isdigit() for each character in the string.

Chúng tôi sẽ viết một chức năng để thực hiện logic này:

Việc thực hiện hàm dừng ngay khi số đầu tiên được tìm thấy trong chuỗi hoặc sau khi thực hiện vòng lặp nếu không tìm thấy số nào.

Để làm điều đó, chúng ta có thể sử dụng một câu lệnh IF khác:

>>> if True in [char.isdigit() for char in value]:
…     print("The string contains a number")
… else:
…     print("The string doesn't contain a number")
… 
The string contains a number         

Hãy để tạo ra một chức năng kết hợp những gì chúng ta đã thấy cho đến nay.

Một câu lệnh IF được sử dụng để trả về true nếu chuỗi chứa ít nhất một số. Nếu không thì nó trả về sai.

def containsNumber(value):
    if True in [char.isdigit() for char in value]:
        return True
    return False

Đây là những gì chức năng trả về khi chúng ta chuyển vài chuỗi cho nó:

>>> print(containsNumber(''))
False
>>> print(containsNumber('awirfd'))
False
>>> print(containsNumber('dfgh3'))
True
>>> print(containsNumber('12345'))
True

Đầu ra của chức năng của chúng tôi có vẻ tốt.

Sử dụng hàm bất kỳ () để kiểm tra xem chuỗi có chứa số không

Chúng ta có thể bắt đầu từ mã chúng ta đã tạo trong phần trước và thay thế câu lệnh IF bằng một cái gì đó khác

Hàm Python bất kỳ () tích hợp nào có cú pháp sau:

number = filter(str.isdigit, yourString)
0

Hàm bất kỳ () trả về true nếu bất kỳ phần tử nào trong ITBER là đúng, nếu không nó sẽ trả về sai. Chức năng cũng trả về sai nếu có thể trống.

Điều này có nghĩa là chúng ta có thể chuyển danh sách các booleans được tạo trong phần trước cho hàm bất kỳ () và xóa câu lệnh IF được sử dụng trước đó:

number = filter(str.isdigit, yourString)
1

Như bạn có thể thấy, chúng tôi đã thông qua một danh sách hiểu cho hàm Python bất kỳ ().

Đây là đầu ra của chức năng của chúng tôi khi chúng tôi chuyển cho nó cùng một chuỗi được kiểm tra trong phần trước:

>>> print(containsNumber(''))
False
>>> print(containsNumber('awirfd'))
False
>>> print(containsNumber('dfgh3'))
True
>>> print(containsNumber('12345'))
True

Kiểm tra xem chuỗi Python có chứa các số bằng cách sử dụng biểu thức thông thường không

Một cách tiếp cận khác để tìm hiểu xem một số là một phần của chuỗi là bằng cách sử dụng các biểu thức thông thường của Python.

Tên của mô -đun Python để xử lý các biểu thức chính quy là Re.

Đầu tiên, hãy để Lừa đưa ra một biểu thức thông thường mà chúng ta có thể sử dụng để phát hiện bất kỳ số nào trong một chuỗi. Để làm điều này, chúng ta có thể sử dụng hàm re.findall ():

number = filter(str.isdigit, yourString)
3

Đối số đầu tiên chúng tôi chuyển sang Re.findall là mẫu chúng tôi đang tìm kiếm.

Để tìm kiếm nhiều hơn một số, chúng ta có thể sử dụng ‘[0-9]+.‘[0-9]+’.

Đối số thứ hai là chuỗi trong đó chúng tôi tìm kiếm mẫu cụ thể.

Dưới đây là đầu ra của biểu thức thông thường này được áp dụng cho nhiều chuỗi:

number = filter(str.isdigit, yourString)
4

Chúng tôi có thể cập nhật chức năng của mình để gọi re.findall () và kiểm tra xem danh sách kết quả có trống hay không.

Nếu danh sách kết quả không trống thì chuỗi chứa ít nhất một số. Chúng ta cũng có thể sử dụng thực tế là trong các chuỗi trống Python là sai.

number = filter(str.isdigit, yourString)
5

Câu lệnh trả về của hàm này sử dụng toán tử python ternary để trả về đúng hoặc sai tùy thuộc vào thực tế là danh sách số có trống hay không.ternary operator to return True or False depending on the fact that the numbers list is empty or not.

Một tùy chọn khác là sử dụng hàm bool () để chuyển đổi danh sách được trả về bởi hàm re.findall () thành boolean:

number = filter(str.isdigit, yourString)
6

Hãy để áp dụng chức năng này cho một vài chuỗi để xác nhận nó hoạt động như mong đợi:

number = filter(str.isdigit, yourString)
7

Làm thế nào để bạn kiểm tra xem chuỗi có chứa số bằng hàm bản đồ không?

Và đây là một cách khác để tìm hiểu xem có bất kỳ số nào trong chuỗi của bạn không.

Lần này, chúng tôi sẽ sử dụng hàm map () áp dụng một hàm cụ thể cho các phần tử của một điều khác (một chuỗi là một điều có thể xảy ra bởi vì bạn có thể xem nó là một chuỗi các ký tự).map() function that applies a specific function to the elements of an iterable (a string is an iterable because you can see it as a sequence of characters).

Nếu chúng ta vượt qua hàm isDigit () và một chuỗi vào hàm bản đồ, chúng ta sẽ lấy lại một đối tượng bản đồ.

number = filter(str.isdigit, yourString)
8

Chúng ta có thể làm gì với nó?

Chúng ta có thể sử dụng hàm danh sách () để chuyển đổi nó thành danh sách Python:

number = filter(str.isdigit, yourString)
9

Như bạn có thể thấy từ đầu ra ở trên, chúng tôi lấy lại một danh sách các booleans nơi mọi boolean có liên quan đến một ký tự trong chuỗi. Boolean là đúng nếu nhân vật là một số và nó sai khác.

Sau đó, chúng ta có thể sử dụng hàm bất kỳ () nào, đã được sử dụng trong một trong các phần trước, để biết danh sách có chứa ít nhất một yếu tố thực.

re.sub('[^\d.,]' , '', yourString)
0

Có ý nghĩa?

Sự kết luận

Chúng tôi đã trải qua nhiều cách để tìm hiểu xem một chuỗi Python có chứa một số không.

Bạn đã học được cách sử dụng phương thức chuỗi isDigit (), hàm bất kỳ (), biểu thức chính quy và hàm bản đồ.

Cách yêu thích của bạn là gì? Bạn có đề xuất bất kỳ cách tiếp cận nào khác không?

Hãy cho tôi biết trong các ý kiến ​​dưới đây 🙂

Bài viết liên quan:

Hướng dẫn check string contain number python - kiểm tra chuỗi chứa số python

Tôi là một nhà lãnh đạo công nghệ, kỹ sư phần mềm và huấn luyện viên lập trình. Tôi muốn giúp bạn trong hành trình trở thành một nhà phát triển siêu!

Làm thế nào để bạn kiểm tra xem một chuỗi có chứa một số trong Python không?

Để kiểm tra xem một chuỗi có chứa một số trong python: sử dụng phương thức str.isDigit () để kiểm tra xem mỗi char có phải là một chữ số hay không. Kết quả cho hàm bất kỳ () nào.Bất kỳ chức năng nào sẽ trả về true nếu chuỗi chứa một số.Use the str. isdigit() method to check if each char is a digit. Pass the result to the any() function. The any function will return True if the string contains a number.

Làm cách nào để kiểm tra xem một chuỗi có chứa số không?

Để tìm một chuỗi đã cho có chứa một số, hãy chuyển đổi nó thành một mảng ký tự và tìm xem mỗi ký tự trong mảng có phải là một chữ số bằng phương thức isDigit () của lớp ký tự hay không.convert it to a character array and find whether each character in the array is a digit using the isDigit() method of the Character class.

Làm thế nào để bạn kiểm tra xem một chuỗi có chứa các chữ cái và số trong Python không?

Các chữ cái có thể được kiểm tra trong chuỗi python bằng phương thức isalpha () và các số có thể được kiểm tra bằng phương thức isDigit ().using the isalpha() method and numbers can be checked using the isdigit() method.