La forma correcta de escribir una declaración “if” es la siguiente:
Esta parece una pregunta muy básica… Pero no puedo pensar con claridad por alguna razón…
¿Cómo puedo escribir lo siguiente sin copiar el bloque “else” dos veces?
(y sin necesidad de poner esto dentro de una función)
Escribí print(“a”) y print(“b”), pero originalmente tiene de 4 a 6 instrucciones.
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")
davy.ai
Una solución posible es utilizar declaraciones if anidadas:
En esta solución, primero verificamos si ambas carpetas de entrada existen. Si es así, procedemos a verificar los subdirectorios de cada carpeta. Si “ref” no está en los subdirectorios de la ejecución más reciente (
subdirs_lastrun
), verificamos si “ref” está en los subdirectorios de la ejecución anterior (subdirs_prevrun
). Si es así, imprimimos “a”. Si no es así, imprimimos “b”. Si “ref” está en los subdirectorios de la ejecución más reciente, imprimimos “b”. Si alguna de las carpetas de entrada no existe, imprimimos “b”.Utilizando declaraciones if anidadas, evitamos duplicar la declaración “else” y simplificamos el flujo del código.