python - 为什么这个Python程序无法启动?

标签 python python-idle

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

我相信原始版本是为了在 python shell 中运行,我让它在 shell 中运行,但我需要将它保存到 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()

它没有运行,就像没有弹出错误一样,我只是得到了箭头:>> 就这样什么也没发生。

最佳答案

程序确实启动并运行。不幸的是,通过在函数中使用 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))

关于python - 为什么这个Python程序无法启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422505/

相关文章:

python - 我如何告诉 django-admin 使用哪个设置模块?

python - 继承类属性而不声明属性或更好的 OOP

python - Win 7,IDLE突然不工作,Labview不工作,系统缓慢

Python 3.3 无法在 OS X Mavericks 上正常工作

python - 如何创建一个数字列表,然后用比它们大的第一个偶数替换列表中的奇数?

python - Pandas:为列的每个实例创建具有二进制值的数据框

python - 根据另一个数据框中的列有条件地格式化每列中的单元格

python - 如何在脚本中导入所有 django 模型及更多模型?

在 Geany 中工作的 Python 代码不在 IDLE 中?

将循环语句添加到现有代码时的 Python 缩进