2013-02-17 44 views
1

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

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

然而,我不断收到一个外功能错误,当我运行系统 我究竟做错了什么? 谢谢!

+0

[Python的return语句错误 “ '回归' 之外的功能”]的可能的复制(http://stackoverflow.com/questions/7842120/python-return-statement-error-return-outside-function) – tripleee 2016-09-14 14:49:39

回答

3

您有一个return语句不在函数中。功能由def关键字开始:

def function(argument): 
    return "something" 

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

return没有意义的功能之外,所以Python会引发一个错误。

5

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

看起来你的回报应该在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可言。只需在while loop之外打印counter的值。

0

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

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

尽量不要重复别人的回答 – godot 2018-02-07 10:16:00

+0

@Godot这是如何重复。我承认以前的答案,并建议在while循环中使用break语句。 – 2018-02-07 11:08:27

+0

它不会改变逻辑。如果其他答案在函数中,并且如果你只是在函数之外提取它们并且不改变任何东西,那么没有人会认为你的答案有帮助。 – godot 2018-02-07 11:14:35