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.

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

Reply via email to