Python 计算器没有给出正确的结果

Python 计算器没有给出正确的结果,python,Python,我需要使用Python创建类似计算器的东西 到目前为止,我已经尝试了下面的代码,但它没有像预期的那样工作 symbol = 0 a = [] b = [] while symbol != '=': num = int(input("Number:")) a.append(num) symbol = (input("Symbol:")) if symbol in('+','-','*','/','='): b.append(symbol) b.rem

我需要使用Python创建类似计算器的东西

到目前为止,我已经尝试了下面的代码,但它没有像预期的那样工作

symbol = 0
a = []
b = []
while symbol != '=':
    num = int(input("Number:"))
    a.append(num)
    symbol = (input("Symbol:"))
    if symbol in('+','-','*','/','='):
        b.append(symbol)
b.remove(b[-1])
print(a,b)

for i in a,b:
    if b[i] == '+':
        a[i] = a[i] + a[i + 1]
    elif b[i] == '-':
        a[i] = a[i - 1] - a[i - 1]
    elif b[i] == '*':
        a[i] = a[i - 1] * a[i - 1]
    elif b[i] == '/':
        a[i] = a[i - 1] / a[i - 1]
    print(a[i])

您没有正确使用
for
循环。假设
a=[1,2,3]
b=['+','-']
,因此,
对于a中的i,b
变量
i
将在第一次迭代中假定
a
的值,然后在第二次迭代中假定
b
的值

如果要按索引遍历列表,请执行以下操作:

#`i`在[0,len(b))范围内,不包括b
对于范围内的i(len(b)):
     ...
考虑到运算符没有优先级,并且表达式的计算是从左到右的,我们可以得出以下代码:

symbol=0
a=[]
b=[]
而符号!='=':
num=int(输入(“数字:”)
a、 追加(num)
符号=(输入(“符号:”)
如果(“+”、“-”、“*”、“/”、“=”)中的符号:
b、 附加(符号)
b、 移除(b[-1])
印刷品(a、b)
对于范围内的i(len(b)):
打印('Op:{}{}}'。格式(a[i],b[i],a[i+1]),结束=“”)
如果b[i]=='+':
a[i+1]=a[i]+a[i+1]
elif b[i]=='-':
a[i+1]=a[i]-a[i+1]
elif b[i]=='*':
a[i+1]=a[i]*a[i+1]
elif b[i]=='/':
a[i+1]=a[i]/a[i+1]
打印('={}'。格式(a[i+1]))
#答案是“a”列表的最后一个值
打印(a[-1])