2012-08-02 36 views
3

我有一个在下面的Python代码如果elif的,else语句:如果ELIF别的工作不

 if line_num == 151: 
      if self.run_count == 1: 
       print(values[self.run_count-1]) 
     elif line_num == 129: 
      if self.run_count == 2: 
       print(values[self.run_count-1]) 
     elif line_num == 129: 
      if self.run_count == 3: 
       print("here") 
     else: 
      print(line_num) 
     f.write(line) 

代码正确执行第一中频和ELIF语句。但是,通过output可以看出,当语句进入第3条elif语句(其中运行计数为3)时,代码的第三次运行会执行语句,但不会打印出任何内容,并且不会执行else语句。我检查了run_count是否确实是3,并且它并没有抛弃我的程序。

有没有人有一个想法,虽然它可能会进入该ELIF语句,但从不打印任何东西,当前一个正常工作,并满足所有条件?

+5

你的意思是2d和3d检查都是'129'?你确定缩进吗? – 2012-08-02 19:28:22

回答

15

这两个elif line_num == 129语句不会得到执行,因为它们具有相同的条件。相反,尝试这样的事情:

if line_num == 151: 
     if self.run_count == 1: 
      print(values[self.run_count-1]) 
    elif line_num == 129: 
     if self.run_count == 2: 
      print(values[self.run_count-1]) 
     elif self.run_count == 3: 
      print("here") 
    else: 
     print(line_num) 
    f.write(line) 
+0

谢谢,应该注意到我的逻辑是关闭的,但是在写了这么多行文字之后开始一起模糊 – jgr208 2012-08-02 19:30:09

+0

如果这是答案,那么一定要标记它:)。 – VoronoiPotato 2012-08-02 19:44:14