Python RuntimeError: maximale Rekursionstiefe überschritten

Ich bin neu über Python. Ich schrieb eine Funktion über gibt die Anzahl der Vorkommen von x in der sortierten wiederholten Elemente Array A:

def FindFirstIndex(A, low, high, x, n): low = 0 high = len(A) - 1 if low <= high: mid = low + (high - low) / 2 if (mid == 0 or x > A[mid - 1]) and A[mid] == x: return mid elif x > A[mid]: return FindFirstIndex(A, (mid + 1), high, x, n) else: return FindFirstIndex(A, low, (mid - 1), x, n) return -1 def FindLastIndex(A, low, high, x, n): low = 0 high = len(A) - 1 if low <= high: mid = low + (high - low) / 2 if (mid == n - 1 or x < A[mid + 1]) and A[mid] == x: return mid elif x < A[mid]: return FindFirstIndex(A, low, (mid - 1), x, n) else: return FindFirstIndex(A, (mid + 1), high, x, n) return -1 def COUNT(A, x): i = FindFirstIndex(A, 0, len(A) - 1, x, len(A)) if i == -1: return i j = FindLastIndex(A, i, len(A) - 1, x, len(A)) length = j - i + 1 return length 

Der Fehler ist: RuntimeError: maximale Rekursionstiefe überschritten. Jemand weiß, wie man es löst?

2 Solutions collect form web for “Python RuntimeError: maximale Rekursionstiefe überschritten”

Eine rekursive fuction sollte Argumente in jeder Rekursion überprüfen. Auch müssen die Werte der Argumente ändern. Andernfalls endet es niemals. Zum Beispiel

 def factorial(n): if n == 0: return 1 else: return n * factorial(n-1) 

Was faktorisch von n gibt

Sicher können Sie:

 import sys sys.setrecursionlimit(3000) 

Ich glaube, Python ist Standard ist 1000 so sollte dies tun. Ich warnte dich aber wenn du versuchst und deine Implementierung auf einer sehr großen Liste zu testen python könnte abstürzen, also würde ich dich ermutigen, deinen Code iterativ neu zu implementieren

  • Python-interpretator automatisch wiederherzustellen, ohne Antwort zurückzugeben
  • Ich versuche, eine Funktion zu machen, die max aus verschachtelter Liste zurückgibt?
  • Warum gibt meine rekursive Funktion keine?
  • Den längsten Teilstring in alphabetischer Reihenfolge finden
  • Merkwürdiges Rekursionsverhalten in Python
  • Python rekursiver Funktionsfehler: "maximale Rekursionstiefe überschritten"
  • Rekursive Funktion gibt keine in Python zurück [doppelte]
  • Python Recursive Funktion für Collatz Conjecture
  • Notwendigkeit, Pyramiden-Dreieck auf Python neu zu erstellen
  • Rekursiver Generator zum Abflachen von verschachtelten Listen
  • Rekursive Funktion, die keine zurückgibt?
  • Python ist die beste Programmiersprache der Welt.