Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在else之后继续函数_Python_Loops_While Loop - Fatal编程技术网

Python 在else之后继续函数

Python 在else之后继续函数,python,loops,while-loop,Python,Loops,While Loop,提前感谢您的帮助 我正在构建一个简单的程序;其思想是定期检查变量是否已更改,如果已更改,则执行某些操作,如果未更改,则再次检查。用例:在浏览器中显示从用户当前URL派生的图形;如果URL未更改,则不执行任何操作,如果更改,则重新绘制图形 我遇到了一个问题;我希望我的函数在条件满足时保持运行,如果条件不满足,则执行其他操作,然后继续运行 这是我的while函数代码;我的IDE和reading告诉我这里不允许“continue”:有没有其他方法可以让我的函数保持活动状态?相反,请让我知道,如果这是一

提前感谢您的帮助

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

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

这是我的while函数代码;我的IDE和reading告诉我这里不允许“continue”:有没有其他方法可以让我的函数保持活动状态?相反,请让我知道,如果这是一个愚蠢的方式来实现我的努力

    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

这是一个好的开始。如果值相同,while循环将停止,这通常是错误的。在while循环中,可以为所需的结果添加if语句。而真实一直持续到停止

while True:
    #wait for a couple of seconds
    if new_value != previous_value:
        #do something
    #put contents of new_value into previous_value
    #update new_value from external source

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

这是一个有点晦涩难懂的Python构造,但它(及其背后的推理)在15m53s中得到了很好的解释

您可能想做的是:

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

我想试试这样的东西:

while True:
   #wait some seconds if you need
   if(new_value != previous_value):
      #do something
   else:
      #update new_value from external source

我将使用while循环来保持程序运行,然后在循环中使用if/else语句。然后使用break语句停止运行循环

while True:
    if new_value != previous_value:
        # Run your code
    else:
        # Run your code
        # When I want the loop to end
        break
    

我不知道您要多久检查一次URL是否已更改或您有什么其他代码,但听起来您需要使用事件侦听器。我更喜欢JavaScript,所以我不是100%确定如何在Python中实现它们,但您所描述的是事件侦听器的完美用例。(我确信它们也存在于Python中。)基本上,您有一些侦听器来侦听当有人更改URL时发生的更改事件,这样,当URL确实发生更改时,您可以运行一些特定的代码。谢谢,我将对此进行研究,以备将来参考!非常感谢你的帮助!非常感谢你的帮助@OliverCox你解决问题了吗?我没有!谢谢你的邀请!下面是正在发生的事情(如果你已经读过这篇文章,请道歉):1。if/then分支工作(我将它们分别设置为打印“if”和“else”,并使用浏览器进行测试。2.但是,IDE显示的变量不会实时更新,只有在我关闭脚本时才会更新。3.最重要的是,if分支不会创建所需的图形,无论我在浏览器中导航多少次,但当我关闭脚本时,最后一个图形如果它能工作的话,至少会显示出来。有什么想法吗?为每个循环放置一个print语句会很有帮助:print(新的\u值,以前的\u值)了解它们是否正确更改。您可以尝试隔离代码的不同部分。例如,您可以不将内容放入上一个_值中,而只执行上一个_值=2来强制值不同。这样您就可以查看整个代码,看看哪里出错了。啊,太好了,我会告诉您事情进展如何!非常感谢您的帮助!嗨,山姆,非常感谢您的帮助!您和其他评论员都同意了这种方法。但是,我得到了以下错误:1.if/then分支工作正常(我将它们分别设置为打印“if”和“else”,并使用浏览器进行测试。2.但是,IDE显示的变量不会实时更新,只有在我关闭脚本时才会更新。3.最重要的是,if分支不会创建所需的图形,无论我在浏览器中导航多少次,但当我关闭脚本时,最后一个图形如果它能工作,至少会显示出来。有什么想法吗?嗨,奥利弗,我想你可能需要提供更多关于你的代码的详细信息,最好是提供一个你想要的输入->输出的好例子。如果你最初的查询得到了回答,我建议接受一个对你有帮助的答案,也许可以提出一个新的、具体的问题n表示您现在的位置。刚才听起来您的问题在于分配给后续/备选方案的表达式。如果不能够看到该代码,则很难给出任何建议。