变量%d和+;=python中的运算符
我正在尝试用python创建一个模式。我需要有一组链接(称为“主题链接”)的所有页面:例如,我有www.url/animal(带有www.url/animal/page/1ecc.)和www.url/plants(带有www.url/plants/page/1ecc)。 我已经做到了:变量%d和+;=python中的运算符,python,python-3.x,Python,Python 3.x,我正在尝试用python创建一个模式。我需要有一组链接(称为“主题链接”)的所有页面:例如,我有www.url/animal(带有www.url/animal/page/1ecc.)和www.url/plants(带有www.url/plants/page/1ecc)。 我已经做到了: n = 1 next_page = subjects_links+'page/%d' % n+=1 但是给了我一个“无效语法”错误。不能同时使用%d和+=吗 编辑 我找到了一个使用while和beautiful
n = 1
next_page = subjects_links+'page/%d' % n+=1
但是给了我一个“无效语法”错误。不能同时使用%d和+=吗
编辑
我找到了一个使用while和beautifulsoup解析的解决方案:
while True:
next_page = soup_cat.find("a", class_="nextpostslink")
next_page_link = next_page.get('href')
print(next_page_link)
cat_list.append(next_page_link)
soup_cat = bs4(requests.get(next_page_link).text,'lxml')
这完全改变了执行的方式,但至少它是有效的。
n+=1
是一个,您正试图将其用作一个
以下方法确实有效:
n = 0
n += 1
print("page/%d" % n)
注意:我已经修改了示例,以便它可以自己运行您应该单独增加n,因为您通过执行n+=1来设置n的值,基本上是n=n+1。您可以在其他语言中使用n++,但我不确定Python是否支持它。由于Python 3.8,您将能够使用赋值表达式。n+=1是am赋值语句 n+=1 n = n +1
next_page = subjects_links+'page/%d' % (n := n+1)
n+=1
不是值,因此不能将其用作替换值。您可以使用(n+1)
,也可以分别递增n
。n+=1是赋值操作,不是JavaScript,在Python中,不能将赋值用作返回值的语句。在您的操作之前或之后,请在线执行n+=1。或者,如果您需要经常执行此操作,您可以滚动您自己的包装器类,提供一个递增和get
方法。还有,“n”来自哪里?这似乎是某种循环,可能是在一些结果集合上,所以也许您可以只使用enumerate
?写入n+=1并仅使用n将更容易阅读。这只会打印我的第一页,而不是其他七页,如果我进行:n=0 n+=1打印('page/%d'%n')
它不需要比一页多的页面,所以我需要从3.7升级到3.8?@Lara你不必。AFAIK 3.8正在开发中。您可以使用其他解决方案,尽管此解决方案稍微方便一些。