首页 > 解决方案 > else之后继续功能

问题描述

在此先感谢您的帮助!

我正在构建一个简单的程序;这个想法是让它定期检查变量是否已更改,如果有,则执行某些操作,如果没有,则再次检查。用例:在浏览器中显示从用户当前 URL 派生的图表;如果 URL 未更改,则不执行任何操作,如果更改,则重新绘制图形。

我遇到了一个问题;我希望我的函数在满足条件时继续运行,如果不满足条件,请执行其他操作,然后继续运行。

这是我的while函数代码;我的 IDE 和阅读告诉我这里不允许“继续”:还有其他方法可以让我的功能保持活动状态吗?相反,如果这是实现我想要做的事情的愚蠢方式,请告诉我!

    while new_value != previous_value:
        #wait
        #do something
        #put contents of new_value into previous_value
        #update new_value from external source (e.g. URL from browser, which may or not be have changed)
    else:
        #wait
        #do nothing
        #put contents of new_value into previous_value
        #update new_value from external source
        continue

标签: pythonloopswhile-loop

解决方案


这里的问题是'else'语句,当像这样使用时,一旦你的循环已经被破坏,就会被执行。因此,没有什么可以“继续”,并且您的 IDE 正在标记语法错误。

这是一个有点晦涩难懂的 Python 结构,但它(及其背后的原因)在 15 分 53 秒时得到了很好的解释

你可能想要做的是:

while True:
    if new_value != previous_value:
        # Do one thing
    else:
        # Do a different thing
    
    # You will need to specify an end condition,
    # or it will continue looping indefinitely.
    if exit_conditon_met:
        break

推荐阅读