2013-04-20 110 views
-5

我有一個問題,它只顯示 路易斯(650燙髮),當你再次點擊它會顯示路易斯(使用中),但第三次它是路易斯(650燙髮)和我無法找到問題Python(if,else,elif)

def example(): 
    if louis_inventory and louis == 0: 
     pointstore_skin_ct.addline('->1. Louis (650) Perm') 
    elif louis_inventory == 1 and louis == 0: 
     pointstore_skin_ct.addline('->1. Louis (In use)') 
    elif louis_inventory and louis == 1: 
     pointstore_skin_ct.addline('->1. Louis (Not in use)') 
+1

修正您的縮進,如果它實際上不是那樣 – jamylak 2013-04-20 11:58:03

+0

縮進不是問題先生。 – 2013-04-20 12:00:06

+2

是的。你粘貼的代碼引發了一個IndentationError。 – ThiefMaster 2013-04-20 12:00:23

回答

2
if louis_inventory and louis == 0: 

這將抓住每一個情況下,louis_inventory是truthy - 例如:在int情況下任何非零值 - 而louis爲零。

所以第一個elif的情況是無法訪問的。我不知道,正是你正在嘗試做的,但是這可能會解決它:

def example(): 
    if louis_inventory == 1 and louis == 0: 
     pointstore_skin_ct.addline('->1. Louis (In use)') 
    elif louis_inventory and louis == 0: 
     pointstore_skin_ct.addline('->1. Louis (650) Perm') 
    elif louis_inventory and louis == 1: 
     pointstore_skin_ct.addline('->1. Louis (Not in use)') 

它會跳轉到第一塊如果值正好是1,並在第二個,如果它是任何其他非零值。

+0

那麼如何解決它? – 2013-04-20 12:03:03

+0

'elif louis_inventory and louis == 0: pointstore_skin_ct.addline(' - > 1。Louis(650)Perm')'它不讀它,我知道聽起來很奇怪,但是這條線是不可能的 – 2013-04-20 12:09:08