success = None for i in range(5): #Try to fetch public IP success = CheckIP() if success: break if not success: print "Exiting." sys.exit()Though a bit of an abuse, you can useif not any(CheckIP() for _ in range(5)): print "Exiting" sys.exit()I don't see why you speak of abuse, bit of abuse would be, say if you replaced range(5) by '12345' to win a char; but otoh I think you misspelled any() for all().
The OP's code break'ed (broke?) upon the first success, rather than checking all of them. Thus, it would be any() rather than all(). Using all() would require 5 successful calls to CheckIP(), rather than one-out-of-five successful calls.
As for abuse, the "for _ in iterable" always feels a little hokey to me. It works, but feels warty.
-tkc -- http://mail.python.org/mailman/listinfo/python-list
