我有一个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语句但是从来没有打印过任何东西,当前一个工作正常并满足所有条件时?
答案 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)