Kiểm tra nhiều hơn hai điều kiện là rất phổ biến trong các ngôn ngữ lập trình. Hãy nói rằng chúng tôi muốn kiểm tra điều kiện dưới đây: Show
a < b < c Cú pháp phổ biến nhất để làm như sau: if a < b and b < c : {...} Trong Python, có một cách tốt hơn để viết điều này bằng cách sử dụng chuỗi vận hành so sánh. Việc chuỗi các toán tử có thể được viết như sau:Comparison operator Chaining. The chaining of operators can be written as follows: if a < b < c : {.....} Theo sự kết hợp và ưu tiên trong Python, tất cả các hoạt động so sánh trong Python đều có cùng mức độ ưu tiên, thấp hơn so với bất kỳ hoạt động số học, dịch chuyển hoặc bitwise nào. Cũng không giống như C, các biểu thức như A Chuỗi các nhà khai thác so sánh:
x < y <= z is equivalent to x < y and y <= z,
a op1 b op2 c Nó không ngụ ý bất kỳ loại so sánh giữa A và C, vì vậy a < b > c là hoàn toàn hợp pháp. Pythonif a < b and b < c : {...}9 if a < b < c : {.....}0 if a < b < c : {.....}1 if a < b < c : {.....}2 if a < b < c : {.....}3 if a < b < c : {.....}4 if a < b < c : {.....}5 if a < b < c : {.....}6 if a < b < c : {.....}7 if a < b < c : {.....}2 if a < b < c : {.....}3 if a < b < c : {.....}6 if a < b < c : {.....}5 ">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"2 if a < b < c : {.....}7 if a < b < c : {.....}2 ">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"5 if a < b < c : {.....}6 ">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"7 ">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"8 if a < b < c : {.....}6 x < y <= z is equivalent to x < y and y <= z,0 x < y <= z is equivalent to x < y and y <= z,1 if a < b < c : {.....}7 if a < b < c : {.....}2 if a < b < c : {.....}3 if a < b < c : {.....}6 x < y <= z is equivalent to x < y and y <= z,6 if a < b < c : {.....}0 x < y <= z is equivalent to x < y and y <= z,8 if a < b < c : {.....}7 if a < b < c : {.....}2 if a < b < c : {.....}3 if a < b < c : {.....}1 if a < b < c : {.....}0 if a < b < c : {.....}0 a op1 b op2 c5 a op1 b op2 c6 if a < b < c : {.....}7 Output: True False True True True Một ví dụ khác: & nbsp; Pythonif a < b and b < c : {...}9 if a < b < c : {.....}0 if a < b < c : {.....}1 if a < b < c : {.....}2 if a < b < c : {.....}3 if a < b < c : {.....}4 if a < b < c : {.....}5 if a < b < c : {.....}6 if a < b < c : {.....}7 if a < b < c : {.....}2 if a < b < c : {.....}3 if a < b < c : {.....}6 if a < b < c : {.....}5 ">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"2 if a < b < c : {.....}7 True False True True True6 if a < b < c : {.....}2 ">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"5 if a < b < c : {.....}6 ">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"7 ">" | "<" | "==" | ">=" | "<=" | "!=" | "is" ["not"] | ["not"] "in"8 if a < b < c : {.....}6 x < y <= z is equivalent to x < y and y <= z,0 x < y <= z is equivalent to x < y and y <= z,1 if a < b < c : {.....}7 if a < b < c : {.....}2 if a < b < c : {.....}3 if a < b < c : {.....}6 x < y <= z is equivalent to x < y and y <= z,6 if a < b < c : {.....}0 x < y <= z is equivalent to x < y and y <= z,8 if a < b < c : {.....}7 if a < b < c : {.....}2 if a < b < c : {.....}3 if a < b < c : {.....}1 if a < b < c : {.....}0 if a < b < c : {.....}0 a op1 b op2 c5 a op1 b op2 c6 if a < b < c : {.....}7 if a < b < c : {.....}2 3if a < b < c : {.....}2 5Output: True False Một ví dụ khác: & nbsp;: Python 3 Documentation This article is contributed by Pratik Chhajer. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks. a op1 b op2 c8 if a < b < c : {.....}0 a < b > c0 a < b > c1 if a < b < c : {.....}1 a < b > c1 a < b > c441. Tìm hiểu về chuỗi vận hành so sánh, và đặc biệt là các trường hợp bạn nên tránh. . Giới thiệuTrong pydon này, chúng ta sẽ vượt qua chuỗi các nhà khai thác so sánh:
Chuỗi các nhà khai thác so sánhMột trong những điều tôi thích về Python là một số tính năng của nó rất có ý nghĩa đến nỗi bạn thậm chí không nhận thấy rằng bạn đang sử dụng một tính năng cho đến khi ai đó chỉ ra rằng mã đó sẽ không hoạt động bằng các ngôn ngữ khác. Một ví dụ như vậy là so sánh chuỗi! Nhìn vào đoạn mã này và cho tôi biết nếu nó không có vẻ tự nhiên:
Khi Python nhìn thấy hai toán tử so sánh liên tiếp, như trong 6, nó hoạt động như thể bạn đã viết một cái gì đó như 7, ngoại trừ 8 chỉ được đánh giá một lần (có liên quan nếu 8 là một biểu thức như một cuộc gọi chức năng).Theo tôi, các tính năng này có rất nhiều ý nghĩa và không có vẻ đáng ngạc nhiên. Thay vào đó, bây giờ tôi cảm thấy buồn khi hầu hết các ngôn ngữ không có hỗ trợ cho hành vi này. Một ví dụ khác sử dụng là khi bạn muốn đảm bảo rằng ba giá trị đều giống nhau: if a < b and b < c : {...}0 Bạn có biết rằng bạn thực sự có thể xâu chuỗi một số nhà khai thác so sánh tùy ý? Ví dụ: if a < b and b < c : {...}00 kiểm tra xem tất cả năm biến có giống nhau không, trong khi if a < b and b < c : {...}01 kiểm tra xem bạn có trình tự tăng nghiêm ngặt không. Cạm bẫyMặc dù tính năng này trông rất hợp lý, có một vài cạm bẫy mà bạn phải tìm kiếm. Các nhà khai thác không chuyển đổiChúng tôi đã thấy ở trên rằng chúng tôi có thể sử dụng if a < b and b < c : {...}02 để kiểm tra xem if a < b and b < c : {...}03, 8 và 1 đều giống nhau. Làm thế nào bạn sẽ kiểm tra nếu tất cả đều khác nhau?Nếu bạn nghĩ về if a < b and b < c : {...}06, thì bạn đã rơi vào cạm bẫy đầu tiên! Nhìn vào mã này: if a < b and b < c : {...}1 Vấn đề ở đây là if a < b and b < c : {...}06 là if a < b and b < c : {...}08, kiểm tra xem 8 khác với if a < b and b < c : {...}03 và từ 1, nhưng không nói gì về cách if a < b and b < c : {...}03 và 1 liên quan.Từ quan điểm toán học, if a < b and b < c : {...}14 không chuyển tiếp, tức là biết cách if a < b and b < c : {...}03 liên quan đến 8 và biết cách 8 liên quan đến 1 không cho bạn biết if a < b and b < c : {...}03 liên quan đến 1 như thế nào. Đối với một ví dụ chuyển tiếp, bạn có thể lấy toán tử bình đẳng if a < b and b < c : {...}21. Nếu if a < b and b < c : {...}22 và if a < b and b < c : {...}23 thì cũng đúng là if a < b and b < c : {...}24. Biểu thức không liên tục hoặc tác dụng phụHãy nhớ lại rằng trong chuỗi các so sánh, như 6, biểu thức 8 ở giữa chỉ được đánh giá một lần, trong khi nếu bạn viết biểu thức mở rộng, 7, thì 8 sẽ được đánh giá hai lần.Nếu 8 chứa một biểu thức có tác dụng phụ hoặc nếu đó là thứ không đổi, thì hai biểu thức không tương đương và bạn nên nghĩ về những gì bạn đang làm.Đoạn trích này cho thấy sự khác biệt về số lượng đánh giá biểu thức ở giữa: if a < b and b < c : {...}2 Đoạn trích này cho thấy rằng một biểu thức như if a < b and b < c : {...}30 thực sự có thể đánh giá thành if a < b and b < c : {...}31 khi nó được mở ra: if a < b and b < c : {...}3 Cú pháp if a < b and b < c : {...}32 là một lát cắt của người Viking đảo ngược danh sách. Tôi sẽ viết về việc cắt danh sách sớm, vì vậy hãy theo dõi điều đó! Tất nhiên, if a < b and b < c : {...}30 không bao giờ nên là if a < b and b < c : {...}31, vì vậy điều này chỉ cho thấy rằng sự so sánh chuỗi và cái mở ra không phải lúc nào cũng tương đương. Chuỗi xấu xíTính năng này trông thực sự tự nhiên, nhưng một số trường hợp cụ thể không quá tuyệt vời. Đây là một vấn đề khá chủ quan, nhưng cá nhân tôi không yêu thích các chuỗi mà các nhà khai thác không "phù hợp", vì vậy các chuỗi như
Trông thực sự tốt, nhưng theo ý kiến của tôi, các chuỗi
Đừng nhìn tốt như vậy. Ví dụ, người ta có thể tranh luận rằng if a < b and b < c : {...}38 đọc độc đáo là kiểm tra xem 8 có lớn hơn cả if a < b and b < c : {...}03 và 1, nhưng bạn cũng có thể viết if a < b and b < c : {...}45 hoặc if a < b and b < c : {...}46. Bây giờ có một số chuỗi khác chỉ là khó hiểu:
Trong Python, True False True True True8, if a < b and b < c : {...}51, if a < b and b < c : {...}52 và if a < b and b < c : {...}53 là các toán tử so sánh, vì vậy bạn cũng có thể xâu chuỗi chúng với các toán tử khác. Điều này tạo ra những tình huống kỳ lạ như if a < b and b < c : {...}4 Dưới đây là sự cố về những gì đang xảy ra trong ví dụ trước:
Người đã viết if a < b and b < c : {...}54 có lẽ có nghĩa là if a < b and b < c : {...}64, nhưng điều đó cũng giống như if a < b and b < c : {...}56. Ví dụ trong mãChuỗi bất bình đẳngCó một hàm tiện ích đơn giản đảm bảo rằng một giá trị nhất định nằm giữa hai giới hạn trở nên thực sự đơn giản, ví dụ: if a < b and b < c : {...}5 Hoặc nếu bạn muốn rõ ràng hơn một chút, đồng thời đảm bảo if a < b and b < c : {...}66 là một vectơ với chính xác hai mục (hãy xem Pydon không phải là về việc giải nén sâu), bạn cũng có thể viết if a < b and b < c : {...}6 Chuỗi bình đẳngTrực tiếp từ mô -đun if a < b and b < c : {...}67 của Python, chúng ta có thể tìm thấy hàm trợ giúp (không được tiếp xúc với người dùng), có nội dung như sau: if a < b and b < c : {...}7 Hàm này kiểm tra xem một chuỗi có phải từ phương thức Dunder Dunder hay không. Ngay lập tức, Dund Dunder xuất phát từ Double Double Undercore và chỉ đề cập đến một số phương pháp Python mà một số lớp có và cho phép chúng tương tác độc đáo với nhiều tính năng tích hợp của Python. Các phương pháp này được gọi là Dund Dunder vì tên của chúng bắt đầu và kết thúc bằng if a < b and b < c : {...}68. Bạn đã thấy các phương pháp if a < b and b < c : {...}69 và if a < b and b < c : {...}70 trong các phương pháp của Str Str và Repr xông Pydon't và phương pháp if a < b and b < c : {...}71 trong phần Truthy, Falsy và Bool không Pydon't. Tôi sẽ viết về các phương thức Dunder nói chung trong một Pydon sau đó, vì vậy hãy thoải mái đăng ký để theo dõi. Điều đầu tiên mã thực hiện là kiểm tra xem phần đầu và kết thúc của chuỗi có giống nhau và bằng if a < b and b < c : {...}72: if a < b and b < c : {...}8 Sự kết luậnĐây là điểm chính của bài viết này, đối với bạn, trên một đĩa bạc:
Điều này không cho bạn thấy rằng:
Nếu bạn thích Pydon này, đừng chắc chắn để lại phản ứng bên dưới và chia sẻ điều này với bạn bè và đồng nghiệp của bạn. Ngoài ra, đừng quên đăng ký nhận bản tin để bạn không bỏ lỡ một Pydon nào! Người giới thiệu
Tài liệu tham khảo trực tuyến được tư vấn lần cuối vào ngày 1 tháng 3 năm 2021. Tôi hy vọng bạn đã học được điều gì đó mới! Nếu bạn đã làm, hãy xem xét theo bước chân của những độc giả đã mua cho tôi một lát bánh pizza. Đóng góp nhỏ của bạn giúp tôi sản xuất nội dung này miễn phí và không spam bạn với quảng cáo khó chịu. Cure so sánh trong Python là gì?Việc chuỗi các toán tử có thể được viết như sau: Nếu A all comparison operations in Python have the same priority, which is lower than that of any arithmetic, shifting or bitwise operation.
Nhà điều hành so sánh trong Python là gì?Một toán tử so sánh trong Python, còn được gọi là toán tử quan hệ Python, so sánh các giá trị của hai toán hạng và trả về đúng hay sai dựa trên việc điều kiện có được đáp ứng hay không.compares the values of two operands and returns True or False based on whether the condition is met.
Python có cho phép so sánh xích không?Trong Python, so sánh có thể được xích.Bạn có thể viết A
Các nhà khai thác so sánh giải thích với ví dụ là gì?Nếu một trong hai toán hạng là giá trị chuỗi, thì việc so sánh chuỗi được sử dụng.Đưa chuỗi trong trích dẫn ("chuỗi").Thận trọng!Toán tử == là một toán tử so sánh..... |