2016-03-07 117 views
0

下面的代码,如果在python控制台运行它能正常工作,并能得到预期的结果:Django的Python的if语句没有产生预期的结果

c2 = 1 
stepCount = 4 
workStepNo = 4 
exeQueNum = 5 

if c2 == 1: 
    if stepCount == workStepNo: 
      if exeQueNum == 5: 
       actionChoice1 =3 
      else: 
       actionChoice1 = 2 
    else: 
      stepCount= int(stepCount)+1 
      actionChoice1 = 1 
else: 
    actionChoice1 = 0 

print "actionChoice1", actionChoice1 

能得到上actionChoice1 Python的控制台上打印出来正确的是3.

但是,当在Django中使用相同的代码时,它将actionChoice生成为2而不是3。

if c2 == 1: 
    if stepCount == workStepNo: 
     if exeQueNum == 5: 
      actionChoice =3 
     else: 
      actionChoice = 2 
    else: 
     stepCount= int(stepCount)+1 
     actionChoice = 1 
else: 
    actionChoice = 0 

请帮助查明可能导致此问题的错误。 什么其他替代可以用来获得期望的结果在Django的Python

回答

0
 if exeQueNum == 5: 
      actionChoice =3 
     else: 
      actionChoice = 2 

actionChoice是2时exeQueNum不是5,请检查您是如何检索/生产的exeQueNum Django上的价值。它不等于5

更新:

由于OP提到,该值是unicode是字符串。但它需要是整数才能与另一个整数(在这种情况下为5)进行比较。

所以做到这一点:

exeQueNum = int(exeQueNum) 
    if exeQueNum == 5: 
     actionChoice =3 
    else: 
     actionChoice = 2 

或者你也可以做if int(exeQueNum) == 5如果你不想改变变量的类型。

+0

exeQueNum是unicode类型的。值为5. – FelixPhillip

+0

Unicode是字符串。你正在比较一个整数。所以你必须把它转换成一个整数。让我更新我的答案。 – masnun