More elegant way to try running a function X times?

Steve Holden steve at holdenweb.com
Thu Nov 20 13:28:07 EST 2008


Gilles Ganault wrote:
> Hello
> 
> As a newbie, it's pretty likely that there's a smarter way to do this,
> so I'd like to check with the experts:
> 
> I need to try calling a function 5 times. If successful, move on; If
> not, print an error message, and exit the program:
> 
> =====
> success = None
> 
> for i in range(5):
> 	#Try to fetch public IP
> 	success = CheckIP()
> 	if success:
> 		break
> 
> if not success:
> 	print "Exiting."
> 	sys.exit()

Use the for statement's "else" clause: it's there to allow you to
specify code to be executed only when the loop terminates normally.

for i in range(5):
    if CheckIP():
        break
else:
    sys.exit("Could not verify IP address")
... remainder of program ...

regards
 Steve
-- 
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC              http://www.holdenweb.com/




More information about the Python-list mailing list