简易工程符号

engineering-notation的Python项目详细描述


Travis CI Build Status

目的

便于使用人类可读的工程符号。我写这篇文章是为了方便自己使用。 我发现我正在将相同的功能写入多个包中,希望能够安装一个快速的pip 包来帮我处理这个操作。这个包应该很容易扩展到其他用例。 包是无单位的,因此只对数值进行操作。单元检测可以在将来的版本中添加。

更多信息可以在for(embed)找到。

安装

使用pip安装:pip install engineering_notation

地位和贡献

这个项目目前有100%的测试覆盖率。查看test.py中的示例,了解如何使用 这个图书馆。要执行测试,请从主目录运行pytest,或者, 在某些环境中,可能需要运行python3 -m pytest

任何贡献都必须通过100%的当前测试并通过flake8。执行 flake8,导航到项目目录并python3 setup.py flake8

您的拉取请求将自动通过测试和flake8检查运行,并且 任何不通过这些请求的请求都将被挂起等待通过。

使用

有多种方法可以将数字初始化为特定值,但字符串是首选方法:

>>> from engineering_notation import EngNumber
>>> EngNumber('10k')
10k
>>> EngNumber('10000')
10k
>>> EngNumber(10000)
10k
>>> EngNumber(10000.0)
10k
>>> EngNumber(1e4)
10k

当涉及小数时,我们使用2位数的默认精度:

>>> EngNumber('4.99k')
4.99k
>>> EngNumber('4.9k')
4.90k

在某些情况下,此行为会截断结果,并导致数字舍入。或多或少地指定 数字,只需在声明中指定精度:

>>> EngNumber('4.999k')
5k
>>> EngNumber('4.999k', precision=3)
4.999k

对数值执行的大多数操作都是有效的,尽管所有操作都未实现:

>>> EngNumber('2.2k') * 2
4.40k
>>> 2 * EngNumber('2.2k')
4.40k
>>> EngNumber(1.2) > EngNumber('3.3k') 
False
>>> EngNumber(1.2) <= EngNumber('3.3k')
True
>>> EngNumber('3.3k') == EngNumber(3300)
True

EngUnit()类上也可以执行上述所有操作。唯一的区别是 该单位必须与加法/减法/比较运算相匹配。尽管乘法和除法 操作将在数值上起作用,它们可能并不总是严格正确的。这是因为engunit不是 打算取代计算机代数系统!

>>> EngUnit('2s') / EngUnit('4rotations')
0.5s/rotations

此外,由于有“保留”字母用于调整数字大小,您必须小心使用您的单位!

>>> EngUnit('2mm')
2mm        # <<< this value equivalent to "0.002m"
>>> EngUnit('2meter')
2meter     # <<< this value is equivalent to "0.002eter", the "m" was used to scale the unit!

贡献

欢迎捐款。请随意在问题中提出功能请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java根据两个数组的值对数组进行排序   具有自签名证书和NTLM代理的java Maven SSL repo错误   java自定义字体按钮不工作AndroidStudio   java通过Spring MVC web应用程序向客户端发送文本文件   Java Spring Web服务SOAP身份验证   ANT property environment=“env”无法在JAVA中检索它,但如果作为ANT命令运行,则可以正常工作   java是为spring mvc rest api或spring boot api对应用服务器的每个新请求创建的服务、存储库和组件的新实例吗?   java私有静态最终字符串未完成其工作   PKCS12的安全Java密钥重新处理   java JPA继承表每类SQLSyntaxErrorException