【每日一题20220718】实现计算器

:mage:‍ 实现一个计算器,该计算器将可以在浏览器路由路径中写入的值作为单个字符串。然后它将结果作为数字(或错误消息)返回。

路由路径使用“/”符号,所以这不能在我们的计算器中。我们使用“$”符号作为除法运算符。

您将收到一个包含数字和运算符的任意长度的字符串:

  • ‘+’ = 添加
  • ‘-’ = 减法
  • ‘*’ = 相乘
  • ‘$’ = 除法

您的任务是分解字符串并使用此操作顺序计算表达式。(除法 => 乘法 => 减法 => 加法)

如果给您一个无效的输入(即除 之外.0123456789+-*$ 的任何字符),您应该返回错误消息:'400: Bad request'

记住:

  1. 操作次数不受限制
  2. 操作顺序是必须的
  3. eval 或等效功能
  4. 将数字转换为floats ,而不是整数

例子:

calculate('1+1')     => '2'
calculate('10$2')    => '5'
calculate('1.5*3')   => '4.5'

calculate('5+5+5+5') => '20'

calculate('1000$2.5$5+5-5+6$6') =>'81'

calculate('10-9p')   =>  '400: Bad request'

题目难度:一般
题目来源:Route Calculator | Codewars


def calculate(expression):
    # your code here


assert calculate("1.1") == 1.1
assert calculate("10+5") == 15
assert calculate("8-2") == 6
assert calculate("4*3") == 12
assert calculate("18$2") == 9
assert calculate("5+8-8*2$4") == 9
assert calculate("3x+1") == "400: Bad request"
关闭