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