我有10个函数必须在循环中调用...
但是如果用户给出输入5,则应该调用前5个函数。
如果用户给出11,则在调用10个函数后,它应该从Beginning
开始调用其余的1我写了所有10个函数,但我不知道如何实现这个。
def function_one():
print("This is the first function")
def function_second():
print("This is the second function")
.....
答案 0 :(得分:15)
将您的功能放入列表中:
functions = [function_one, function_two, function_three, ...]
然后循环遍历:
n = int(input('Number: '))
for i in range(n):
functions[i]()
现在你的要求是什么:
如果用户给出11,则在调用10个函数后,它应该从Beginning
开始调用其余的1
有很多方法可以做到这一点,但是如果我们想要坚持上面的代码,我们可以使用模运算符(%
)来允许"过去"结束:
n = int(input('Number: '))
for i in range(n):
functions[i % len(functions)]()
您还可以完全更改方法并使用itertools.cycle()
而不是循环遍历列表的索引,并使用内置的next()
来获取函数:
import itertools
functions = [function_one, function_two, function_three, ...]
functions_it = itertools.cycle(functions)
n = int(input('Number: '))
for i in range(n):
next(functions_it)()
答案 1 :(得分:-1)
将你的函数放在一个列表中,然后使用模数运算符循环遍历列表,其中N是你应该调用的函数数:
functions = [function_one, function_two, function_three, ..., function_ten]
num_of_funcs = len(functions)
for i in range(N):
functions[i % num_of_funcs]()
i % num_of_funcs
将确保您从第一个函数开始,并在您点击列表中的最后一个函数后再次回绕第一个函数。