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方法中