So sánh hai chuỗi trong Python

Trong hướng dẫn ngắn này, chúng ta hãy xem các phương thức so sánh chuỗi khác nhau trong python. Chúng tôi cũng xem xét các trường hợp cạnh, hạn chế và cảnh báo khác nhau

Mục lục

  • So sánh chuỗi Python
  • Toán tử so sánh chuỗi
  • "==" và ". = "
  • "là" và "không phải là"
  • Hạn chế và Hãy cẩn thận

So sánh chuỗi Python

Các phương thức so sánh chuỗi Python được sử dụng để so sánh các chuỗi. Tuy nhiên, Python cũng đi kèm với một vài toán tử sẵn có tiện dụng để tạo điều kiện thuận lợi cho việc này. Tuy nhiên trước khi đi sâu vào các phương pháp, chúng ta có một khái niệm quan trọng cần được giải quyết

Dữ liệu trong chương trình của bạn được biểu diễn dưới dạng các đối tượng và đối tượng có 3 thuộc tính này. Danh tính [Id] - Danh tính chứa địa chỉ của bộ nhớ lưu trữ dữ liệu. Tiếp theo, Type là kiểu dữ liệu của đối tượng và Value là nội dung mà đối tượng lưu trữ

Python tiết kiệm bộ nhớ bằng cách sử dụng lại ID đối tượng có cùng giá trị; . . Điều này cũng giúp so sánh chuỗi python nhanh hơn và dễ dàng hơn. Ngoài ra, vui lòng thay đổi các điều khoản này vì mỗi toán tử sử dụng một thuộc tính để so sánh các đối tượng. , điều này làm cho việc so sánh chuỗi python nhanh hơn và dễ dàng hơn nhiều

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

Trong số các phương pháp khác nhau có thể được sử dụng để so sánh các chuỗi trong python, tôi đã giải thích hai phương pháp được sử dụng phổ biến nhất bên dưới

Ghi chú. Tất cả các phương thức so sánh này trả về giá trị boolean true hoặc false

So sánh chuỗi Python sử dụng "==" và ". = "

== và. = là các phép toán quan hệ thường được sử dụng để so sánh chuỗi python. Các toán tử này so sánh các giá trị Unicode của tất cả các thành phần trong chuỗi và trả về giá trị boolean đúng hoặc sai

Các giá trị Unicode là cách lưu trữ chuỗi của python. Mỗi phần tử của một chuỗi được cung cấp một mã Unicode, điều này giúp giữ cho các phần tử thống nhất bất kể ngôn ngữ mà lập trình viên sử dụng. Bạn có thể đọc thêm về điều này ở đây

Vì vậy, các toán tử quan hệ này so sánh các chuỗi dựa trên các giá trị Unicode của chúng

Sử dụng "=="

"==" là phương pháp so sánh chuỗi python để kiểm tra xem cả hai giá trị của toán hạng có bằng nhau không. Toán tử này là phương pháp được sử dụng phổ biến nhất để kiểm tra đẳng thức trong python

s1 = 'flexiple!'
print[id[s1]]
#Output = 2621679855024
s2 = 'flexiple!'
print[id[s2]]
#Output = 2621679855024
s3 = 'flexiple'
print[id[31]]
#Output = 140735453670112

print[s1==s2]
#output = True
print[s2==s3]
#output = False

Toán tử trả về True và False tương ứng. Cũng lưu ý cách Id của s1 và s2 giống hệt nhau

Tuy nhiên, hãy nhớ rằng hàm Id sẽ trả về một số khác dựa trên trình biên dịch của bạn

Sử dụng ". = "

Các. = là một toán tử so sánh chuỗi python khác để kiểm tra xem các giá trị của toán hạng có bằng nhau không. Nó thực hiện ngược lại với toán tử ==. Đoạn mã dưới đây là việc thực hiện cùng

s1 = 'flexiple!'

s2 = 'flexiple!'

s3 = 'flexiple'

print[s1!=s2]
#Output = False
print[s2!=s3]
#Output = True

