自动单位转换计算器
ucal的Python项目详细描述
ucal
ucal(unit calculator)模块是一个基于python的计算器,它无缝地集成了单元转换。
开始
ucal包需要python 3.4+才能使用。运行以下命令安装软件包:
pip install --user ucal
安装后,可以从命令行运行gui。
python -m ucal_gui
此外,ucal可以集成到您自己的代码中,如下所示:
>>> import ucal
>>> ucal.interpret('5km in mi')
'3.10685596118667 mi'
>>> ucal.interpret('67 in hex')
'0x43'
>>> ucal.interpret('1m + 3ft')
'1.9144 m'
屏幕截图
操作方法
ucal引擎使用以下步骤计算表达式。
- 标记化
标记化
从字符串表达式开始,字符串被分解成子字符串,每个子字符串代表一个令牌。以下标记是可能的。
值
- 这是一个数字。有效字符串是
1
、1e67
、+1
、-32.1E+526
等。
- 这是一个数字。有效字符串是
变量
- 这是诸如
mm
、kg
等文本。
- 这是诸如
功能
- 函数遵循与变量相同的规则,但紧随其后的是左括号标记。
左括号
- 这是
(
符号。
- 这是
右括号
- 这是
)
符号。
- 这是
前缀运算符
这对紧随其后的值进行操作,例如
3 - -7
中的第一个-
。这种类型的有效运算符是
+
和-
。
中缀运算符
中缀运算符是对其前后的值进行操作的运算符,例如用于加法的
+
。这种类型的有效运算符是
+
,-
,*
,/
,^
表示幂运算,以及%
表示模运算。
后缀运算符
postfix运算符对紧跟其后的值进行操作。
这种类型的唯一有效运算符是阶乘运算符
!
。
解释百分比符号
百分号%
可以是模运算符,也可以是百分比。我们通过观察它的上下文并确定哪些是有意义的来解释它。
如果前一个标记是值,并且它是表达式中的最后一个标记,或者下一个标记是中缀运算符或左括号,则将其解释为百分比。
将其解释为模运算符的示例是1 % 2
。
将其解释为百分比的示例有30%
,和80% - 10%
。
百分比被*(0.01)
有效地替换,例如,30%
变成30*(0.01)
。
解释隐式乘法
根据需要在标记之间添加隐式乘法。在有限的实例中,乘法是隐含的。这些是下面的。
介于一个值和一个变量或函数之间。
- 示例:
1 in
被解释为1 * in
。
- 示例:
介于变量和变量或函数之间。
- 示例:
in lbs
被解释为in * lbs
。
- 示例:
在右括号和左括号之间。
- 示例:
(1) (2)
被解释为(1) * (2)
。
- 示例:
检查语法
然后检查标记字符串,确保语法有意义。
检查平衡括号
检查前缀运算符后接数量。
check-infix运算符前接数量。
check postfix运算符以数量为序。
检查起始标记是前缀运算符或数量。
检查结束标记是后缀运算符或数量。