Python学习笔记

python 中遇到的问题总结:

  • 在函数外定义了变量,函数内直接使用出错

UnboundLocalError: local variable 'sum' referenced before assignment

sum = 0
def mun(a):
    global sum   #函数中赋值默认是局部变量
    for i in range(a):
        sum +=i
    print(sum)

直接使用时 python解释器会认为sum 是局部变量而非全局变量,所以直接进行赋值运算会出现未被定义的错误,可以使用global 关键字,声明sum为全局变量。

  • 字符串格式化输出的2种方式 : f/F或format()
F"字符串的内容{变量名}"
"string{0}".format(变量名)
  • 问题missing 1 required positional argument
  • get() takes from 1 to 2 positional arguments but 3 were given
class HttpRequest:
    """利用request 封装get和post请求"""
    def __init__(self):
        pass

    def http_request(self,url,data,method,cookie=None):
        '''
        url:请求地址
        data:传递的参数(param) 非必填参数,字典格式进行传递
        method:请求的方式(get / post)
        cookie:请求的时候传递的cookie值
        '''
        if method.lower() == "get":
            res = requests.get(url, data, method, cookies=cookie)
        else:
            res = requests.post(url, data, cookies=cookie)
        return res
        # res = requests.get(url,headers = {})
if __name__ == "__main__":
    url = "http://apis.juhe.cn/xzpd/query"
    # header = {'User-Agent': 'Mozilla/5.0'}  # 伪装请求代理
    data = {'men': '双鱼', "women": "白羊", "key": "c923784e59046499e672bd917e..."}
    res = HttpRequest.http_request(url, data, "get")
    print(res.json())
    print('状态码:', res.status_code)
    print('代理 user-Agent:', res.request.headers)  # 请求头

错误地方修改:

res = HttpRequests().http_request(url,data,"get")

 if method.lower() == "get":
      res = requests.get(url, data, cookies=cookie)
  • python实例化时(创建类对象)需要在类名后面加上括号,不然会报错
  • 请求方式不需要写在get方法中
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容