在python中重复一定次数的函数

时间:2014-07-04 08:56:29

标签: python function loops jython repeat

我正在做一个介绍类,他们要求我重复一个函数一定次数,因为我说这是一个介绍所以大部分代码都写了所以假设函数已经定义了。我必须重复tryConfiguration(floorplan,numLights)numTries次请求。任何帮助都会很棒:D谢谢你。

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.

3 个答案:

答案 0 :(得分:1)

在numTries范围内循环并每次调用该函数。

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

如果使用python2,请使用xrange来避免在内存中创建整个列表。

基本上你在做:

In [1]: numTries = 5

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

答案 1 :(得分:1)

首先让我仔细检查一下我是否理解了您的需求:您必须将numTries个连续的来电置于tryConfiguration(floorplan,numLights),并且每个电话都与其他电话相同。

如果是这样,如果tryConfiguration是同步的,你可以只使用for循环:

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

如果我遗漏了某些内容,请告诉我:如果您的要求不同,可能会有其他解决方案,例如利用闭包和/或递归。

答案 2 :(得分:0)

当我们谈论多次重复某段代码时,使用某种循环通常是一个好主意。

在这种情况下,您可以使用" for-loop":

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

更直观的方式(尽管是笨拙的)可能正在使用while循环:

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