HomeLập trìnhPythonChứa chuỗi Python...

Chứa chuỗi Python – Hướng dẫn chuỗi con Python 3


Trong bài viết này, bạn sẽ tìm hiểu cách kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python.

Việc kiểm tra xem một chuỗi có chứa một chuỗi con hay không sẽ hữu ích khi bạn đã nhận được đầu vào của người dùng và muốn chương trình của mình hoạt động theo một cách nhất định – hoặc thậm chí khi bạn muốn thay thế một từ này bằng một từ khác.

Python cung cấp nhiều cách để xác nhận xem một chuỗi con có tồn tại trong một chuỗi hay không và trong hướng dẫn nhanh này, bạn sẽ thấy một vài trong số đó đang hoạt động.

Đây là những gì chúng tôi sẽ đề cập:

  1. Cách kiểm tra xem một chuỗi có chứa chuỗi con hay không bằng cách sử dụng in nhà điều hành
    1. Cách thực hiện tìm kiếm không phân biệt chữ hoa chữ thường khi sử dụng in nhà điều hành
  2. Cách kiểm tra xem một chuỗi có chứa chuỗi con hay không bằng cách sử dụng .index() phương pháp
  3. Cách kiểm tra xem một chuỗi có chứa chuỗi con hay không bằng cách sử dụng .find() phương pháp

Cách kiểm tra xem một chuỗi có chứa chuỗi con hay không bằng cách sử dụng in Toán tử trong Python

Sử dụng in toán tử là một trong những cách rõ ràng nhất, dễ đọc nhất và hầu hết Pythonic để xác nhận xem một chuỗi con có tồn tại trong một chuỗi hay không.

Do đó, các in toán tử là cách ưa thích để kiểm tra xem một chuỗi có chứa một chuỗi con hay không.

Cú pháp chung để sử dụng in toán tử như sau:

substring in string

Các in toán tử trả về một giá trị Boolean. Một giá trị Boolean là một trong hai True hoặc False.

Các in toán tử trả về True nếu chuỗi con có mặt trong chuỗi và False nếu chuỗi con không có mặt.

>>> learn_coding = "You can learn to code for free!"
>>> "free" in learn_coding
True

Trong ví dụ trên, tôi đã nhập bảng điều khiển tương tác của Python, còn được gọi là trình thông dịch Python hoặc Python shell.

Đọc thêm  đối tượng int không thể gọi được – Cách khắc phục trong Python

Bạn có thể nhập nó sau khi cài đặt Python cục bộ, mở thiết bị đầu cuối của bạn và nhập Python hoặc Python3 tùy thuộc vào hệ thống của bạn.

tôi lưu trữ cụm từ You can learn to code for free! trong một biến gọi là learn_coding.

Sau đó, tôi kiểm tra xem chuỗi con free có mặt trong cụm từ You can learn to code for free! sử dụng in nhà điều hành.

Vì chuỗi con có mặt, in lợi nhuận True.

Điều quan trọng cần lưu ý là in toán tử chỉ kiểm tra xem chuỗi con có mặt và tồn tại trong chuỗi hay không. Nó không kiểm tra vị trí của chuỗi con, cũng như không cung cấp bất kỳ thông tin nào về số lần chuỗi con xuất hiện trong chuỗi.

Ngoài ra, bạn cũng có thể chọn kiểm tra xem một chuỗi con có không phải hiện trong một chuỗi bằng cách sử dụng not in nhà điều hành:

>>> learn_coding = "You can learn to code for free!"
>>> "free" not in learn_coding
False

Lần này, tôi sử dụng not in toán tử để kiểm tra xem chuỗi con freekhông phải có mặt trong chuỗi You can learn to code for free!. Từ free có mặt, các not in toán tử trả về False.

Bây giờ, chúng ta hãy quay trở lại in nhà điều hành.

Bạn có thể dùng in toán tử để kiểm soát hành vi của chương trình của bạn bằng cách thiết lập các điều kiện.

Hãy lấy ví dụ sau:

user_input = input("Do you need to pay to learn to code?: ")

if "yes" in user_input:
  print("Wrong! You can learn to code for free!!")

Trong ví dụ trên, tôi đang yêu cầu người dùng nhập dữ liệu và lưu trữ câu trả lời của họ trong một biến có tên user_input.

Sau đó, tôi sử dụng một câu lệnh điều kiện kết hợp với in toán tử để đưa ra quyết định (nếu bạn cần xem lại các câu lệnh có điều kiện trong Python, hãy đọc bài viết này).

Nếu câu trả lời của họ chứa chuỗi con yessau đó in trả về cụm từ Wrong! You can learn to code for free bởi vì mã trong if tuyên bố thực hiện:

Do you need to pay to learn to code?: yes, I think you do
Wrong! You can learn to code for free!!

Trong ví dụ trên, chuỗi người dùng đã nhập, yes, I think you dochứa chuỗi con yes và mã trong if khối chạy.

Đọc thêm  Các phương thức danh sách Python – append() so với extension() trong Python được giải thích bằng các ví dụ về mã

Điều gì xảy ra khi người dùng nhập Yes, I think you do với số vốn Y thay vì một chữ thường?

Do you need to pay to learn to code?: Yes, I think you do

Như bạn thấy, không có gì xảy ra! Chương trình không có đầu ra vì các chuỗi Python phân biệt chữ hoa chữ thường.

