如果其他人不工作

时间:2012-08-02 19:26:36

标签: python

我有一个if,elif,else语句的以下python代码:

        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)

代码对第一个if和elif语句正确执行。但是你可以通过这个output看到当语句进入第三个elif语句(其中运行计数为3)时第三次运行代码时它执行语句但不打印任何内容,而不是执行else语句。我已经检查了run_count是否确实是3并且它确实没有丢失我的程序。

有没有人知道它可能会进入那个elif语句但是从来没有打印过任何东西,当前一个工作正常并满足所有条件时?

1 个答案:

答案 0 :(得分: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)