Làm thế nào để bạn biết nếu một văn bản chứa một cái gì đó trong python?

Một trong những hoạt động phổ biến nhất mà các lập trình viên sử dụng trên chuỗi là kiểm tra xem một chuỗi có chứa một số chuỗi khác không

Ví dụ: nếu bạn đến với Python từ Java, bạn có thể đã sử dụng phương thức chứa để kiểm tra xem một số chuỗi con có tồn tại trong một chuỗi khác không

Trong Python, có hai cách để đạt được điều này

Đầu tiên. Sử dụng toán tử in

Cách dễ nhất là thông qua toán tử in của Python.

Hãy xem ví dụ này

>>> str = "Messi is the best soccer player"
>>> "soccer" in str
True
>>> "football" in str
False

Như bạn có thể thấy, toán tử in trả về True khi chuỗi con tồn tại trong chuỗi

Nếu không, nó trả về false

Phương pháp này rất đơn giản, rõ ràng, dễ đọc và thành ngữ

Thứ hai. Sử dụng phương pháp tìm

Một phương thức khác mà bạn có thể sử dụng là phương thức find của chuỗi

Không giống như toán tử in được ước tính thành giá trị boolean, phương thức find trả về một số nguyên.

Số nguyên này về cơ bản là chỉ số của phần đầu của chuỗi con nếu chuỗi con tồn tại, nếu không thì -1 được trả về

Hãy xem hoạt động của phương thức find .

>>> str = "Messi is the best soccer player"
>>> str.find("soccer")
18
>>> str.find("Ronaldo")
-1
>>> str.find("Messi")
0

Một điều thú vị về phương pháp này là bạn có thể tùy chọn chỉ định chỉ mục bắt đầu và chỉ mục kết thúc để giới hạn tìm kiếm của mình trong phạm vi

Ví dụ

>>> str = "Messi is the best soccer player"
>>> str.find("soccer", 5, 25)
18
>>> str.find("Messi", 5, 25)
-1

Lưu ý cách -1 được trả về cho “Messi” vì bạn đang giới hạn tìm kiếm của mình trong chuỗi chỉ giữa các chỉ số 5 và 25.

Bảng cheat Python 3 cho người mới bắt đầu

Làm thế nào để bạn biết nếu một văn bản chứa một cái gì đó trong python?

Tải xuống một bảng cheat toàn diện dành cho người mới bắt đầu với các ví dụ mã mở rộng bao gồm tất cả các chủ đề mà bạn cần tìm hiểu

Một số nội dung nâng cao

Giả sử trong một giây rằng Python không có các hàm hoặc phương thức tích hợp sẵn để kiểm tra xem một chuỗi có chứa một chuỗi khác hay không

Làm thế nào bạn sẽ viết một chức năng để làm điều đó?

Chà, một cách dễ dàng là dùng vũ lực bằng cách kiểm tra xem chuỗi con có tồn tại bắt đầu từ mọi vị trí có thể có trong chuỗi gốc hay không

Đối với các chuỗi lớn hơn, quá trình này có thể rất chậm

Có các thuật toán tốt hơn để tìm kiếm chuỗi

Tôi đánh giá cao bài viết này từ TopCoder nếu bạn muốn tìm hiểu thêm và tìm hiểu sâu hơn về các thuật toán tìm kiếm chuỗi

Để biết thêm thông tin về các thuật toán tìm kiếm chuỗi khác không được đề cập trong bài viết trước, trang wikipedia này rất hay

Nếu bạn xem qua các bài viết trước và nghiên cứu chúng, câu hỏi tiếp theo của bạn sẽ là “Python thực sự sử dụng thuật toán nào?”

Hướng dẫn này sẽ giới thiệu phương pháp để tìm xem một từ được chỉ định có nằm trong một biến chuỗi hay không trong Python

Kiểm tra chuỗi nếu nó chứa một từ thông qua một câu lệnh if/in trong Python

Nếu chúng ta muốn kiểm tra xem một chuỗi đã cho có chứa một từ cụ thể trong đó hay không, chúng ta có thể sử dụng câu lệnh if/in trong Python. Câu lệnh if/in trả về True nếu từ có trong chuỗi và False nếu từ không có trong chuỗi

Đoạn chương trình sau đây cho chúng ta thấy cách sử dụng câu lệnh if/in để xác định xem một chuỗi có chứa một từ hay không

string = "This contains a word"
if "word" in string:
    print("Found")
else:
    print("Not Found")

đầu ra

Chúng ta đã kiểm tra xem biến chuỗi string có chứa từ

string = "This contains a word"
if "is" in string:
    print("Found")
else:
    print("Not Found")
0 bên trong hay không bằng câu lệnh if/in trong chương trình trên. Cách tiếp cận này so sánh cả hai chuỗi ký tự khôn ngoan;

string = "This contains a word"
if "is" in string:
    print("Found")
else:
    print("Not Found")

đầu ra

Đầu ra cho thấy rằng từ

string = "This contains a word"
if "is" in string:
    print("Found")
else:
    print("Not Found")
2 có mặt bên trong biến chuỗi string. Nhưng, trên thực tế,
string = "This contains a word"
if "is" in string:
    print("Found")
else:
    print("Not Found")
2 này chỉ là một phần của từ đầu tiên
string = "This contains a word"
if "is" in string:
    print("Found")
else:
    print("Not Found")
5 trong biến string

Vấn đề này có một giải pháp đơn giản. Chúng ta có thể bao quanh từ và biến string với khoảng trắng để so sánh toàn bộ từ. Chương trình dưới đây cho chúng ta thấy làm thế nào chúng ta có thể làm điều đó

string = "This contains a word"
if " is " in (" " + string + " "):
    print("Found")
else:
    print("Not Found")

đầu ra

Trong đoạn mã trên, chúng tôi đã sử dụng cùng một câu lệnh if/in, nhưng chúng tôi đã thay đổi nó một chút để chỉ so sánh các từ riêng lẻ. Lần này, đầu ra không hiển thị từ nào như

string = "This contains a word"
if "is" in string:
    print("Found")
else:
    print("Not Found")
2 bên trong biến string

Có chức năng chứa trong Python không?

hàm chứa() được sử dụng để kiểm tra xem mẫu hoặc biểu thức chính quy có được chứa trong một chuỗi Sê-ri hoặc Chỉ mục hay không . Hàm trả về Sê-ri hoặc Chỉ mục boolean dựa trên việc một mẫu hoặc biểu thức chính quy nhất định có được chứa trong một chuỗi Sê-ri hoặc Chỉ mục hay không.

Phương thức __ chứa __ trong Python là gì?

Chuỗi Python __contains__() là một phương thức thể hiện và trả về giá trị boolean Đúng hoặc Sai tùy thuộc vào việc đối tượng chuỗi có chứa đối tượng chuỗi đã chỉ định hay không. Note that the Python string contains() method is case sensitive.