So sánh chuỗi Python sử dụng "is" và "not is"

Các toán tử is và not is khá giống với == và. = tương ứng. Tuy nhiên, không giống như các toán tử quan hệ, is và not so sánh với Danh tính [id] của các đối tượng và trả về true nếu chúng có cùng danh tính

Người ta có thể lập luận rằng danh tính của đối tượng vẫn giữ nguyên, nhưng đây không phải là trường hợp khi làm việc với bất biến. Khi đối tượng được cung cấp một giá trị khác, bộ nhớ sẽ phân bổ các thay đổi để tạo cho nó một danh tính mới

Các chuỗi trong Python được so sánh với các toán tử ==

What is the capital of Delaware
Dover
You are correct!
0. Chúng so sánh nếu hai chuỗi Python tương đương hoặc không tương đương. Họ trả lại
What is the capital of Delaware
Dover
You are correct!
1 hoặc
What is the capital of Delaware
Dover
You are correct!
2

Thông thường, khi làm việc với các chuỗi trong Python, bạn có thể muốn so sánh chúng với nhau. Ví dụ: bạn có thể muốn so sánh địa chỉ email của người dùng với địa chỉ bạn đã lưu trữ trong cơ sở dữ liệu khi bạn yêu cầu họ đặt lại mật khẩu

Tìm trận đấu Bootcamp của bạn

  • Career Karma kết hợp bạn với các bootcamp công nghệ hàng đầu
  • Truy cập học bổng độc quyền và các khóa học chuẩn bị
Chọn sở thích của bạn
Tên đầu tiên

Họ

E-mail

Số điện thoại


Bằng cách tiếp tục, bạn đồng ý với Điều khoản dịch vụ và Chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận các ưu đãi và cơ hội từ Career Karma qua điện thoại, tin nhắn văn bản và email

Python bao gồm một số toán tử so sánh có thể được sử dụng để so sánh các chuỗi. Các toán tử này cho phép bạn kiểm tra xem các chuỗi so sánh với nhau như thế nào và trả về giá trị Đúng hoặc Sai dựa trên kết quả

Hướng dẫn này sẽ thảo luận về các toán tử so sánh có sẵn để so sánh các chuỗi trong Python. Chúng ta sẽ xem qua một ví dụ về từng toán tử này để cho biết cách chúng hoạt động và cách bạn có thể sử dụng chúng trong mã của mình. Nếu bạn đang muốn tìm hiểu cách so sánh các chuỗi trong Python, thì bài viết này là dành cho bạn

Chuỗi Python là và không bằng

Chuỗi là chuỗi các ký tự có thể bao gồm số, chữ cái, ký hiệu và khoảng trắng. Chuỗi là một loại dữ liệu quan trọng vì chúng cho phép các lập trình viên tương tác với dữ liệu dựa trên văn bản trong chương trình của họ

Khi bạn đang làm việc với một chuỗi, bạn có thể muốn xem liệu một chuỗi có bằng hoặc không bằng một chuỗi khác. Đó là nơi mà các toán tử so sánh chuỗi

What is the capital of Delaware
Dover
You are correct!
3 và
What is the capital of Delaware
Dover
You are correct!
4 xuất hiện

Toán tử đẳng thức

What is the capital of Delaware
Dover
You are correct!
3 trả về True nếu hai giá trị khớp nhau; . Toán tử
What is the capital of Delaware
Dover
You are correct!
4 trả về True nếu hai giá trị không khớp và Sai nếu hai giá trị khớp

Điều quan trọng cần lưu ý là so sánh chuỗi có phân biệt chữ hoa chữ thường. Vì vậy, chữ thường và chữ hoa sẽ ảnh hưởng đến kết quả so sánh mà bạn thực hiện trong chương trình Python của mình

Giả sử bạn đang xây dựng một trò chơi kiểm tra kiến ​​thức của người chơi về thủ phủ của các bang. Để kiếm được điểm, người chơi phải trả lời đúng một câu hỏi. Vì vậy, một người chơi có thể được cấp bang California và để đạt được điểm, họ cần nhập thủ đô là Sacramento vào chương trình

