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

问题描述 投票:-1回答:3

我正在尝试在python中创建一个模式。我需要拥有一组链接的所有页面(称为“subject_links”):ex。我有www.url / animal(www.url / animal / page / 1 ecc。)和www.url / plants(www.url / plants / page / 1 ecc)。我这样做了:

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')

这完全改变了这样做的方式,但至少它有效。

python python-3.x
3个回答
2
投票

从python 3.8开始,您将能够使用赋值表达式。 n + = 1是赋值语句。

next_page = subjects_links+'page/%d' % (n := n+1)

0
投票

n += 1是一个augmented-assignment-statement,你试图用它作为expression

以下工作:

n = 0

n += 1
print("page/%d" % n)

注意:我已修改了示例,因此它可以自行运行


-1
投票

您应该单独增加n,因为您要设置n的值

n+=1
which it is basically
n = n +1
. You could use n++ in other languages but I'm not sure that Python supports it.
© www.soinside.com 2019 - 2024. All rights reserved.