سلام
اشکال کد زیر چیه؟
این کد اعداد ۱۰۰۰۰ به پایین رو چاپ میکنه .
اما وقتی به ۹۰۰۰ میرسه خطا میده.
چطور میشه خطا رو برطرف کرد
ممنون
def eo(x):
if x > 0:
print(x)
eo(x - 1)
eo(10000)
[/b]
سلام
اشکال کد زیر چیه؟
این کد اعداد ۱۰۰۰۰ به پایین رو چاپ میکنه .
اما وقتی به ۹۰۰۰ میرسه خطا میده.
چطور میشه خطا رو برطرف کرد
ممنون
def eo(x):
if x > 0:
print(x)
eo(x - 1)
eo(10000)
[/b]
پایتون متاسفانه از Tail recursion استفاده نمیکنه، برای همین به محدودیت برمیخورید و خطای زیر رو دریافت میکنید:
RecursionError: maximum recursion depth exceeded while calling a Python object
برای همین توصیه من هم مثل دوست قبلی، استفاده از روش غیر بازگشتیه. ولی اگه کارتون گیره، این دو خط رو به بالای کد اضافه کنید تا محدودیت عمق توابع بازگشتی رو افزایش بدید:
import sys
sys.setrecursionlimit(15000)