for line in para_search_f: match2 = pat2.search(line) match3 = pat3.search(line) match4 = pat4.search(line) if match2: para_val = match2.group(1) width_cal(para_val) break if match3: def_val = match3.group(1) width_cal(def_val) break elif match4: include_f = open(match4.group(1)) for line in inlcude_f: if match2: para_val = match2.group(1) width_cal(para_val) break elif match3: def_val = match3.group(1) width_cal(def_val) break f.close() else: print('Error:The parameter is undefined!')为什么满足其中一个if条件还会打印else中的信息
时间: 2023-11-27 18:55:37 浏览: 94
如果满足其中一个 `if` 条件,那么对应的代码块会被执行,并且执行完后会跳出整个 `if-elif-else` 结构。但如果都不满足,那么会执行 `else` 代码块中的内容。所以,如果你想要只有在所有条件都不满足时才执行 `else` 代码块,需要将 `elif` 改为单独的 `if`。例如:
```
for line in para_search_f:
match2 = pat2.search(line)
match3 = pat3.search(line)
match4 = pat4.search(line)
if match2:
para_val = match2.group(1)
width_cal(para_val)
break
if match3:
def_val = match3.group(1)
width_cal(def_val)
break
if match4:
include_f = open(match4.group(1))
for line in inlcude_f:
if match2:
para_val = match2.group(1)
width_cal(para_val)
break
elif match3:
def_val = match3.group(1)
width_cal(def_val)
break
f.close()
break
else:
print('Error:The parameter is undefined!')
```
这样,只有当所有的条件都不满足时才会执行 `else` 代码块。
阅读全文