Django Python如果语句没有产生预期的结果

时间:2016-03-07 03:16:04

标签: django if-statement

以下代码如果在python控制台中运行它工作正常并且能够获得预期的结果:

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中获得预期结果

1 个答案:

答案 0 :(得分:0)

        if exeQueNum == 5:
            actionChoice =3
        else:
            actionChoice = 2
actionChoice不是5时,

exeQueNum为2.请检查您在Django上检索/生成exeQueNum的值的方式。它不等于5.

更新:

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

这样做:

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

如果您不想更改变量的类型,也可以执行if int(exeQueNum) == 5