python - Python Fibonacci Generator,解释语法
问题描述
我找到了斐波那契生成器的 Python 代码,但并不完全理解。有人可以a, b = b, a + b
特别解释一下吗?
a = int(input('Give amount: '))
def fib(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
print(list(fib(a))
它是如何工作的?
解决方案
这行代码的工作原理是创建一个元组,然后对其进行解构以一次分配两个变量。结果是左侧 和 都分配了右侧表达式的结果,这些表达式是使用 和 的原始值a
计算的。b
a
b
右边的表达式b, a + b
等价于(b, a + b)
,即它创建一个包含两个组件的元组。
左侧的赋值目标a, b
相当于(a, b)
,即它同时赋值给两个变量,分别使用元组中两个分量的值。这称为解构赋值。
这很方便,因为如果两个赋值是分开编写的,如下面的代码,那么它就不会产生预期的效果。第一行更改a
了 的值,然后新值将(错误地)用于计算b
:
# WRONG!
a = b
b = a + b
推荐阅读
- pdf - SharePoint 2016 中的 PDF 表单
- api - Pokémon GO raid boss API
- kotlin - Intellij-IDEA 中哪个目标 JVM 设置优先?
- python - 是否可以在 Python Kivy App 中动态设置文本的大小?
- javascript - 如何在html中显示文件内容?
- php - 如何在 Codeigniter 4 中使用多列检查 UNIQUE 已提出问题,但该问题没有合适的答案
- javascript - 如何让 Node.js 接受 css 导入?
- python - 如何修改此代码为水平线设置不同的颜色?
- reactjs - Swiper React 如何使用 Typescript 在悬停时停止和开始自动播放
- python - 如何将包含三个元素的元组转换为包含一个键和两个值的字典?