2013-04-20 80 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