» THÊM.   Đối số tùy chọn của Python. Hướng dẫn cách thực hiện

Dưới đây là một ví dụ về ứng dụng trò chơi đoán so sánh câu trả lời của người dùng với câu trả lời được chương trình lưu trữ

random_state = "Delaware"

message = "What is the capital of ", random_state
user_answer = input[message]

state_capital = "Dover"

if user_answer == state_capital:
	print["You are correct!"]
else:
	print["The capital of ", random_state, "is", state_capital]

Đây là điều xảy ra khi chúng ta chạy trò chơi đoán và đoán đúng thủ phủ của bang Delaware là Dover

What is the capital of Delaware
Dover
You are correct!

Các chuỗi của chúng ta bằng nhau, vì vậy hàm

What is the capital of Delaware
Dover
You are correct!
7 của chúng ta sẽ đánh giá để sửa và in ra
What is the capital of Delaware
Dover
You are correct!
8. Nếu chúng ta đoán sai thủ phủ của bang là Denver, mã của chúng ta sẽ trả về

What is the capital of Delaware
Denver
The capital of Delaware of Dover

Hãy chia nhỏ mã của chúng tôi. Ở cái đầu tiên, chúng tôi khai báo trạng thái ngẫu nhiên của mình, trong trường hợp này là Delaware. Sau đó, chúng tôi sử dụng phương pháp người dùng

What is the capital of Delaware
Dover
You are correct!
9 để hỏi người dùng
What is the capital of Delaware
Denver
The capital of Delaware of Dover
0

Sau đó, chương trình của chúng tôi tuyên bố thủ phủ của tiểu bang là Dover và sử dụng câu lệnh

What is the capital of Delaware
Denver
The capital of Delaware of Dover
1 để so sánh xem vốn tiểu bang mà chương trình đã lưu trữ có bằng với những gì người dùng đã nhập hay không.  

Khi chúng tôi nhập

What is the capital of Delaware
Denver
The capital of Delaware of Dover
2, câu lệnh if được đánh giá là Đúng, vì vậy chương trình của chúng tôi đã in thông báo
What is the capital of Delaware
Dover
You are correct!
8 ra bảng điều khiển. Khi chúng tôi nhập
What is the capital of Delaware
Denver
The capital of Delaware of Dover
4, câu lệnh của chúng tôi được đánh giá là Sai, vì vậy chương trình của chúng tôi đã thực thi mã trong câu lệnh in
What is the capital of Delaware
Denver
The capital of Delaware of Dover
5

Python là Toán tử

Phương pháp phổ biến nhất được sử dụng để so sánh các chuỗi là sử dụng toán tử

What is the capital of Delaware
Dover
You are correct!
3 và
What is the capital of Delaware
Dover
You are correct!
4, so sánh các biến dựa trên giá trị của chúng. Tuy nhiên, nếu bạn muốn so sánh xem hai phiên bản đối tượng có giống nhau hay không dựa trên ID đối tượng của chúng, thay vào đó, bạn có thể muốn sử dụng
What is the capital of Delaware
Denver
The capital of Delaware of Dover
8 và
What is the capital of Delaware
Denver
The capital of Delaware of Dover
9

Sự khác biệt giữa

What is the capital of Delaware
Dover
You are correct!
3 và
What is the capital of Delaware
Denver
The capital of Delaware of Dover
8 [và
What is the capital of Delaware
Dover
You are correct!
4 và
What is the capital of Delaware
Denver
The capital of Delaware of Dover
9] là toán tử so sánh
What is the capital of Delaware
Dover
You are correct!
3 so sánh hai biến dựa trên giá trị thực của chúng và từ khóa
What is the capital of Delaware
Denver
The capital of Delaware of Dover
8 so sánh hai biến dựa trên id đối tượng của chúng

» THÊM.   Các bài tập và câu đố hay nhất giúp bạn học Python

