![](/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.