在Python中返回外部函数错误

时间:2013-02-17 18:59:11

标签: python function

这是问题所在: 给定Python中的以下程序,假设用户从键盘输入数字4。返回的价值是多少?

N = int(input("enter a positive integer:"))
counter = 1
while (N > 0):
    counter = counter * N
    N = N - 1
    return counter

然而,当我运行系统时,我不断收到外部函数错误 我究竟做错了什么? 谢谢!

5 个答案:

答案 0 :(得分:6)

您只能从函数内部返回,而不能从循环返回。

看起来你的返回应该在while循环之外,你的完整代码应该在函数内部。

def func():
    N = int(input("enter a positive integer:"))
    counter = 1
    while (N > 0):
        counter = counter * N
        N -= 1
    return counter  # de-indent this 4 spaces to the left.

print func()

如果这些代码不在函数内部,那么您根本不需要return。只需在counter之外打印while loop的值。

答案 1 :(得分:4)

您的return语句不在函数中。函数由def关键字启动:

def function(argument):
    return "something"

print function("foo")  #prints "something"

return在函数之外没有任何意义,因此python会引发错误。

答案 2 :(得分:2)

您没有在任何函数内编写代码,只能从函数返回。删除return语句,仅打印所需的值。

答案 3 :(得分:0)

正如其他贡献者所解释的那样,您可以打印出计数器,然后用break语句替换该返回。

N = int(input("enter a positive integer:"))
counter = 1
while (N > 0):
    counter = counter * N
    N = N - 1
    print(counter)
    break

答案 4 :(得分:0)

从循环中返回时基本上会发生,只能从函数中返回