Hãy sử dụng một ví dụ. Giả sử rằng chúng tôi có điểm của hai người dùng được lưu trữ dưới dạng một chuỗi và chúng tôi muốn xem liệu họ có giống nhau hay không. Chúng tôi có thể làm như vậy bằng cách sử dụng đoạn mã sau

player_one_score = "100"
player_two_score = "100"

if player_one_score is player_two_score:
print["Player #1 and #2 have the same number of points."]
else:
	print["Player #1 and #2 do not have the same number of points."]

mã của chúng tôi trả về

Player #1 and #2 have the same number of points. 

Trong đoạn mã trên, chúng ta cũng có thể sử dụng toán tử

What is the capital of Delaware
Dover
You are correct!
3. Tuy nhiên, chúng tôi đã sử dụng toán tử
What is the capital of Delaware
Denver
The capital of Delaware of Dover
8 thay vì nó sử dụng ít bộ nhớ hơn và chúng tôi chỉ cần so sánh hai đối tượng

Câu lệnh

player_one_score = "100"
player_two_score = "100"

if player_one_score is player_two_score:
print["Player #1 and #2 have the same number of points."]
else:
	print["Player #1 and #2 do not have the same number of points."]
8 được đánh giá là Đúng trong chương trình của chúng tôi vì cả hai biến
player_one_score = "100"
player_two_score = "100"

if player_one_score is player_two_score:
print["Player #1 and #2 have the same number of points."]
else:
	print["Player #1 and #2 do not have the same number of points."]
9 và
Player #1 and #2 have the same number of points. 
0 có cùng ID đối tượng. Chúng tôi có thể kiểm tra các ID này bằng cách sử dụng từ khóa
Player #1 and #2 have the same number of points. 
1

print[id[player_one_score]]
print[id[player_two_score]]

mã của chúng tôi trả về

140239618130992
140239618130992

Như bạn có thể thấy, các đối tượng của chúng ta đều giống nhau, và do đó toán tử

What is the capital of Delaware
Denver
The capital of Delaware of Dover
8 được đánh giá là True. Nói chung, bạn nên sử dụng
What is the capital of Delaware
Dover
You are correct!
3 khi so sánh các loại dữ liệu bất biến như chuỗi và số và khi so sánh các đối tượng

Toán tử so sánh khác của Python

Ngoài ra, bạn có thể so sánh các chuỗi theo thứ tự từ điển bằng Python. Thứ tự từ điển đề cập đến việc sắp xếp các chữ cái dựa trên thứ tự bảng chữ cái của các chữ cái thành phần của chúng. Để làm như vậy, chúng ta có thể sử dụng các toán tử so sánh khác do Python cung cấp. Đây là như sau

  • Player #1 and #2 have the same number of points. 
    4 – Nhỏ hơn
  • Player #1 and #2 have the same number of points. 
    5 – Lớn hơn
  • Player #1 and #2 have the same number of points. 
    6 – Nhỏ hơn hoặc bằng
  • Player #1 and #2 have the same number of points. 
    7 – Lớn hơn hoặc bằng

Giả sử chúng ta đang tạo một chương trình nhận hai tên sinh viên và trả về một thông báo có tên đứng đầu trong bảng chữ cái

Chúng ta có thể sử dụng đoạn mã sau để hoàn thành nhiệm vụ này

student_one = "Penny"
student_two = "Paul"

if student_one > student_two:
	print["Penny comes before Paul in the alphabet."]
elif student_one < student_two:
	print["Paul comes before Penny in the alphabet."]

mã của chúng tôi trả về

"Career Karma bước vào cuộc đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi phù hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với giá trị và mục tiêu của mình trong cuộc sống. "

Venus, Kỹ sư phần mềm tại Rockbot

Find Your Bootcamp Match

Paul comes before Penny in the alphabet.

Hãy chia nhỏ mã của chúng tôi. Trên hai dòng đầu tiên, chúng tôi khai báo hai biến lưu trữ tên sinh viên của chúng tôi. Trong trường hợp này, những tên này là Penny và Paul

