【发布时间】:2020-12-20 13:11:33
【问题描述】:
目前,我正在构建一个由 django 驱动的 UI Caculator 应用程序,但我遇到了这个错误。 我无法调试它。 无论我要尝试什么都行不通。 我的意思是我不知道为什么它告诉我在分配之前引用的最终结果,而我已经分配了 final_result 然后我有引用 final_result
Views.py
def index(request):
if request.method=="POST":
values=request.POST['values']
print(values)
vals=re.findall(r"(\d+)",values)
operators=['+','x','÷','-','%']
opr=[]
for v in values:
for o in operators:
if v==o:
opr.append(o)
print(opr)
print(re.findall(r"(\d+)",values))
for o in opr:
if o=='÷':
i=opr.index(o)
res=float(vals[i])/float(vals[i+1])
vals.remove(vals[i+1])
opr.remove(opr[i])
vals[i]=str(res)
print(vals)
print(opr)
elif o=='x':
i=opr.index(o)
res=float(vals[i])*float(vals[i+1])
vals.remove(vals[i+1])
opr.remove(opr[i])
vals[i]=str(res)
print(vals)
print(opr)
elif o=='+':
i=opr.index(o)
res=float(vals[i])+float(vals[i+1])
vals.remove(vals[i+1])
opr.remove(opr[i])
vals[i]=str(res)
print(vals)
print(opr)
else:
i=opr.index(o)
res=float(vals[i])-float(vals[i+1])
vals.remove(vals[i+1])
opr.remove(opr[i])
vals[i]=str(res)
print(vals)
print(opr)
if(len(opr)!=0):
if opr[0]=='÷':
result = float(vals[0])/float(vals[1])
elif opr[0]=='x':
result = float(vals[0])*float(vals[1])
elif opr[0]=='+':
result = float(vals[0])+float(vals[1])
else :
result = float(vals[0])-float(vals[1])
final_result=result
print(final_result)
res=render(request,'index.html'{'result':final_result,'values':values})
return res
【问题讨论】:
-
简单。您正在将结果分配给 final_result 但是,结果在 if 语句和这一行中。结果得到无值
标签: python python-3.x django list python-requests