Как сделать "случаи" или "если, тогда" в зависимости от оператора сравнения, используемого в Sage

97
10

У меня есть некоторая функция, которая возвращает неравенства, например


s= solve(x^(2)<4,x) 
s
[[x>-2, 2<x]]

Я хотел бы иметь возможность преобразовать это в строку "] -2,2 [" для экспорта в LaTeX.


Как я могу проверить, какой оператор сравнения используется, а затем создать сценарий с несколькими сценариями на основе этого? Например


 if s[1].operatorused== "<" 
then do stuff
if s[1].operatorused== "<="
then do stuff

и т.д.

спросил(а) 2021-01-19T20:04:04+03:00 2 месяца, 3 недели назад
1
Решение
75

Вы можете получить доступ к оператору через .operator() и выполнить ваши сравнения таким образом:


sage: s[0][0].operator()
<function operator.gt>
sage: s[0][1].operator()
<function operator.lt>
sage: s[0][0].operator() == operator.gt
True
sage: s[0][0].operator() == operator.lt
False

Если честно, я отказался от сравнения строк в прошлом, когда это казалось более удобным (хотя вы должны помнить, что > не отключается до >=.)

ответил(а) 2021-01-19T20:04:04+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема