这似乎是一个非常基本的问题..。但由于某种原因我不能清醒地思考..。
如何在不复制两次“否则”语句的情况下编写以下内容?(不需要将其放入函数中)
我写了print("a")和print("b"),但它最初有4-6个语句。
if os.path.exists(new_output_folder) and os.path.exists(prev_output_folder):
subdirs_lastrun = [os.path.basename(x[0]) for x in os.walk(new_output_folder)]
subdirs_prevrun = [os.path.basename(x[0]) for x in os.walk(prev_output_folder)]
if not "ref" in subdirs_lastrun and "ref" in subdirs_prevrun:
print("a")
else:
print("b")
else:
print("b")发布于 2022-01-06 06:44:22
您可以使用一个布尔值来决定必须在最后发生的复杂事情,比如:
do_a = os.path.exists(new_output_folder) and os.path.exists(prev_output_folder)
if do_a:
subdirs_lastrun = [os.path.basename(x[0]) for x in os.walk(new_output_folder)]
subdirs_prevrun = [os.path.basename(x[0]) for x in os.walk(prev_output_folder)]
do_a = not "ref" in subdirs_lastrun and "ref" in subdirs_prevrun
if do_a:
print("a")
else:
print("b")显然,如果(如您所述) a/b路径比简单打印更复杂,这将变得更有利。
发布于 2022-01-06 06:44:22
while(True):
if os.path.exists(new_output_folder) and os.path.exists(prev_output_folder):
subdirs_lastrun = [os.path.basename(x[0]) for x in os.walk(new_output_folder)]
subdirs_prevrun = [os.path.basename(x[0]) for x in os.walk(prev_output_folder)]
if not "ref" in subdirs_lastrun and "ref" in subdirs_prevrun:
print("a")
break
# else case
print("b")
breakhttps://stackoverflow.com/questions/70603305
复制相似问题