簡體   English   中英

如何使用遞歸和 if 循環在 Python 中僅接受 5 個輸入

[英]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 在評論中描述的所有以下約束:

  • 使用遞歸
  • 使用不接受任何參數的 function
  • 沒有全局變量
  • 沒有進口( math是允許的,但我們在這里不需要它)
  • 如果在 5 次嘗試內未收到 5,則返回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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM