为什么这个python程序不会启动?

时间:2012-11-16 18:42:18

标签: python python-idle

我在教程论坛上复制了其他人编写的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()

它没有运行,就像没有错误弹出我只是得到箭头:>> 这没有任何反应。

1 个答案:

答案 0 :(得分: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))