Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Python Opcalc 0.0.1

Simple tool for calculate the numerical result from a expression string by python This code mainly focused on the principle of expression calculation by using stack (one of the basic data structure) You can use eval() function in python as well!

Install

Just use pip to install ! :D

pip install opcalc

License

MIT License

Examples

Simple calculator program:

import opcalc.core as opc
calculator = opc.OperationCalculator()
calculator.input_str = "#*60"
print(calculator.CalcExpression())
print("SymCalc demo")
#print("Copyright (c) Quix Fan  @ZQWEI  All right reserved.")
calculator.input_str = "#*60"
print(calculator.CalcExpression())
while True:
    try:
        result = calculator.CalcExpression()
        print(result)
    except:
        print("Invalid Input!")
    calculator.input_str = "#*60"
    print(calculator.CalcExpression())

Customized string for calculation

import opcalc.core as opc
calculator = opc.OperationCalculator()
calculator.input_str = "2^3+(9/2^2)^2+1.5^0.3+9"
result=calculator.CalcExpression()
print(result)

The result should be 23.191846935456855

Comparisom

test code:

import opcalc.core as opc
calculator = opc.OperationCalculator()
from time import time
start_time=time()
len=10000

for i in range(len):
    calculator.input_str = "2^3+(9/2^2)^2^2+1.5^0.3+9"
    result=calculator.CalcExpression()
print("Opcalc Time:" +str(time()-start_time))
start_time=time()
for i in range(len):
    input_str = "2^3+(9/2^2)^2^2+1.5^0.3+9"
    input_str=input_str.replace("^","**")
    eval(input_str)
print("eval Time:"+str(time()-start_time))

result: Opcalc Time:0.7659511566162109 eval Time:0.17852163314819336

Although it is slower,but the principle of using stack remain the same, you can rewrite it into other languages easily!

Releases

Lastest version: opcalc==0.0.1a3

pip install opcalc==0.0.1a3

1.faster calculation

Release files for opcalc 0.0.1a3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for opcalc 0.0.1a3
File Size Uploaded
opcalc-0.0.1a3.tar.gz 5.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for opcalc 0.0.1a3
File Interpreter ABI Platform
opcalc-0.0.1a3-py3-none-any.whl Python 3 none any Details

Total release size: 11.0 kB

Release files / opcalc-0.0.1a3.tar.gz

Download URL opcalc-0.0.1a3.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
0f047b7e104cd225f3c673a4c19ca7d904c9fb8ade42bee6a21c2eae07fcefa1
BLAKE2b-256 checksum
How to use checksums
604cde3f7429a9cc9e983565d07ec9053c1937326f79aab8e7fd8daf6729d2cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.3

Release files / opcalc-0.0.1a3-py3-none-any.whl

Download URL opcalc-0.0.1a3-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
959e843a7494604dcc174076385b80807f60f41fdb8cfe3cc20aeadd8e102423
BLAKE2b-256 checksum
How to use checksums
a39bdb90bb5fd913a27dc4f06e60656100da1a5d16ee241f82f838e5110c7073
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page