Bạn có thể viết một else tuyên bố để giải quyết điều này. Tuy nhiên, thay vào đó, bạn có thể tính đến phân biệt chữ hoa chữ thường khi kiểm tra xem liệu một chuỗi con có xuất hiện trong một chuỗi hay không.

Hãy xem làm thế nào để làm điều đó trong phần sau.

Cách thực hiện tìm kiếm không phân biệt chữ hoa chữ thường khi sử dụng in Toán tử trong Python

Trong phần trên, bạn đã thấy rằng khi tìm kiếm nếu một chuỗi con có trong một chuỗi, tìm kiếm sẽ phân biệt chữ hoa chữ thường.

Vì vậy, làm thế nào bạn có thể làm cho trường hợp tìm kiếm không nhạy cảm?

Bạn có thể chuyển đổi toàn bộ đầu vào của người dùng thành chữ thường bằng cách sử dụng .lower() phương pháp:

user_input = input("Do you need to pay to learn to code?: ").lower()

if "yes" in user_input:
  print("Wrong! You can learn to code for free!!")

Bây giờ, khi người dùng vào Yes với số vốn Ymã trong if câu lệnh chạy, ngay cả khi bạn đang tìm kiếm chuỗi con yes với một chữ thường y. Điều này là do bạn đã chuyển đổi văn bản nhập của người dùng thành tất cả các chữ cái viết thường.

Cách kiểm tra xem một chuỗi có chứa chuỗi con hay không bằng cách sử dụng .index() Phương thức trong Python

Bạn có thể dùng .index() Phương thức Python để tìm số chỉ mục bắt đầu của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con bên trong chuỗi:

learn_coding = "You can learn to code for free! Yes, for free!"
substring = "free"

print(learn_coding.index(substring))

# output

# 26

Trong ví dụ trên, tôi đã lưu trữ chuỗi You can learn to code for free! Yes, for free! trong một biến có tên learn_coding.

Tôi cũng đã lưu trữ chuỗi con free trong biến substring.

Sau đó, tôi gọi cho .index() phương thức trên chuỗi và chuyển chuỗi con làm đối số để tìm vị trí đầu tiên free xuất hiện chuỗi con. (Chuỗi được lưu trong learn_coding chứa hai trường hợp của chuỗi con free).

Cuối cùng, tôi đã in kết quả.

Nếu chuỗi con là không phải hiện diện trong chuỗi, sau đó một ValueError: substring not found lỗi được nâng lên:

learn_coding = "You can learn to code for free! Yes, for free!"
substring = "paid"

print(learn_coding.index(substring))

# output

# Traceback (most recent call last):
#  File "main.py", line 4, in <module>
#    print(learn_coding.index(substring))
# ValueError: substring not found

Các .index() phương thức hữu ích khi bạn muốn biết vị trí của chuỗi con mà bạn đang tìm kiếm và vị trí chuỗi con xuất hiện và bắt đầu trong chuỗi.

Đọc thêm  Danh sách chỉ mục nằm ngoài phạm vi - Lỗi Python [Solved]

Các in toán tử cho bạn biết liệu chuỗi con có tồn tại trong chuỗi hay không, trong khi .index() phương pháp cũng cho bạn biết ở đâu nó có tồn tại.

Mà nói, .index() không lý tưởng khi Python không thể tìm thấy chuỗi con trong chuỗi vì nó tăng ValueError lỗi.

Nếu bạn muốn tránh lỗi đó xuất hiện khi tìm kiếm một chuỗi và bạn không muốn sử dụng in toán tử, bạn có thể sử dụng Python find() phương pháp thay thế.

Cách kiểm tra xem một chuỗi có chứa chuỗi con hay không bằng cách sử dụng .find() Phương thức trong Python

Các .find() phương thức hoạt động tương tự như .index() phương thức – nó kiểm tra xem một chuỗi có chứa chuỗi con hay không và nếu có chuỗi con, nó sẽ trả về chỉ mục bắt đầu của nó.

learn_coding = "You can learn to code for free! Yes, for free!"
substring = "free"

print(learn_coding.find(substring))

# output

# 26

Sự khác biệt giữa .find() phương pháp và .index() phương pháp là với .find()bạn không phải lo lắng khi nó xử lý các ngoại lệ, so với .index().

Như bạn đã thấy ở phần trên, khi chuỗi không chứa chuỗi con, index() phát sinh lỗi.

Mặt khác, khi bạn đang sử dụng .find() phương thức và chuỗi không chứa chuỗi con mà bạn đang tìm kiếm, .find() lợi nhuận -1 mà không đưa ra một ngoại lệ:

learn_coding = "You can learn to code for free! Yes, for free!"
substring = "paid"

print(learn_coding.find(substring))

# output

# -1

Phần kết luận

Hy vọng rằng bài viết này đã giúp bạn hiểu cách kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python.

Để tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem chứng chỉ Python của freeCodeCamp.

Bạn sẽ bắt đầu từ những điều cơ bản và học theo cách tương tác và thân thiện với người mới bắt đầu. Cuối cùng, bạn cũng sẽ xây dựng năm dự án để đưa vào thực tế và giúp củng cố những gì bạn đã học được.

Cảm ơn bạn đã đọc và chúc bạn mã hóa vui vẻ!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status