3

我有以下用于 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 语句的代码正确执行。但是,您可以通过此输出看到,当语句进入第三个 elif 语句(其中运行计数为 3)时,代码的第三次运行它执行该语句但不打印任何内容,并且不执行 else 语句. 我已经检查了 run_count 是否确实是 3 并且它根本没有把我的程序扔掉。

当前一个工作正常并且满足所有条件时,是否有人知道它可能会进入该 elif 语句但从不打印任何内容?

4

1 回答 1

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)
于 2012-08-02T19:28:23.120 回答