提问者:小点点

Python语法错误与for


这是我在这里的第一篇文章,我在一周前才开始使用python,我在运行代码时遇到了一个问题。 下面是代码:

try:
    sauce= urlib.request.urlopen('https://www.instagram.com/p/'+msg('text').read(),
    soup = bs.BeautifulSoup(sauce, 'html.parser')
    for item in soup.find_all('span', 'webtitleclass'):
        print(item)


except urlib.error.HTTPError as err:

然后显然代码继续,但问题是它在的开头发现了一个错误,一个语法错误。 我已经尝试添加逗号和其他东西,但它没有改变。

语法错误在哪里? 多谢


共2个答案

匿名用户

这应该可以修复圆括号,并填写except:

try:
    sauce = urlib.request.urlopen('https://www.instagram.com/p/'+msg('text').read())
    soup = bs.BeautifulSoup(sauce, 'html.parser')
    for item in soup.find_all('span', 'webtitleclass'):
        print(item)


except urlib.error.HTTPError as err:
    print(err)

匿名用户

欢迎光临! 您遇到的问题根本不在for关键字中,但应该在此处

sauce= urlib.request.urlopen('https://www.instagram.com/p/'+msg('text').read(),

我怎么知道? 因为有一个不平衡的括号。 您很可能会遇到语法错误:的意外关键字,这是一个很老的问题。

事实证明,python解析器将您编写的源代码转换为树形形式,但有时事情有点出乎意料,请考虑一下。

spam = []
some_function(spam)
#
some_function([])

它们是相同的,但是解析器遇到两个不同的东西,第一个是标识符,第二个是列表表达式。

因此,有时解析器将不得不切换到不同的上下文; 在您的示例中,您正在尝试找出函数rlib.request.urlopen的参数,但遇到了一个根本不属于该函数的for关键字!

为什么它之前不警告我! 我理解这对您来说很困惑,但这是一个很难解决的问题,而且python开发人员已经在“宽恕”方面考虑了更多,所以您可能会遇到一些奇怪的语法错误。