如何在计算中摆脱零,以便Python不会发生错误

时间:2018-06-09 05:04:34

标签: python eval calculator calculation

您好我正在研究计算器程序,并且正在尝试解决在计算前面零点的问题。

例如,03+03因使用eval而发生错误。计算必须保持字符串形式,因为eval使用字符串形式并给我总和。在计算通过eval之前,我需要找到一种摆脱零的方法。

2 个答案:

答案 0 :(得分:3)

这是一个完全正常工作的代码。我假设你想删除一个数字的最左边的零。

import re

calculation = '03030+010340'
res = re.sub('^0*|(?<=[-\+\*/])0*', '', calculation) 
print(res)

# 3030+10340

如何吗

re.sub用我们想要的任何方式替换模式。

内部re.sub

  1. 第一个参数是要替换的模式。 ^0*匹配开始0零次或多次。 (?<=[-\+\*/])0*0-+*运营商后面的/匹配。
  2. 第二个参数是指定要替换的内容。
  3. 第三个参数是输入字符串。
  4. 另外,我建议不要使用eval。了解eval here的危险。使用ast.literal_eval获取操作结果,如下所示:

    ast.literal_eval(res)  # Don't forget to import ast 
    

答案 1 :(得分:-1)

您可以简单地使用:

import re

calculation = '03+03' # Set calculation variable to your input
calculation = re.sub('0(?=\d)', '', calculation) # Updates the variable to cleaned version