Kiểm tra chuỗi Python

Trong bài viết này, chúng ta sẽ tìm hiểu string trong ngôn ngữ lập trình là gì, cách tạo chúng và công dụng của chúng. Hơn nữa, chúng ta sẽ nghiên cứu các toán tử khác nhau để so sánh các chuỗi trong python. Cuối cùng, chúng ta sẽ nghiên cứu một số so sánh chuỗi Python một cách ngắn gọn cùng với ví dụ và đầu ra mã python của nó. Vậy hãy bắt đầu

Chuỗi là gì?

Một chuỗi thường là một dãy các ký tự. Một ký tự là một biểu tượng đơn giản. Ví dụ: trong Ngôn ngữ tiếng Anh, chúng tôi có sẵn 26 ký tự. Hệ thống máy tính không hiểu các ký tự và do đó, xử lý các số nhị phân. Mặc dù chúng ta có thể nhìn thấy các ký tự trên màn hình điều khiển của mình, nhưng bên trong nó được lưu trữ và thao tác dưới dạng kết hợp của 0 và 1. Việc chuyển đổi các ký tự và số nhị phân được gọi là mã hóa và ngược lại được gọi là giải mã. Một số bảng mã phổ biến là ASCII và Unicode. Trong ngôn ngữ lập trình Python, một chuỗi là một dãy các ký tự Unicode

Toán tử so sánh chuỗi Python

Trong ngôn ngữ python, chúng ta có thể so sánh 2 chuỗi như nhận biết 2 chuỗi có tương đương với nhau hay không, thậm chí chuỗi nào lớn hơn hay nhỏ hơn nhau. Hãy để chúng tôi kiểm tra một số toán tử so sánh chuỗi được sử dụng cho mục đích này bên dưới

  • ==. Toán tử này kiểm tra xem hai chuỗi có bằng nhau không
  • =. Toán tử này kiểm tra xem hai chuỗi không bằng nhau
  • <: This operator checks whether the string on the left side is smaller than the string on the right side.
  • <=: This operator checks whether the string on the left side is smaller or equal to the string on the right side.
  • >. Toán tử này kiểm tra xem chuỗi bên trái có lớn hơn chuỗi bên phải hay không
  • >=. Toán tử này kiểm tra xem chuỗi bên trái có lớn hơn chuỗi bên phải hay không

Kiểm tra chuỗi bằng trong Python

Trong lập trình python, chúng ta có thể kiểm tra xem các chuỗi có bằng nhau hay không bằng cách sử dụng “==” hoặc bằng cách sử dụng “. chức năng __eq__”

Thí dụ

s1 = 'String'
s2 = 'String'
s3 = 'string'

# case sensitive equals check
if s1 == s2:
    print('s1 and s2 are equal.')

if s1.__eq__(s2):
    print('s1 and s2 are equal.')

Ở đây, chúng tôi kiểm tra chuỗi s1 và s2 xem chúng có bằng nhau hay không, sau đó sử dụng câu lệnh điều kiện “if” với sự kết hợp của toán tử bằng

Đầu ra của mã trên là như đưa ra dưới đây

s1 và s2 bằng nhau

s1 và s2 bằng nhau

Còn so sánh không phân biệt chữ hoa chữ thường thì sao?

Trong khi kiểm tra sự bằng nhau trong chuỗi đôi khi chúng ta muốn bỏ qua trường hợp của chuỗi trong khi so sánh. Vì vậy, như một giải pháp cho vấn đề này, chúng ta có thể sử dụng hàm fold(), Lower() hoặc Upper() để bỏ qua trường hợp so sánh đẳng thức chuỗi không phân biệt chữ hoa chữ thường

s1 = 'String'
s2 = 'String'
s3 = 'string'

if s1.casefold() == s3.casefold():
    print(s1.casefold())
    print(s3.casefold())
    print('s1 and s3 are equal in case-insensitive comparison')

if s1.lower() == s3.lower():
    print(s1.lower())
    print(s3.lower())
    print('s1 and s3 are equal in case-insensitive comparison')

if s1.upper() == s3.upper():
    print(s1.upper())
    print(s3.upper())
    print('s1 and s3 are equal in case-insensitive comparison')

Đầu ra của mã trên là như đưa ra dưới đây

sợi dây

sợi dây

s1 và s3 bằng nhau trong so sánh không phân biệt chữ hoa chữ thường

sợi dây

sợi dây

s1 và s3 bằng nhau trong so sánh không phân biệt chữ hoa chữ thường

SỢI DÂY

SỢI DÂY

s1 và s3 bằng nhau trong so sánh không phân biệt chữ hoa chữ thường

 

Sự kết luận

Vì vậy, trong bài viết này, chúng tôi đã nghiên cứu cách so sánh các chuỗi trong ngôn ngữ lập trình python. Ngoài ra, chúng tôi đã nghiên cứu một số toán tử so sánh chuỗi và kiểm tra sự bằng nhau của chuỗi. Thậm chí chúng tôi đã kiểm tra so sánh không phân biệt chữ hoa chữ thường

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

Ngày thứ nhất. 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

Kiểm tra chuỗi 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 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?”

Công dụng của check() trong Python là gì?

Để kiểm tra xem một cụm từ hoặc ký tự nhất định có trong một chuỗi hay không , chúng ta có thể sử dụng từ khóa in hoặc not in.

Làm cách nào để kiểm tra chuỗi tồn tại hay không trong Python?

Sử dụng find() để kiểm tra xem một chuỗi có chứa chuỗi con khác hay không . Hàm này trả về vị trí chỉ mục đầu tiên nơi chuỗi con được tìm thấy, nếu không thì trả về -1.