| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python多变量同时赋值——以斐波那契数列为例 -> 正文阅读 |
|
[Python知识库]Python多变量同时赋值——以斐波那契数列为例 |
1 引入——斐波那契数列笔者在尝试编写斐波那契数列程序时,看到一个版本的Python实现,代码如下:
在这里给不知道斐波那契数列(Fibonacci sequence)的小伙伴科普一下:
这里的赋值语句 如果将其拆开的直接写成如下代码的话,结果是错误的
因为通过第一步
但是这样修改不如示例代码简洁,所以我决定研究一下Python对于这种赋值语句的原理。 2 表达式列表经过查阅Python语言参考文档,我找到了这种表示方法,叫做表达式列表 (Expression list)。 文档原文:
原文代码块使用的是一种BNF范式(Backus-Naur form / Backus normal form),是一种描述计算机语法规则的元语言。Python文档使用的是一种修改的BNF范式,在这里简单介绍一下Python使用的BNF范式语法,帮助大家更好的理解Expression List及相关概念。 BNF范式语法:
介绍完BNF范式语法,看一下expression_list
可以证明expression_list就是我们想要的形如 文档中提到:除了作为列表或者集合显示的一部分(例:[2, 3]),包含至少一个逗号的表达式列表会生成一个元组,元组长度为列表中表达式的数量,表达式将从左至右进行求值。 通过代码进行验证:
3 赋值语句看完了表达式列表,接下来看一下赋值语句 (assignment statements). 文档原文:
表达式列表可以是单一表达式,也可以是逗号分隔的列表(我们着重研究的对象),后者会生成一个元组(这和我们在上文中得到的结论相同),将结果从左到右赋值给目标列表。 对这种赋值方式的详细解释:
赋值语句看起来像是右边所有元素同时赋给左边,但实际上赋值是从左至右的。 文档中给出的例子:
右侧是一个表达式列表 首先将1赋给i,其次将2赋给x[i],因为此时i=1,所以x[1]等于2,所以最终结果为 解释斐波那契数列的例子:
以第一次循环为例, 按顺序将元组第一个值赋给 通过这样的赋值语句,成功将原来的 本文是本人通过查找阅读Python文档得出的结论,如有不正之处,欢迎大家批评指正。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/25 14:08:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |