Как правильно сделать большие скобки в Sympy?
Я пытаюсь сделать простые алгебраические выражения в qtconsole или терминале, используя pprint
, но результаты почти вводят в заблуждение. Вот минимальный пример
from sympy import pprint, simplify, init_printing
from sympy.abc import a, b
init_printing()
c = a - b**2
pprint(simplify(c**2))
print(simplify(c**2))
Я пробовал этот код в обоих jupyer qtconsole
и в терминале rxvt-unicode, и оба неправильно отображают многоуровневые круглые скобки. На терминале я получаю прямоугольные символы там, где должны быть скобки. qtconsole еще хуже, так как не показывает скобок.
Это очень запутанно, когда выражения становятся более сложными. Пожалуйста, дайте мне знать, если я что-то упустил или симпози можно настроить для отображения этого лучше.
1 ответ
pprint
использует символы Юникода для печати скобок по умолчанию, например
2
⎛ 2⎞
⎝a - b ⎠
Кажется, ваша qtconsole не отображает их, что, вероятно, означает, что используемый вами шрифт не поддерживает их.
Мои рекомендации:
Установите DejaVu Sans Mono и установите для него шрифт qtconsole (см. /questions/28450686/izmenit-nastrojki-jupyter-qtconsole/28450717#28450717). DejaVu Sans Mono - лучший шрифт для символов Unicode, используемых SymPy, по моему опыту.
Установите LaTeX на свой компьютер. Если вы бежите
init_printing
в qtconsole SymPy обнаруживает, что LaTeX установлен, он будет отображать математику, используя его (pprint
будет по-прежнему отображать текст).
Если ни один из вышеперечисленных вариантов не подходит для вас, используйте обходной путь pprint(expr, use_unicode=False)
, который будет печатать выражение, используя только символы ASCII. Это не будет выглядеть так красиво, но должно отображаться правильно любым моноширинным шрифтом.