Python không sai
Hàm 30 cho phép bạn đánh giá bất kỳ giá trị nào và trả lại cho bạn 4 hoặc 3, Show
Ví dụĐánh giá một chuỗi và một số print(bool("Xin chào")) Ví dụĐánh giá hai biến x = "Xin chào" in(bool(x)) Hầu hết các giá trị là đúngHầu hết mọi giá trị được đánh giá là 4 nếu nó có một số loại nội dungBất kỳ chuỗi nào là 4, ngoại trừ các chuỗi rỗngBất kỳ số nào là 4, ngoại trừ 36Bất kỳ danh sách, bộ, bộ và từ điển nào đều là 4, ngoại trừ những cái trốngVí dụSau đây sẽ trả về True bool("abc") Một số giá trị là SaiTrên thực tế, không có nhiều giá trị đánh giá là 3, ngoại trừ các giá trị trống, chẳng hạn như 39, 40, 41, 42, số 36 và giá trị 44. Và tất nhiên giá trị 3 đánh giá là 3Ví dụSau đây sẽ trả về Sai bool(Sai) Một giá trị khác hoặc đối tượng trong trường hợp này ước tính là 3 và đó là nếu bạn có một đối tượng được tạo từ một lớp có hàm 48 trả về 36 hoặc 3Ví dụlớp myclass(). myobj = myclass() Các chức năng có thể trả về một BooleanBạn có thể tạo các hàm trả về Giá trị Boolean Ví dụIn câu trả lời của một chức năng def myFunction(). in(myFunction()) Tự mình thử »Bạn có thể thực thi mã dựa trên câu trả lời Boolean của hàm Ví dụIn "CÓ. " nếu hàm trả về True, ngược lại in "NO. " def myFunction(). if myFunction(). Python cũng có nhiều hàm tích hợp trả về giá trị boolean, chẳng hạn như hàm 31, có thể được sử dụng để xác định xem một đối tượng có thuộc một loại dữ liệu nhất định hay không Sử dụng 0 chậm hơn khoảng 60% so với 1 (17. 4/10. 9≈1. 596), nhưng sử dụng 2 chậm hơn 120% (24. 9/10. 9≈2. 284). Không quan trọng nếu 3 thực sự là 4 hay 5 - sự khác biệt về hiệu suất là tương tự nhau (nếu 3 là 4, cả ba kịch bản sẽ chậm hơn một chút)Tương tự, chúng ta có thể kiểm tra xem một biến có phải là 4 hay không bằng cách sử dụng một trong các phương pháp sau
2 chiến thắng. 3 chậm hơn 50% (18. 8/12. 4≈1. 516) và 4 mất gấp đôi thời gian (26/12. 4≈2. 016)Các phiên bản 1 và 2 thực hiện nhanh hơn và đọc nhanh hơn. Chúng là những thành ngữ phổ biến mà bạn sẽ thường thấy trong Python (hoặc các ngôn ngữ lập trình khác)Giới thiệu về sê-ri "Viết Python nhanh hơn" #"Viết Python nhanh hơn" là một loạt các bài viết ngắn thảo luận về cách giải quyết một số vấn đề phổ biến với các cấu trúc mã khác nhau. Tôi chạy một số điểm chuẩn, thảo luận về sự khác biệt giữa từng đoạn mã và kết thúc với một số đề xuất cá nhân Những đề xuất đó có làm cho mã của bạn nhanh hơn nhiều không? . Bạn có thể đọc thêm về một số giả định tôi đã thực hiện, thiết lập điểm chuẩn và câu trả lời cho một số câu hỏi phổ biến trong bài viết Giới thiệu "sự thật" và "sự giả dối" #Tại sao tôi cứ đặt "xấu" trong dấu ngoặc kép? . Đôi khi, bạn cố tình phải sử dụng một trong những phép so sánh khác Trong Python (và nhiều ngôn ngữ khác), có 4 và có các giá trị trung thực. Nghĩa là, các giá trị được hiểu là 4 nếu bạn chạy 9. Tương tự, có 5 và có các giá trị giả (giá trị trả về 5 từ 9). Một danh sách trống ( 93), chuỗi ( 94), từ điển ( 95), 96 và 0 đều là giả nhưng chúng không hoàn toàn là 5Đôi khi bạn cần phân biệt giữa giá trị 4/ 5 và giá trị trung thực/giả dối. Nếu mã của bạn hoạt động theo một cách khi bạn vượt qua một danh sách trống và theo cách khác, khi bạn vượt qua 5, bạn không thể sử dụng 61Hãy xem tình huống sau
Chúng tôi có một chức năng để xử lý một số đơn đặt hàng. Nếu không có đơn đặt hàng, chúng tôi muốn quay lại mà không cần làm gì. Nếu không, chúng tôi muốn xử lý các đơn đặt hàng hiện có Chúng tôi giả sử rằng nếu không có đơn đặt hàng, thì tham số 62 được đặt thành 96. Nhưng, nếu 62 là một danh sách trống, chúng tôi cũng trả về mà không cần thực hiện bất kỳ hành động nào. Và có thể nhận được một danh sách trống vì ai đó vừa cập nhật thông tin thanh toán của một đơn đặt hàng trước đây? . Chúng ta nên bắt lỗi đó trước khi lấp đầy cơ sở dữ liệu bằng các đơn đặt hàng trống. Bất kể lý do cho một danh sách trống là gì, đoạn mã trên sẽ bỏ qua nó. Ta có thể khắc phục bằng cách tra cứu thông số 62 kỹ hơn 9Điều tương tự cũng áp dụng cho các giá trị trung thực. Nếu mã của bạn hoạt động khác với giá trị 4 so với giá trị, giả sử, giá trị 67, thì chúng tôi không thể sử dụng 1. Chúng ta nên sử dụng 2 để so sánh số ( 60) và 0 để so sánh với 4 ( 63). Nghe có vẻ khó hiểu? $ python -m timeit -s "variable=False" "if variable != True: pass"10000000 loops, best of 5: 26 nsec per loop$ python -m timeit -s "variable=False" "if variable is not True: pass"10000000 loops, best of 5: 18.8 nsec per loop$ python -m timeit -s "variable=False" "if not variable: pass"20000000 loops, best of 5: 12.4 nsec per loop0 kiểm tra danh tính, $ python -m timeit -s "variable=False" "if variable != True: pass"10000000 loops, best of 5: 26 nsec per loop$ python -m timeit -s "variable=False" "if variable is not True: pass"10000000 loops, best of 5: 18.8 nsec per loop$ python -m timeit -s "variable=False" "if not variable: pass"20000000 loops, best of 5: 12.4 nsec per loop2 kiểm tra giá trị #Toán tử 0 so sánh danh tính của các đối tượng. Nếu hai biến giống hệt nhau, điều đó có nghĩa là chúng trỏ đến cùng một đối tượng (cùng một vị trí trong bộ nhớ). Cả hai đều có cùng một ID (bạn có thể kiểm tra bằng hàm id())Toán tử 2 so sánh các giá trị. Nó kiểm tra xem giá trị của một biến có bằng giá trị của một số biến khác khôngMột số đối tượng trong Python là duy nhất, như 96, 4 hoặc 5. Mỗi khi bạn gán một biến cho 4, nó sẽ trỏ đến cùng một đối tượng 4 như các biến khác được gán cho 4. Nhưng mỗi khi bạn tạo một danh sách mới, Python sẽ tạo một đối tượng mới 6Điều quan trọng là phải biết sự khác biệt giữa 0 và 2. Nếu bạn nghĩ rằng chúng hoạt động giống nhau, bạn có thể gặp phải những lỗi lạ trong mã của mình 6Trong ví dụ trên, khối mã đầu tiên sẽ in "có", nhưng khối mã thứ hai thì không. Đó là bởi vì Python thực hiện một số tối ưu hóa nhỏ và các số nguyên nhỏ chia sẻ cùng một ID (chúng trỏ đến cùng một đối tượng). Mỗi khi bạn gán 67 cho một biến mới, nó sẽ trỏ đến cùng một đối tượng 67. Nhưng khi bạn gán 70 cho một biến, nó sẽ tạo ra một đối tượng mới. Nếu chúng tôi sử dụng 71, thì mọi thứ sẽ hoạt động như mong đợi
Không sai trong Python?Toán tử not của Python cho phép bạn đảo ngược giá trị thực của các đối tượng và biểu thức Boolean. Bạn có thể sử dụng toán tử này trong ngữ cảnh Boolean, chẳng hạn như câu lệnh if và vòng lặp while.
. Bắt đầu với Toán tử không phải của Python Đúng hay sai trong Python?Kiểu Boolean trong Python là một trong những kiểu dữ liệu có sẵn của Python. Nó được sử dụng để biểu diễn giá trị thực của một biểu thức . Ví dụ, biểu thức 1
không phải hoặc. = Bằng Python?Bằng Python . = được định nghĩa là không bằng toán tử . Nó trả về True nếu toán hạng ở hai bên không bằng nhau và trả về False nếu chúng bằng nhau. Trong khi đó, toán tử không kiểm tra xem id() của hai đối tượng có giống nhau hay không.
Là. = Hợp lệ trong Python?Bạn có thể sử dụng ". = " và "is not" cho hoạt động không bình đẳng trong Python . con trăn. = (toán tử không bằng nhau) trả về True, nếu giá trị của hai toán hạng Python được cung cấp ở mỗi bên của toán tử không bằng nhau, ngược lại là sai. |