Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.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
变量%d和+;=python中的运算符_Python_Python 3.x - Fatal编程技术网

变量%d和+;=python中的运算符

变量%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

我正在尝试用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和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正在开发中。您可以使用其他解决方案,尽管此解决方案稍微方便一些。