Python3: 递归函数在编译模式下没有返回值
Python3: Recursive functioin not returning value in compiler mode
def factorial(n):
if n == 0:
return(1)
else:
return(n * factorial(n-1))
factorial(5)
当我在编译器中 运行 时,此代码不会 return 5 或任何其他值的阶乘,但在解释器中 运行 时 return 是正确的值模式。
我使用递归的其他程序也发生了同样的事情。
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])
不好意思问了一些小问题,刚开始学习python
尝试打印您的结果。
例子:print(factorial(5))
其实是返回的,只是没有使用返回值
在 interactive 解释器中,REPL(a) 将输出表达式的值,如果它不是 None
.
即不是情况运行一个脚本,你需要显式打印它:
print(factorial(5))
(a) 这是 Read-Eval-Print-Loop
你应该 额外 注意那个 Print
位, 在这种情况下很重要:-)
def factorial(n):
if n == 0:
return(1)
else:
return(n * factorial(n-1))
factorial(5)
当我在编译器中 运行 时,此代码不会 return 5 或任何其他值的阶乘,但在解释器中 运行 时 return 是正确的值模式。
我使用递归的其他程序也发生了同样的事情。
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])
不好意思问了一些小问题,刚开始学习python
尝试打印您的结果。
例子:print(factorial(5))
其实是返回的,只是没有使用返回值
在 interactive 解释器中,REPL(a) 将输出表达式的值,如果它不是 None
.
即不是情况运行一个脚本,你需要显式打印它:
print(factorial(5))
(a) 这是 Read-Eval-Print-Loop
你应该 额外 注意那个 Print
位, 在这种情况下很重要:-)