2

我在教程论坛上复制了其他人编写的python程序的源代码,并对其进行了一些修改以满足我自己的需要

我相信原件是在python shell中运行的,我让它在shell中运行,但我需要将它保存到python IDLE并从那里运行

我正在使用 python 3.2.3 IDLE btw 这是我写的:

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在函数中使用,你使它成为一个生成器,并且生成器只在最后一行被构造,但从未被评估过。

相反,您想突出最后四行:

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 回答