您好我正在研究计算器程序,并且正在尝试解决在计算前面零点的问题。
例如,03+03
因使用eval
而发生错误。计算必须保持字符串形式,因为eval
使用字符串形式并给我总和。在计算通过eval
之前,我需要找到一种摆脱零的方法。
答案 0 :(得分:3)
这是一个完全正常工作的代码。我假设你想删除一个数字的最左边的零。
import re
calculation = '03030+010340'
res = re.sub('^0*|(?<=[-\+\*/])0*', '', calculation)
print(res)
# 3030+10340
如何吗
re.sub
用我们想要的任何方式替换模式。
内部re.sub
:
^0*
匹配开始0
零次或多次。
(?<=[-\+\*/])0*
与0
,-
,+
,*
运营商后面的/
匹配。另外,我建议不要使用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