自动单位转换计算器

ucal的Python项目详细描述


ucal

ucal(unit calculator)模块是一个基于python的计算器,它无缝地集成了单元转换。

PyPI versionBuild Statuscodecov.ioCodacy Badge

开始

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引擎使用以下步骤计算表达式。

  • 标记化

标记化

从字符串表达式开始,字符串被分解成子字符串,每个子字符串代表一个令牌。以下标记是可能的。

    • 这是一个数字。有效字符串是11e67+1-32.1E+526等。
  • 变量

    • 这是诸如mmkg等文本。
  • 功能

    • 函数遵循与变量相同的规则,但紧随其后的是左括号标记。
  • 左括号

    • 这是(符号。
  • 右括号

    • 这是)符号。
  • 前缀运算符

    • 这对紧随其后的值进行操作,例如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运算符以数量为序。

  • 检查起始标记是前缀运算符或数量。

  • 检查结束标记是后缀运算符或数量。

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

推荐PyPI第三方库


热门话题
java为什么这段代码要打印空字符串?   java未知错误:由于标签页崩溃,会话被删除   布尔型上的java函数if-else   java最佳蚂蚁教程/快速入门?   JAVAutil。java中的扫描程序跳过do while循环中的扫描程序输入   java我们可以在selenium中使用ExpectedConditions和FluentWait来实现通用等待方法吗?   java如何使用gson库解析JSONObject   java GWT模拟Android LinearLayout的布局重量属性?   Java正则表达式重写日期表达式   java MediaPlayer播放我的MP3文件,但非常安静   java背景不显示javaFX   用于CLI的java quarkus开发模式,如何重新启动应用程序   websphere WSJdbcDataSource的java Jar文件   java Spring 4对象不会自动连接变量   java从Dbpedia定制本体/RDF图