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
- =. 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 FalseNhư 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") 0Mộ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) -1Lư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
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?”