以上是生成斐波那契数列的代码,问最后一行是什么意思
并解释一下代码
最后一行的意思是,把back2的值赋值给back1, 再把back1+back2的和赋值给back2。
fib()函数是一个生成器函数,它的作用是,当每次调用next()方法,就可以返回这个函数计算出的当前项的斐波那契数列的值。
测试代码如下:
参考链接:
def fib(): # 生成器函数,用于返回当前项斐波那契数列的值
# https://www.codenong.com/41615756/
back1, back2 = 0,1 # back1赋值第一个值0,back2赋值为第二个值1
while True:
yield back1 # 返回back1的值,但是函数不会退出,等待下一次调用next()方法
# 下面的作用相当于,把back2的值赋值给back1, back1+back2的和赋值给back2
# back1 back2 back1+back2
# 1 1 2
# print("before: back1=",back1,",back2=",back2)
back1,back2 = back2,back1+back2
# print("after: back1=",back1,",back2=",back2)
fibNum = fib()
for i in range(0,11):
# https://blog.csdn.net/weixin_44992737/article/details/125860953
# https://qb.zuoyebang.com/xfe-question/question/b1565033a69fae0837095a71193fcdee.html
# 调用next()方法来获取一项斐波那契数列的值
print("斐波那契数列第"+str(i)+"项为:"+str(next(fibNum)))
yield就是生成器的语法,它每次返回一个,普通函数return就没了,它还会继续运行。
import requests # 数据请求模块 第三方模块 需要 pip install requests
import pprint # 格式化输出模块
import csv # 数据保存模块 csv表格
import time # 时间模块
# mode 保存方式 encoding 编码 newline 新队 wb保存二进制数据
f = open('烤肉.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
'店铺名称',
'人均消费',
'店铺评分',
'店铺类型',
'所在商圈',
'评论人数',
'维度',
'经度',
'详情页',
])
csv_writer.writeheader() # 写入表头