» THÊM.   Python sắp xếp lựa chọn. Hướng dẫn

Sau đó, chúng tôi tạo một câu lệnh if sử dụng toán tử

Player #1 and #2 have the same number of points. 
8 để xác định xem tên của Penny có đứng trước tên của Paul theo thứ tự từ điển hay không. Nếu điều này được đánh giá là Đúng, một thông báo sẽ được in ra bảng điều khiển cho chúng tôi biết rằng Penny đứng trước Paul trong bảng chữ cái

Chúng tôi cũng tạo một câu lệnh

Player #1 and #2 have the same number of points. 
9 sử dụng toán tử
print[id[player_one_score]]
print[id[player_two_score]]
0 để xác định xem tên của Penny có xuất hiện trước tên của Paul trong bảng chữ cái hay không. Nếu điều này được đánh giá là Đúng, một thông báo sẽ được in ra bảng điều khiển cho người dùng biết rằng Paul đứng trước Penny trong bảng chữ cái

Trong trường hợp này, tên của Paul xuất hiện trước tên của Penny trong bảng chữ cái, vì vậy mã trong khối

Player #1 and #2 have the same number of points. 
9 của chúng tôi được đánh giá là đúng và thông báo
print[id[player_one_score]]
print[id[player_two_score]]
2. được in ra bàn điều khiển

Phần kết luận

So sánh hai chuỗi là một tính năng quan trọng của Python. Chẳng hạn, bạn có thể đang tạo một biểu mẫu đăng nhập cần so sánh mật khẩu mà người dùng đã nhập với mật khẩu họ đã đặt cho tài khoản của mình

Các toán tử so sánh Python có thể được sử dụng để so sánh các chuỗi trong Python. Các toán tử này là. bằng [_______2_______3], không bằng [

What is the capital of Delaware
Dover
You are correct!
4], lớn hơn [
Player #1 and #2 have the same number of points. 
5], nhỏ hơn [
Player #1 and #2 have the same number of points. 
4], nhỏ hơn hoặc bằng [
Player #1 and #2 have the same number of points. 
6] và lớn hơn hoặc bằng [
Player #1 and #2 have the same number of points. 
7]. Hướng dẫn này khám phá cách sử dụng các toán tử này để so sánh các chuỗi và xem qua một số ví dụ về so sánh chuỗi trong Python

Bây giờ bạn đã sẵn sàng bắt đầu so sánh các chuỗi trong Python như một chuyên gia



Về chúng tôi. Career Karma là một nền tảng được thiết kế để giúp người tìm việc tìm kiếm, nghiên cứu và kết nối với các chương trình đào tạo việc làm để thăng tiến trong sự nghiệp của họ. Tìm hiểu về ấn phẩm CK

Tôi có thể sử dụng == để so sánh hai chuỗi không?

Bạn không nên sử dụng == [toán tử đẳng thức] để so sánh các chuỗi này vì chúng so sánh tham chiếu của chuỗi, i. e. liệu chúng có phải là cùng một đối tượng hay không. Mặt khác, phương thức equals[] so sánh xem giá trị của các chuỗi có bằng nhau hay không và không phải chính đối tượng.

== so sánh trong Python là gì?

Toán tử == so sánh giá trị hoặc đẳng thức của hai đối tượng , trong khi toán tử is của Python kiểm tra xem hai biến có trỏ đến cùng một đối tượng hay không . Trong phần lớn các trường hợp, điều này có nghĩa là bạn nên sử dụng các toán tử đẳng thức == và. = , trừ khi bạn đang so sánh với Không.

Có thể sử dụng == cho chuỗi không?

Trong Chuỗi, toán tử == được sử dụng để so sánh tham chiếu của các chuỗi đã cho, tùy thuộc vào việc chúng có đang tham chiếu đến cùng một đối tượng hay không. When you compare two strings using == operator, it will return true if the string variables are pointing toward the same java object. Otherwise, it will return false .

Chủ Đề