Python 3.x Python3:在编译器模式下不返回值的递归函数
当我在编译器中运行它时,该代码不返回5的阶乘或任何其他值,但在解释器模式下运行时返回正确的值 同样的事情也发生在我使用递归的其他程序中Python 3.x Python3:在编译器模式下不返回值的递归函数,python-3.x,recursion,factorial,Python 3.x,Recursion,Factorial,当我在编译器中运行它时,该代码不返回5的阶乘或任何其他值,但在解释器模式下运行时返回正确的值 同样的事情也发生在我使用递归的其他程序中 def factorial(n): if n == 0: return(1) else: return(n * factorial(n-1)) factorial(5) def插入(序号k): 位置=1 当pos>0且seq[pos]1: isort(序号k-1) 插入(序号k-1) 其他: 返回 def插件排
def factorial(n):
if n == 0:
return(1)
else:
return(n * factorial(n-1))
factorial(5)
def插入(序号k):
位置=1
当pos>0且seq[pos]1:
isort(序号k-1)
插入(序号k-1)
其他:
返回
def插件排序(序号):
isort(seq,len(seq))
返回(seq)
插入排序([4,56,15,86,84,3,51,2,4,1,54,5,1,87,5,2,7,15,65])
很抱歉问了这么一件小事,我刚刚开始学习python,请尝试打印您的结果。
例如:print(阶乘(5))
实际上,它正在返回它,只是没有任何东西在使用返回的值
在交互式解释器中,如果表达式不是None
,REPL(a)将输出表达式的值
运行脚本时并非如此,您需要显式打印它:
def insert(seq,k):
pos = 1
while pos > 0 and seq[pos] < seq[pos-1]:
(seq[pos], seq[pos-1]) = (seq[pos-1], seq[pos])
pos = pos - 1
def isort(seq,k):
if k > 1:
isort(seq,k-1)
insert(seq,k-1)
else:
return
def InsertionSort(seq):
isort(seq,len(seq))
return(seq)
InsertionSort([4,56,15,86,84,3,51,2,4,1,54,5,1,87,5,2,7,15,65])
(a) 这是
Read Eval Print循环
,您应该特别注意Print
位,这在本文中很重要:-)什么是“编译器模式”?你指的是某种特定的IDE功能吗?@ReutSharabani所说的“编译器模式”,我指的是在空闲或空闲状态下作为脚本执行Spyder@Carcigenicate你能告诉我具体的语法吗?对不起,我不知道
print(factorial(5))