语法错误:'continue'未正确使用在循环中。

24

我一直在为这个错误苦苦挣扎,对于解释器为什么抱怨“continue”存在不同的看法。因此,我想在下面提供有误的代码。

import tweepy
import time
def writeHandlesToFile():
    file = open("dataFile.txt","w")
    try:
        list = tweepy.Cursor(tweepy.api.followers,screen_name='someHandle',).items(100000)
        print "cursor executed"
        for item in list:
            file.write(item.screen_name+"\n")
    except tweepy.error.TweepError as e:
        print "In the except method"
        print e
        time.sleep(3600)
        continue
我在最后使用continue的原因是,我希望程序在sleep之后从离开的地方重新开始执行,以维护程序状态。我需要sleep来遵守Twitter API的速率限制,该API每小时只允许你发送一定数量的请求。 如果有人发现了我的错误或提供了不使用continue语句的替代实现,请告诉我。 顺便说一下,我并没有像另一篇文章中建议的那样混合使用制表符和空格。 非常感谢你的帮助。
2个回答

38

continue 语句只能在 forwhile 循环内使用。您可以轻松地重构函数以循环执行,直到获得有效请求。

def writeHandlesToFile():
    while True:
        with open("dataFile.txt","w") as f:
            try:
                lst = tweepy.Cursor(tweepy.api.followers,screen_name='someHandle',).items(100000)
                print "cursor executed"
                for item in lst:
                    f.write(item.screen_name+"\n")
                break
            except tweepy.error.TweepError as e:
                print "In the except method"
                print e
                time.sleep(3600)

我猜当完成后,我可以通过使用finally语句来跳出循环。感谢您的帮助。 - anonuser0428
break 用于跳出循环。它是 try 块中执行的最后一行代码。 - Tim

5

问题可能出在您使用continue的方式上。

continue只能在for或while循环中进行语法嵌套,而不能在函数或类定义或finally语句中进行嵌套。它会继续执行最近包含循环的下一个周期。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接