0

私は数週間前にPythonの学習を始めました(プログラミングの知識はありません)が、理解できない次の問題に行き詰まりました。コードは次のとおりです。

def run():
    count = 1
    while count<11:
        return count
        count=count+1

print run()

私を混乱させるのは、なぜこの関数を印刷すると次のようになるのかということです:1? 印刷すべきではありません: 10?

1 から 10 までの値のリストを作成したくないので (明確にするために)、値を追加したくありません。カウントの値が 10 になるまで増やしたいだけです。

私は何を間違っていますか?

ありがとうございました。

4

3 に答える 3

5

ループ内で最初に行うことはwhile、 の現在の値を返すcountことです。これはたまたま 1 です。ループは実際には最初の反復を超えて実行されることはありません。Python はインデントを区別します(そして、私が知っているすべての言語は順序を区別します)。

ループreturn後に移動します。while

def run():
    count = 1
    while count<11:
        count=count+1
    return count
于 2013-05-22T23:44:32.227 に答える
1

への変更:

def run():
    count = 1
    while count<11:
        count=count+1
    return count

print run()

そのため、ループの後に値を返しています。

于 2013-05-22T23:46:25.500 に答える
0

Return は関数を早期に終了し、追加部分に進むことを禁止します。

于 2013-05-22T23:46:04.293 に答える