SyntaxError: can't assign to function call

SyntaxError: can't assign to function call

import requests
from bs4 import BeautifulSoup

def spider(maxalphabet):
    alpha = 'A'
    while ord(alpha) <= ord(maxalphabet):
        url = 'http://djpunjab.us/m/page/punjabimusic/'
        source_code = requests.get(url)
        plaintext = source_code.text
        soup = BeautifulSoup(plaintext)
        for link in soup.findAll('a'):
            href = link.get('href')
            print(href)

        ord(alpha) += 1          # line no.14


spider('A')

为什么第 14 行显示错误

您不能分配给 ord(alpha),不能。如果您想获得字母表中的下一个字母,您将需要做更多的工作:

alpha = chr(ord(alpha) + 1)

从当前字符的序号加一创建一个新字符。

更多的 pythonic 将在循环中使用 string.ascii_uppercase string

import string

# ...

for alpha in string.ascii_uppercase:

这将对 ASCII 标准中的所有大写字母循环一次;如果您需要在某些时候将循环限制为 maxalphabet,或者使用数字限制(0 到 26 之间)并使用切片,您始终可以使用 break。但是,您甚至没有在循环中的任何地方 使用 alpha 变量。