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 ステートメントに対して正しく実行されます。ただし、この出力から、ステートメントが 3 番目の elif ステートメント (実行カウントが 3) に入るときのコードの 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 に答える