Я хотел бы протестировать несколько неравенств сразу, т.е.Multiple неравенства (а <Ь <с ...) с потенциально отсутствующим значением
if (a < b < c < ...)
что хорошо, когда все значения присутствуют. Однако иногда числовое значение одной или нескольких переменных, которые нужно сравнить, может отсутствовать/неизвестно; правильное поведение в моем контексте состоит в том, чтобы предположить, что соответствующее неравенство выполнено. Скажем, я присвоить специальное значение None
, когда значение неизвестно: поведение, я хочу от <
оператора (или альтернатива) является:
>>> a = 1; b = 2; c = 3
>>> a < b < C# this works fine, obviously
True
>>> b = None
>>> a < b < C# would like this to return True
False
Так что я хочу, чтобы получить True
, если одна переменная действительно меньше, чем другой, или если одна переменная отсутствует (принимает какое-либо определенное заранее определенное нечисловое значение) или если обе переменные отсутствуют, и я хочу иметь возможность сопоставлять сравнения друг с другом, т.е. a < b < c < ...
Я также хотел бы сделайте это с <=
, а также <
.
Благодаря
Я не думаю, что вы можете сделать это надежно при сравнении - вы получите значение, которое сравнивается больше чем что-либо и меньше всего в одно и то же время. Вместо этого я определял бы функцию, которая принимает итерабельность значений, и возвращает True, если значения None-None упорядочены. – Kos
, если a равно 3, b - None, а c равно 1, должен ли 'a Kevin
И Python 3 отклоняет 'a