我試圖評估這個字符串。 「1 + 2^4 * 4 *(4 + 4 * 9)-10」評估字符串「1 + 2^4 * 4 *(4 + 4 * 9)-10」
我的策略是採取每個元素,把它放在一個列表中,轉換爲正確的數據類型(int)或運算符,連接然後評估。我試圖避免使用eval()和ast.literal_eval()拋出一個「格式錯誤的字符串錯誤」。我目前被困在需要將運算符從字符串轉換爲運算符的地步。
這是我到目前爲止已經完成:
equation = ("1+2^4*4*(4+4*9)-10")
listint1 = 0
listint2 = 1
finallist = []
for elements in equation:
finallist.append(equation[listint1:listint2])
listint1 = listint1 + 1
listint2 = listint2 + 1
finalfinallist = []
for element in finallist:
if element.isdigit() == True:
finalfinallist.append(int(element))
else:
finalfinallist.append(element)
for element in finalfinallist:
if element == str:
if element == "+":
element = +
elif element == "^":
element =^
elif element == "*":
element = *
elif element == "("
element = (
elif element == ")":
element =)
elif element == "-"
element = -
print finalfinallist
的思考?
這有幫助嗎? https://gist.github.com/nava45/6333409#file-infix-expression-evaluation – nehemiah