【发布时间】:2017-11-06 19:46:44
【问题描述】:
我想把下面的伪代码转换成 Python 代码,而不引起无限递归。
u(x) = x^2
for i = 0 to 5
v(x) = u(x)^2
u(x) = v(x)
print(u(x))
这是我的尝试,它会产生错误“超出最大递归深度”:
import sympy as sym
u = lambda a: a**2
for i in range(0,5):
print('Starting loop',i)
v = lambda b: u(b)**2
u = lambda c: v(c)
print('Ending loop',i)
x = sym.symbols('x')
print(u(x))
【问题讨论】:
-
“一个未指明的错误”,指定它。一定有什么东西生产出来的。
-
补充,别删了再问(现删:stackoverflow.com/questions/44378964/…)
-
确实,编辑您的问题并添加错误消息。这将使其他人更容易提供帮助。
-
您需要在您的函数伪代码中添加一个计数器 i 并每次递减,循环不会影响定义。也就是说,它不是伪代码,只是一些伪伪代码?
标签: python python-3.x for-loop recursion sympy