user3804780
user3804780

Reputation: 11

Repeating a function a set amount of times in python

I am doing an intro class and they are asking me to repeat a function a certain amount of times, as I said this is an intro so most of the code is written so assume the functions have been defined. I have to repeat the tryConfiguration(floorplan,numLights) the amount of time numTries requests. any help would be awesome :D thank you.

def runProgram():
  #Allow the user to open a floorplan picture (Assume the user will select a valid PNG floodplan)
  myPlan = pickAFile()
  floorplan = makePicture(myPlan)
  show(floorplan)

  #Display the floorplan picture

  #In level 2, set the numLights value to 2
  #In level 3, obtain a value for numLights from the user (see spec).
  numLights= requestInteger("How many lights would you like to use?")

  #In level 2, set the numTries to 10
  #In level 3, obtain a value for numTries from the user.
  numTries= requestInteger("How many times would you like to try?")

  tryConfiguration(floorplan,numLights)

  #Call and repeat the tryConfiguration() function numTries times. You will need to give it (pass as arguments or parameterS)
  #   the floorplan picture that the user provided and the value of the numLights variable.

Upvotes: 0

Views: 9861

Answers (3)

Padraic Cunningham
Padraic Cunningham

Reputation: 180401

Loop in the range of numTries and call the function each time.

for i in range(numTries):
      tryConfiguration(floorplan,numLights)

If using python2 use xrange to avoid creating the whole list in memory.

Basically you are doing:

In [1]: numTries = 5

In [2]: for i in range(numTries):
   ...:           print("Calling function")
   ...:     
Calling function
Calling function
Calling function
Calling function
Calling function

Upvotes: 1

mlr
mlr

Reputation: 896

First let me double check if I understood what you need: you have to place numTries sequential calls to tryConfiguration(floorplan,numLights), and each call is the same as the others.

If it is so, and if tryConfiguration is synchronous, you can just use a for loop:

for _ in xrange(numTries):
  tryConfiguration(floorplan,numLights)

Please let me know if I'm missing something: there could be other solutions, like leveraging closures and/or recursion, if your requirements are different.

Upvotes: 1

Andreas
Andreas

Reputation: 622

When we're talking about repeating a certain block of code multiple times, it's generally a good idea to use a loop of some kind.

In this case you could use a "for-loop":

for unused in range(numtries):
    tryConfiguration(floorplan, numLights)

A more intuitive way (albeit clunkier) might be using the while loop:

counter = 0
while counter < numtries:
    tryConfiguration(floorplan, numLights)
    counter += 1

Upvotes: 0

Related Questions