2016-03-07 94 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