Tim Chase wrote:
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 use
if 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.
Right. So it could also be written " if all(not CheckIP()... ". Perhaps more
closely re-telling the OP's ?
As for abuse, the "for _ in iterable" always feels a little hokey to
me. It works, but feels warty.
I guess this means you did not learn Prolog before Python ?
Cheers, BB
--
http://mail.python.org/mailman/listinfo/python-list