
cli-calc¶
Powerful yet easy command line calculator.
Introduction¶
Please note: Using plain python at the command line already does provide a pretty decent calculator:
$ python
Python 3.8.5 (default, Aug 2 2020, 16:00:15)
[Clang 11.0.0 (clang-1100.0.33.17)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 2**10
1024
>>> _ / 10
102.4
>>> import math
>>> math.pi
3.141592653589793
>>> math.sin(math.pi / 2)
1.0
>>> exit()
[ Read more about Python as a Calculator. ]
But not all is straight forward.
For example, if you want to calculate sin(pi/2)
:
First you need to
import math
,and then use it with
math.sin( math.pi / 2 )
.
But there must be a better way! And there is…
cli-calc¶
$ cli-calc
hex, int, float, : INPUT
0x0, 0, 0.0, : 2**10
2**10
0x400, 1024, 1024.0, : _ / 10
1024.0/10
0x66, 102, 102.4, : pi
pi
0x3, 3, 3.141592653589793, : sin(pi / 2)
sin(pi/2)
0x1, 1, 1.0, : q
$
More examples¶
$ cli-calc
hex, int, float, : INPUT
0x0, 0, 0.0, : cos(pi/2)
cos(pi/2)
0x0, 0, 6.123233995736766e-17, : 0xFF ^ 0b10
0xFF^0b10
0xfd, 253, 253.0, : 2**8-1
2**8-1
0xff, 255, 255.0, : log(e)
log(e)
0x1, 1, 1.0, : comb(49,6)
comb(49,6)
0xd56048, 13983816, 13983816.0, : factorial(42)
factorial(42)
0x3c1581d491b28f523c23abdf35b689c908000000000, 1405006117752879898543142606244511569936384000000000, 1.40500611775288e+51, : random()
random()
0x0, 0, 0.24958817003921918, : cmath.phase(complex(-1.0, 0.0))
cmath.phase(complex(-1.0,0.0))
0x3, 3, 3.141592653589793, : q
$
Included Math Libraries¶
Ready to use out of the box:
standard operators
-, >>, ...
standard math library
cd, log, sin, sinh, gamma, pi, e, tau, inf, nan...
cmath
phase(complex(-1.0, 0.0)), and then most of the above with complex numbers.
random
random, choice(['win', 'lose', 'draw']), mean, ...
built in functions
max, help, sum, ...
Installation¶
pip install cli-calc
Configuration¶
For convenience, add a shell script in ~/bin
:
cd ~/bin
vi cli-calc
with the following lines:
Note: Please adjust the path!
path=~/path/to/your/cli-calc/
cd $path
python3 -m cli_calc
Make it executable:
chmod a+x cli-calc
then use it anywhere. :-)
echo "7+8" | cli-calc
cat foo.bar | cli-calc
cli-calc
Help¶
cli-calc
h
--------------------------------------------------
cli-calc 0.3.1: Powerful yet easy command line calculator.
INPUT:
"q" for quit, "h" for help
"_" for last float value
"_int_" for last int value
"sin(pi/2)" for sinus, ...
"pi", "tau" and "e" for pi, tau and Euler
"+f" to add display for fraction, "-f" to suppress display for fraction
Other letters are:
he(x), (o)ctal, (b)inary, (i)nteger,
(f)raction, (t)ruth, i(e)ee, ieee_bi(n), f(r)om_ieee
"float" is always visible
Also try "cos(pi/2)", "0xFF ^ 0b10", "2**8-1", "factorial(42)", "help(math)"
See https://docs.python.org/3/library/math.html, use without "math."
https://www.w3schools.com/python/python_operators.asp
https://github.com/cruisen/cli-calc
(c) 2022-2022 Nikolai von Krusenstiern, License: MIT
--------------------------------------------------
hex, int, float, : INPUT
Permalink to this document as a github page
Warning¶
Use of ``eval` <https://docs.python.org/3/library/functions.html#eval>`_ is evil. However precautions are taken.
Pull Request¶
PR’s are Welcome!
Please read more about Contributing
and our development environment and tool set.
Or just simply raise an issue.
License¶
Credits¶
This project was generated with ``wemake-python-package` <https://github.com/wemake-services/wemake-python-package>`_. Current template version is: d06993f12e3ffad79652a2aec86189dee92d94dd. See what is updated since then.
Contents¶
Changelog
- Development
- Pull Request
- Metric Dashboard
- Features
- Tools
- Python Packages
- Style and type annotations
- Testing
- Continuous Testing & Integration (CT & CI)
- Semantic Commits
- Build and publish to pypi
- Following Semantic Versioning
- Development Environment
- Version and Issue Management
- IDE
- Shell
- Hardware
- Server
- Documentation
- Metric
- Jason Query for Makefile and Shields
- Teaching Python Development
- Tips and Tricks
- Python course
- Selected Python Packages
- Standard Lib
- Other
- Used Standard Lib
- Good to know