5

これが問題です: Python で次のプログラムが与えられた場合、ユーザーがキーボードから数字の 4 を入力したとします。返される値はどうなりますか?

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

それでも、システムを実行すると外部関数エラーが発生し続けます。何が間違っていますか? ありがとう!

4

5 に答える 5

8

関数内からのみ戻ることができ、ループから戻ることはできません。

returnは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()

そして、それらのコードが関数内にない場合は、まったく必要ありませんreturncounterの外側の値を出力するだけwhile loopです。

于 2013-02-17T19:01:31.413 に答える
4

return関数にないステートメントがあります。関数は次のdefキーワードで開始されます。

def function(argument):
    return "something"

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

return関数の外では意味がないため、python はエラーを発生させます。

于 2013-02-17T18:59:54.217 に答える
4

関数内にコードを記述していないため、関数からのみ返すことができます。return ステートメントを削除し、必要な値を出力するだけです。

于 2018-07-28T22:08:20.113 に答える
1

他の貢献者によって既に説明されているように、カウンターを出力してから、return を break ステートメントに置き換えることができます。

N = int(input("enter a positive integer:"))
counter = 1
while (N > 0):
    counter = counter * N
    N = N - 1
    print(counter)
    break
于 2018-02-07T10:05:30.807 に答える