发布于 4年前

变量未定义 NameError: name 'download_page' is not defined

def save_content(data_num,data_big,data_all):
 download_page = 100 * data_num * data_big / data_all
if download_page > 100:
    download_page = 100
print "%.2f%%" % download_page

为什么报错 NameError: name 'download_page' is not defined

明明在第二行就定义过了啊 download_page,求解。

解决方案:

python 使用缩进表示语句块,改成下面这样

def save_content(data_num,data_big,data_all):
    download_page = 100 * data_num * data_big / data_all
    if download_page > 100:
        download_page = 100
    print "%.2f%%" % download_page

你请求的 url 响应头里面没有Content-Length 字段,urllib.urlretrieve(url[, filename[, reporthook[, data]]]) 的第三个参数 reporthook 是一个回调函数,这里就是 save_content 这个函数。

data_all 这个参数对应 Content-Length 的值,由于没有定义,默认为 -1 所以显示负数。

©2020 edoou.com   京ICP备16001874号-3