代码永远在运行,这是不应该的

2024-06-28 19:37:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写代码来编写斐波那契序列,直到元素不超过40。但当我运行它时,它什么也不显示,并且永远保持运行。而且,当我运行它时,我的笔记本电脑的温度上升到90摄氏度,当我停止运行它时,温度下降到正常水平。(我有硝基感。)

代码如下:

    x=0
    while x <= 40:
        m = [1, 2]
        x = m[-1] + m[-2]
        m.append(x)
    print(m)

Tags: 代码元素水平序列温度笔记本电脑printappend
3条回答

每次都在while循环中设置m。而是这样做

x=0
m = [1, 2]
while x <= 40:
    x = m[-1] + m[-2]
    m.append(x)
    print(m)

你需要申报

m = [1, 2]

在循环外部。您的代码将计算出的x = 1+2添加到m,然后重置m = [1,2],因此x再次计算为1+2:

x=0
while x <= 40:      # x is 0, then 3 ... again and again
    m = [1, 2]           # m = [1,2] ... again and again
    x = m[-1] + m[-2]    # x = 3     ... again and again     
    m.append(x)          # m = [1,2,3]
print(m)  # never hit

修正:

x=0
m = [1, 2]
while x <= 40:
    x = m[-1] + m[-2]
    m.append(x)
print(m)

获得第n个fibonacci:Efficient Pythonic generator of the Fibonacci sequence的更高效实现

请将初始化m = [1, 2]移到前面的for循环之外

x=0
m = [1, 2]
while x <= 40:
    x = m[-1] + m[-2]
    m.append(x)
    print(m)

相关问题 更多 >