问题
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.
回答1:
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.
回答2:
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
回答3:
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
来源:https://stackoverflow.com/questions/24570393/repeating-a-function-a-set-amount-of-times-in-python