Repeating a function a set amount of times in python

我只是一个虾纸丫 提交于 2020-01-26 04:31:20

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!