Время от времени мне нужно получить ответ на расчет. Поскольку у меня обычно есть экран терминала, который является естественным местом для меня, чтобы задать такие математические вопросы.
Интерактивная оболочка Python подходит для этой цели, если вы хотите ввести еще одну оболочку только для выхода из нее позже.
Иногда, хотя желательно, чтобы ответ был немедленно доступен из командной строки. Python имеет параметр -c, который, как мне показалось, полезен при обработке одной команды и возвращении результата. Я написал следующую bash оболочку script, чтобы использовать ее:
#!/bin/bash
# MHO 12-28-2014
#
# takes a equation from the command line, sends it to python and prints it
ARGS=0
#
if [ $# -eq 1 ]; then
ARGS=1
fi
#
if [ $ARGS -eq 0 ]; then
echo "pc - Python Command line calculator"
echo "ERROR: pc syntax is"
echo "pc EQUATION"
echo "Examples"
echo "pc 12.23+25.36 pc \"2+4+3*(55)\""
echo "Note: if calculating one single equation is not enough,"
echo "go elsewhere and do other things there."
echo "Enclose the equation in double quotes if doing anything fancy."
echo "m=math module ex. \"m.cos(55)\""
exit 1
fi
#
if [ $ARGS -eq 1 ]; then
eqn="$1"
python -c "import math; m=math; b=$eqn; print str(b)"
fi
#
Пример вывода
$ pc 1/3.0
0.333333333333
$ pc 56*(44)
2464
$ pc 56*(44)*3*(6*(4))
177408
$ pc "m.pi*(2**2)"
12.5663706144
Вопрос, имея в виду опцию python -c
, есть ли какой-либо краткий способ неявного обращения к математическому модулю, чтобы последняя команда pc могла быть отформатирована как pc "pi*(2**2)"
?