斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
def F(n):
if n 1 or n2:
return 1
return F(n-1)+F(n-2)
求一个list的最大值和最小值,用递归的方法。返回值是一个元组,(max,min)
def my_maxmin(L):
if len(L)<=0:
print('输入有误!列表不能为空!')
return None
return maxMin(L,0,len(list_)-1))
def maxMin(L,start,end):
if end-start <=2:
return (max(L[start],L[end]),min(L[start],L[end]))
max1,min1 = maxMin(L,start,(start+end)//2)
max2,min2 = maxMin(L,(start+end)//2+1,end)
return (max(max1,max2),min(min1,min2))
list_ = [11,22,43,-10,33,28,90]
print(maxMin(list_,0,len(list_)-1))
1、python模块的名字非常重要,一定要记住响应功能的导包语句。
2.requests模块get请求
步骤:
1.导包
import requests
2、确定请求的url
base_url = ''
3.发送请求,获取响应。
response = requests.get(
url = base_url,#请求的url
headers={},请求头
params = {},请求参数字典
)
4.response这个对象包含的内容都有以下几个:
(1)状态码:
response.status_code
(2)响应头
response.headers['Cookie']
(3)响应正文
1.获取字符串类型的响应正文
response.text
2.获取bytes类型的响应正文
response.content
3.响应正文字符串编码
response.encoding
(4)响应内容的乱码问题:
当我们用response.text获取字符串的响应正文的时候,有时候会出现乱码:
原因是response.encoding这个字段默认指定编码有误。
解决办法就是你手动指定
response.encoding = ‘utf-8’
另一种办法:
response.content.decode('utf-8')
get请求的项目类别:
1.没有请求参数的,比如百度和百度产品这两个项目,我们只需要添加请求头,分装
user-agent这个请求头就可以了。
2.带请求参数的。比如新浪新闻这个项目
基础url就是问号以前包括问号的内容。
设置请求参数字典:
params = {
字典的内容就是chrome里面query string params里面的内容
}
3.分页---百度贴吧
方法:
1.先找出分页的规律。一般是通过params参数中的其中一个参数来控制的。
2.找到这个参数每一页的规律。
3.用for循环来请求每一页的内容。
2.requests模块的post请求。
response = requests.post(
url,
headers = {},
data={},请求数据字典
)
post请求一般得到响应内容是json数据。
处理json数据用到的模块就是json模块。
json数据就是本质上就是字符串。
json.dumps(python的list或者dict)---->(返回值)---->json字符串。
json.loads(json字符串)------>(返回值)----->python的list或者dict.
response.json()---->可以直接将获取到的json字符串转化成python的list或者dict.
处理post请求的请求参数怎么解决换了请求参数就请求不到的问题?
也就是post请求的内容主要解决请求参数,就可以获取数据了。
思路就是
1、比对。比对data字典,哪些参数是不一样的。
2.想办法找到这些参数的生成原理。
一些参数可以存放:
1.页面中。–都是固定写死。
2.js中动态生成参数。
3.可以通过ajax来获取一些

本文探讨了递归算法的应用,包括斐波那契数列的递推定义及其实现,以及如何使用递归方法寻找列表中的最大值和最小值。
2157

被折叠的 条评论
为什么被折叠?



