【问题标题】:functions in list loop not running one by one in python列表循环中的函数没有在python中一一运行
【发布时间】:2020-04-24 21:41:16
【问题描述】:

我有 5 个以上的功能,所以我想依次运行所有功能。就像我把循环范围 = 10 并且我在列表中有 5 个函数一样,所以 func1() 应该运行一次,func2() 在第二个范围和 func3() 在第三个范围,它应该在循环中,直到范围 = 10 到达。

    loop = 10
    funcs = [func1(), func2(), func3(), func4(), func5()]

    for i in range(funcs,loop):
        print(i)

我已经尝试过这种方式,但如果循环范围是 10,那么每个函数运行 10 次,这就是这个循环不应该那样做的事情。它应该像循环范围是 10 并且我有 5 个函数一样工作,那么每个函数应该运行一次,直到达到循环范围。

【问题讨论】:

  • 您必须了解范围以下列方式工作。 range(start, stop[, step])

标签: python python-3.x list function loops


【解决方案1】:

在名称后面加上() 时会调用函数。您需要将() 从列表中取出,并将其放入循环中。

另外,funcs 不是range() 的有效参数,它只接受数字。使用i 获取funcs 的索引。

loop = 10
funcs = [func1, func2, func3, func4, func5]
mobile_number = '123-456-7890'
amount = 50

for i in range(loop):
    print(funcs[i % len(funcs)](mobile_number, amount))

DEMO

【讨论】:

  • 仍然和我发布的一样工作,仍然重复每个函数10次,每个函数应该运行一次。
  • 只需将参数放在循环中的括号中即可:funcs[i % len(funcs)](mobile_number, amount)
  • 请举个例子。谢谢。
  • :/ 仍然发生同样的事情,每个函数重复 10 次然后转到下一个函数。它应该像 1 个函数运行一次然后应该转到其他函数一样工作。
【解决方案2】:

它不像函数一样运行因为你把所有的函数都放在列表中,并且列表被视为像列表一样的函数

【讨论】:

  • loop = 10 funcs = [func1, func2, func3, func4, func5] for i in range(10) print(funcs[i % len(funcs)]())
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 2021-08-28
  • 2018-07-09
  • 2019-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多