![](/img/trans.png)
[英]how to find dot product of two lists using only recursion(no loops or list comprehensions) in python?
[英]How to accept only 5 inputs in Python using recursion and if loops
我试图创建一个递归 function 仅使用if
语句和递归,最多接受 5 个输入。 如果接收到超过 5 个输入,则 function 将返回None
。 我到目前为止的代码是:
def foo()
count = 0
n = int(input())
if n == 5:
return n
elif count != 5:
count += 1
return foo()
else:
return None
我知道在每次递归调用中,count 都会重置为 0,因此程序会无限期地运行。 我只是不知道如何修改它,以便我最多只能使用if
语句和递归来接受 5 个输入。
编辑:不允许使用全局变量。 function 不得带入任何参数。 function 只能使用math
模块中的字符串或数学技术。
以下应该适合您的需求。 它使用一个辅助方法来接收您剩余的输入数量。 foo()
本身不接受任何参数。
这符合 OP 在评论中描述的所有以下约束:
math
是允许的,但我们在这里不需要它)None
,否则返回 5。def get_input(inputs_remaining):
if inputs_remaining <= 0:
return None
result = int(input())
if result == 5:
return 5
return get_input(inputs_remaining - 1)
def foo():
return get_input(5)
foo()
您可以执行以下操作:
def foo(count=5):
if count == 1:
return [input()]
else:
return [input()]+foo(count-1)
这将 output 一个包含 n 个输入的列表
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.