2

チュートリアル フォーラムで他の人が書いた Python プログラムのソース コードをコピーし、自分のニーズに合わせていくつかの変更を加えました。

オリジナルはPythonシェルで実行することを意図していたと思いますが、シェルで実行するようにしましたが、Python IDLEに保存してそこから実行する必要があります

私はpython 3.2.3 IDLEを使用していますが、これは私が書いたものです:

def fibonacci(previous=0,current=1):
    n = int(input("Calculate fibonacci sequence value up to: "))
    if previous > current:
        previous,current = current, previous
    yield previous
    yield current
    while True:
        current,previous = previous+current,current
        yield current

    x = fibonacci()    
    for i in range(n):
        print(next(x))
fibonacci()

エラーがポップアップしないように、実行されません。矢印が表示されるだけです: >>それで何も起こりません。

4

1 に答える 1

4

プログラムは起動して実行されます。残念ながら、yield関数内で を使用すると、ジェネレーターになり、ジェネレーターは最後の行で構築されるだけで、評価されることはありません。

代わりに、最後の 4 行をアウトデントします。

def fibonacci(previous=0,current=1):
    if previous > current:
        previous,current = current, previous
    yield previous
    yield current
    while True:
        current,previous = previous+current,current
        yield current

n = int(input("Calculate fibonacci sequence value up to: "))
x = fibonacci()    
for i in range(n):
    print(next(x))
于 2012-11-16T18:47:50.733 に答える