简易工程符号
engineering-notation的Python项目详细描述
目的
便于使用人类可读的工程符号。我写这篇文章是为了方便自己使用。 我发现我正在将相同的功能写入多个包中,希望能够安装一个快速的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!
贡献
欢迎捐款。请随意在问题中提出功能请求。