我已经拥有的代码是用于接收数学表达式并计算它的机器人。现在我做它的乘法,除法,减法和加法。但问题是我想在括号内建立对括号和圆括号的支持。为了实现这一点,我需要首先运行我为括号中的表达式而没有括号的表达式编写的代码。我打算检查"("
并将其中的表达式附加到列表中,直到它到达")"
,除非它首先到达另一个"("
,在这种情况下我将在列表中创建一个列表。我会减去,乘以和除以我剩下的数字加在一起。
那么可以从内部调用定义/函数吗?
答案 0 :(得分:12)
是的,这是一种名为recursion的基本编程技术,它通常用于您描述的解析方案中。
请确保您有一个基本案例,以便当您到达底层时递归结束,而您最终无法无限地称呼自己。
(还要注意Google递归时的复活节彩蛋:“你的意思是递归吗?”)
答案 1 :(得分:1)
是的,正如@Daniel Roseman所说,这是一种称为递归的基本编程技术。
我在python中给你一个示例例子
def recur_factorial(n):
"""Function to return the factorial of a number using recursion"""
if n == 1:
return n
else:
return n*recur_factorial(n-1)