gpt4 book ai didi

python - 如何为 python 计算器确定 ( ) 中的操作优先级,其中我将输入作为字符串输入?

转载 作者:行者123 更新时间:2023-12-04 03:22:17 26 4
gpt4 key购买 nike

<分区>

我正在完成代码大战中的套路。

我得到一个字符串,如 "2/2 + 3 * 4 - 6""2 * ( 2 * ( 2 * ( 2 * 1 ) ) )"

我不知道如何在代码中处理 ( )。

目前我有:

class Calculator(object):
def evaluate(self, string):
# if () in s
# find most inner ()
s = string.split()
while len(s) > 1:
if ('/' in s or
'*' in s):
for i in range(len(s)):
if s[i] == '/':
s[i] = int(s[i-1]) / int(s[i+1])
s.pop(i-1)
s.pop(i)
break
elif s[i] == '*':
s[i] = int(s[i-1]) * int(s[i+1])
s.pop(i-1)
s.pop(i)
break
else:
for i in range(len(s)):
if s[i] == '-':
s[i] = int(s[i-1]) - int(s[i+1])
s.pop(i-1)
s.pop(i)
break
elif s[i] == '+':
s[i] = int(s[i-1]) + int(s[i+1])
s.pop(i-1)
s.pop(i)
break
return s[0]

除了带有 ( ) 的字符串,它的功能很好

我如何处理它们以使其遵循正确的数学规则?

非常感谢任何建议。[1]: https://www.codewars.com/kata/5235c913397cbf2508000048/train/python

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com