我在教程论坛上复制了别人编写的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/