Được rồi.
Trong video này, tôi sẽ thử lừa bạn.
Tôi muốn bạn nhìn vào những biểu thức này, nơi tôi đang kiểm tra sự bình đẳng.
Đúng.
Tôi đang nói, hey, có đúng với một không?
Có phải chuỗi rỗng bằng một làm để xóa bằng mà là trống bằng.
Vâng mỗi khác.
Bây giờ, hãy tạm dừng video ở đây và thử đoán xem kết quả của việc này sẽ như thế nào.
Sẳn sàng.
Nhân tiện, nếu bạn nhận được 100% về điều này.
Tốt cho bạn, vì nếu đây là lần đầu tiên tôi học Python, tôi sẽ không hiểu được điều này.
Đi nào.
Hừ!
Đó có phải là lý do tại sao bạn mong đợi?
ĐÚNG VẬY.
Đánh giá sao cho đúng bằng muốn đánh giá thành đúng.
Một chuỗi rỗng tương đương với một chuỗi được đánh giá là false.
Điều đó có ý nghĩa vì họ chắc chắn không bằng nhau.
Đúng?
Một mảng trống không bằng một.
Và một mười bằng 10. 0.
Và sau đó là cả hai cuộc đua mà trống rỗng.
Bằng với true.
Bây giờ, lý do tôi chỉ cho bạn ở đây là các dấu bằng kép kiểm tra sự bình đẳng hoặc bình đẳng về giá trị.
Có nghĩa là, nếu, ví dụ, giá trị đầu tiên đúng bằng với một giá trị khác.
Có hai loại khác nhau.
Một là số nguyên, một là thỏi.
Nó sẽ chuyển chúng thành cùng một loại.
Trong trường hợp này, nó sẽ được chuyển đổi như thế này thành một giá trị boolean.
Và nếu bạn nhớ, một trong những sự thật.
Vì vậy, điều này sẽ đánh giá là đúng, đó là lý do tại sao chúng tôi nhận được đúng.
Còn cái kia thì sao?
Chà, một chuỗi rỗng là sai, vì vậy nó được đánh giá là sai.
Và sai không bằng đúng.
Đúng.
Bởi vì chúng tôi đang kiểm tra sự bình đẳng ở đây.
Vì vậy, một trong số này được chuyển đổi sang loại khác.
Còn một mảng trống thì sao?
Một lần nữa, một mảng trống thực sự là sai.
Vì vậy, nó sẽ không bằng một.
Một mười tương đương với một phao 10. 0.
Điều đó được chuyển đổi thành một số nguyên hoặc float và chúng sẽ bằng nhau.
Và đó là một hành vi được mong đợi.
Và sau đó một mảng trống, tốt, bằng một mảng trống.
Nếu tôi thêm vào mảng này, một, hai, ba, một, hai, ba và tôi bấm chạy.
Tôi nhận được một cú pháp không hợp lệ vì tôi có cái này ở đây.
Hãy chạy lại lần nữa.
Tôi hiểu đúng.
Điều đó có ý nghĩa.
Hãy thay đổi điều này thành một và xem điều gì sẽ xảy ra nếu tôi nhấp vào Chạy.
Được rồi.
Vẫn sai.
Bây giờ, điều này có một chút khó khăn, phải không?
Giống.
Hừ!
Điều này có nên đánh giá thành sự thật không?
Nhưng không, chúng tôi nhận được sai.
Vì vậy, điều này không được chuyển đổi về loại so với những gì chúng tôi đã có ở đây.
Bây giờ, đừng bối rối bởi vì đây sẽ là mã xấu nếu bạn đang kiểm tra một cái gì đó như thế này.
Rõ ràng là bạn nên kiểm tra hai loại, hai loại cùng loại với nhau.
Lý tưởng nhất là khi bạn sử dụng toán tử so sánh hoặc toán tử logic như thế này, bạn đang so sánh hai kiểu và bạn
không cho phép Python thực hiện chuyển đổi kiểu này.
Và hy vọng Python tìm ra nó cho chúng ta.
Nhưng tôi hy vọng chất lượng kép có ý nghĩa vì có một kiểm tra khác mà chúng tôi có thể thực
hiện, đó là từ khóa và python.
Điều gì xảy ra nếu chúng ta thay đổi tất cả các dấu bằng này thành là.
Bạn có nghĩ rằng sẽ có một sự khác biệt?
Chúng ta hãy có một cái nhìn.
Nếu tôi bấm Chạy.
Tôi nhận được sai cho tất cả mọi thứ.
Hừ!
Vậy sự khác biệt ở đây là gì?
Equals kiểm tra sự bình đẳng về giá trị.
Chẳng hạn như?
Một hai ba.
Chà, nó có cùng giá trị với một, hai, ba.
Trong một danh sách thực sự là kiểm tra.
Nếu vị trí trong bộ nhớ nơi lưu trữ giá trị này là như nhau.
Hừ!
Hãy đi qua điều đó.
Đúng vậy.
Đó là một lưu ý đúng không phải là một đúng cũng chỉ đúng tỷ lệ sẽ đúng.
Thế còn.
Chuỗi một.
Đó có phải là một trong những?
Không.
Ý tôi là, để một là một chuỗi, thì cần phải là một, phải không?
Bởi vì một chuỗi không chỉ ở một nơi trong bộ nhớ.
Nó thực sự giống hệt như vậy.
Còn danh sách này thì sao?
Như một vấn đề của thực tế, hãy làm là mảng, mảng trống?
Đó là hay danh sách này là một danh sách?
Chà, nếu chúng ta chạy cái này.
Tôi vẫn nhận được sai.
Hừ!
Và điều này là một chút khó khăn và cũng nâng cao.
Mỗi khi tôi tạo một danh sách, nó sẽ được thêm vào bộ nhớ ở đâu đó.
Vì vậy, đây là một vị trí trong bộ nhớ.
Nhưng bất cứ khi nào tôi tạo một danh sách mới.
Nó được tạo ở một vị trí khác.
Vì vậy, đây là hai danh sách hoàn toàn khác nhau sống ở các vị trí khác nhau trong bộ nhớ.
Vì vậy, nó sẽ kiểm tra, này, cái này có trong cùng một không gian bộ nhớ, cùng một giá sách với cái kia không?
Không, đấy không phải nó.
Nhưng tại sao điều này lại hoạt động đối với những thứ như số và chuỗi?
Và đó là bởi vì bên dưới mui xe, đây là những loại rất đơn giản, nằm trong bộ nhớ, nhưng ở một vị trí
so với một cái gì đó giống như một danh sách, mặc dù đây có thể là cùng một danh sách với các
mục giống nhau.
Vì đây là một cấu trúc dữ liệu.
Mỗi khi chúng ta tạo nó, nó sẽ được tạo ở một vị trí mới để ngay cả khi chúng ta có một biến A chứa.
Danh sách này.
Và nhân tiện, điều này sẽ giống nhau đối với tất cả các cấu trúc dữ liệu của chúng tôi như từ điển, bộ, bộ giá trị.
Nếu tôi làm B tương đương với điều này và tôi kiểm tra A, đó có phải là B không?
Không.
Chúng được tạo trong một không gian bộ nhớ khác.
Vì vậy, đây là nơi mà một điểm ở một nơi khác với nơi B chỉ.
Nhưng nếu tôi làm A bằng được.
Tôi đúng bởi vì điều này kiểm tra bình đẳng kép.
Chỉ những thung lũng.
Bây giờ đây là một chủ đề hơi khó, vì vậy bạn có thể phải xem video này một vài lần.
Bạn có thể phải tự mình thực hành điều này một vài lần.
Nhưng chỉ cần lưu ý rằng sự khác biệt giữa IS và double equals có xu hướng chặt chẽ hơn một chút.
Bạn đang kiểm tra điều chính xác mà bạn đang tìm kiếm so với sự bình đẳng, điều này sẽ kiểm tra giá trị.
Được rồi.
Đó là một sự ngu ngốc.
Hẹn gặp lại các bạn trong video tiếp theo.
Tạm biệt.