max(float('nan'), 1)
đánh giá để nanPython: max/min chức năng được xây dựng trong phụ thuộc vào thứ tự tham số
max(1, float('nan'))
đánh giá đến 1
Đó có phải là hành vi có ý định?
Cảm ơn câu trả lời.
max
tăng ngoại lệ khi có thể lặp lại. Tại sao không phải max
của Python sẽ tăng ngoại lệ khi nan
có mặt? Hoặc ít nhất hãy làm điều gì đó hữu ích, như trả lại nan
hoặc bỏ qua nan
. Hành vi hiện tại là rất không an toàn và có vẻ hoàn toàn không hợp lý.
Tôi đã tìm thấy hậu quả đáng ngạc nhiên hơn nữa của hành vi này, vì vậy tôi vừa đăng một related question.
Thực sự ... Nó dường như không để phá vỡ trên 'nan', vì 'max (0,5, float ('nan'), 1) 'trả về 1. – khachik
@khachik: Tôi chỉ nói kết quả' max' phụ thuộc vào thứ tự của các tham số, điều này hơi bất ngờ với tôi, ngay cả khi nó chỉ xảy ra trong một ví dụ. Nhưng trên thực tế nó cũng hoạt động trên ví dụ của bạn: 'max (float ('nan'), 1, 0.5)' trả về nan. – max
Lỗi không ở mức tối đa. Lỗi là thực tế rằng bạn đang sử dụng các dấu phẩy động và giả sử chúng có bất kỳ hành vi toán học có ý nghĩa nào. – Antimony