变量已经定义了,但是报错说没定义

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在第二行就定义过了啊,,,

阅读 9.2k
1 个回答

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 所以显示负数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题