Python 计算器没有给出正确的结果
我需要使用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
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])