Là 0 == sai trong python?
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à 3 hay 5 - sự khác biệt về hiệu suất là tương tự nhau (nếu 3 là 3, cả ba kịch bản sẽ chậm hơn một chút) Show
Tương tự, chúng ta có thể kiểm tra xem một biến có phải là 3 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ó 3 và có các giá trị trung thực. Nghĩa là, các giá trị được hiểu là 3 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ị 3/ 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ị 3 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 3 ( 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, 3 hoặc 5. Mỗi khi bạn gán một biến cho 3, nó sẽ trỏ đến cùng một đối tượng 3 như các biến khác được gán cho 3. 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 50 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 51, thì mọi thứ sẽ hoạt động như mong đợi
Liệu số nguyên 0 == Sai?Khi chuyển đổi thành bool, các giá trị sau được coi là sai. boolean false chính nó. số nguyên 0 (không) số float 0. 0 và -0. 0 (không)
== Sai nghĩa là gì trong Python?Trong logic Boolean "Sai" là giá trị thực phủ định không đại diện cho điều gì .
Python có tính 0 là Sai không?Trong Python, số nguyên 0 luôn là Sai , trong khi mọi số khác, kể cả số âm, đều là Đúng. Trên thực tế, bool eans kế thừa từ int eger.
== true nghĩa là gì trong Python?Nó được sử dụng để biểu thị giá trị thực của một biểu thức . Ví dụ, biểu thức 1 |