Terminal programmer calculator and advanced math solver using Python, IPython and SymPy.
The missing tweaks for using Python as a calculator.
pip install https://github.com/idanpa/calcpy/archive/main.zip
- Display both symbolic and numeric solutions
- Integers displayed as decimal, hex and binary
- Evaluation preview while typing
- Currency conversion
10USD
(calcpy.base_currency='EUR'
to change base currency) (by ECB) ?
suffix provides some basic analysis of expression (similar to WolframAlpha)
((1,2),(3,4))?
,x**2+1?
,234?
- Automatic symbolic variables, anything like
x
y_1
is a sympy symbol - Symbolic variables assumptions are uniform,
symbols(x, real=True)
would change all occurencase ofx
to be real - Implicit multiplication (
2x
,(x+1)(x-1)
are valid) - Nested tuples are matrices
((1,2),(3,4))**2
- All variables and functions are restored between sessions (delete using
del
) - Datetime calculations
d"yesterday at 9 am" - d"1990-1-30 9:20"
(by dateparser) - Sizes
KB
,MB
,GB
,TB
(e.g.4MB-32KB
) - Unit prefixes
G
,M
,k
,m
,u
,n
,p
(4G/3.2n
, enable bycalcpy.units_prefixes=True
) - Implicit lambda
f(a,b):=a**2+b**2
- Latex input
diff($\frac{1,x}$)
(latex output withlatex(1/x)
) - Copy to clipboard
copy(_)
would copy last result - Custom user startup (for imports, etc.)
edit_user_startup()
- Persistent configuration, see options with
calcpy?
- All the elementary (and non-elementry) math functions and constants -
ln
,sin
,e
,pi
etc. - Calculus, algebra, plotting -
diff
,integrate
,limit
,Sum
,solve
,plot
,plot_implicit
etc.
- Get last result with
_
, get specific cell_12
(Out[12]
works too) func_name?
show docs for func_namewho
/who_ls
see all defined variables- Prompt history with
up
/down
, search withctrl+r
- Autocomplete with
tab
- Edit code on editor with
%edit func_name
- All the basic arithmetic
+
,-
,*
,/
,**
or^
- Binary and hex input
0b1101
,0xafe1
- Scientific notation
2.12e-6
- Programmer operations
//
integer division,%
modulo,&
bitwise AND,|
bitwise OR,^^
bitwise XOR (on calcpy^
is exponentiation, disable withcalcpy.caret_power
),~
bitwise not,>>
/<<
right/left shift.
Feel free to open an issue for bugs/features, send a pull request or star.