forand other flow-control statements seemingly endlessly into the dreaded arrow formation?
if this: if that: for x in X: if yuck: ... else: ... continue else: while Y: if foobar: ... else: ... break else: ...One of the easiest ways to collapse
ifstatements is using the opposite condition and
if not this: ... return if not that: while Y: if not foobar: ... break ... return for x in X: if not yuck: ... continue ...Some refactoring tools will help you do this, but it good programming practice to avoid nested flow-control statements when possible. Even though in this case it only eliminated 2 lines, it is more compact, lines are not as long, so wrapping/continuing/splitting commands is not an issue, and in general the code should run faster, since it only executes as much code as is needed before returning, continuing or breaking.