关于Python的函数教程中的斐波那契数列示例

2024-02-28

这是什么they http://docs.python.org/2/tutorial/controlflow.html have:

def fib(n):
    a, b = 0, 1
    while a < n:
        print a,
        a, b = b, a+b

这就是我所拥有的:

def fib(n):
    a = 0
    b = 1
    while a < n:
        print a
        a = b
        b = b+a

第一个在使用时返回正确的序列,而我的则返回 0、1、2、4、8、16、32...

我目前正在学习编程(之前没有接受过计算机科学教育),很明显,问题在于我如何定义变量。用逗号分隔变量和用换行符分隔变量有什么区别(假设这是问题)?


这是一个元组赋值:

a, b = 0, 1

您也可以将其视为

(a, b) = (0, 1)

使用值创建临时元组0, and 1然后解压到变量上a and b

这也是一个元组赋值

a, b = b, a+b

同样,您可以将其视为

(a, b) = (b, a+b)

临时元组是根据以下值创建的b and a+b 在其中任何一个更新之前。分配只会发生after临时元组已创建。

通过将其分解为单独的步骤,您正在更改代码的含义。

让我们看看这里会发生什么

a, b = 0, 1        # a=0 , b=1
a, b = b, a+b      # a=1 , b=1

与之比较

a = 0              # a=0
b = 1              # a=0 , b=1
a = b              # a=1 , b=1
b = b+a            # a=1 , b=2 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于Python的函数教程中的斐波那契数列示例 的相关文章

随机推荐

  • 如何将 stderr out 和 stdout out 重新定义为单独的日志?

    如何使用日志记录模块重新定义 stderr out 和 stdout out 以单独记录文件 例如 stderr log 和 stdout log 文件 您可以简单地替换sys stdout and sys stderr使用自定义的类似文件
  • Firestore 强制用户编写 id 等于其自己的 uid 的文档的规则

    我想保证用户只能添加与其 auth uid 具有相同 id 的文档 例如 ID 为 1X0T6xC6hhRN5H02zLCN6SQtwby2 的用户只能创建 更新文档 salesmen 1X0T6xC6hhRN5H02zLCN6SQtwby
  • 如何为 Kubernetes 集群确定合适的 pod CIDR 值?

    我正在启动一个 kubernetes 集群 kubeadm init pod network cidr 192 168 1 0 16 apiserver advertise address 192 168 0 33 我对网络概念或 CIDR
  • Nuget.exe 安装 — Microsoft.CSharp 已经具有 System.Dynamic.Runtime 的依赖项

    我们通过 CI 构建中的 PowerShell 预构建脚本安装一些包 最近 我们收到了部分成功的电子邮件通知 其中提供了以下信息 Microsoft CSharp 已经具有为 System Dynamic Runtime 定义的依赖项 以下
  • YAML Jackson - 数组的锚键

    我正在尝试将 YAML 文件解析为对象 尽管 Online YAML 解析器告诉我它可以按照我想要的方式进行解析 但 Jackson YAML 解析器拒绝给我我想要的东西 这是 YAML 文件 nom service1 etats e1s1
  • 为什么 MultiMap 中不保留插入顺序?

    public class MultiMap Test public static void main String args Multimap
  • Spring MVC 预填充复选框

    首先是一些背景信息 获得了相当标准的用户角色关系 其中用户可以拥有多个角色 我将角色定义为用户类中的一组 现在我知道 html 表单将所有值都作为字符串 并且尝试获取值 因为我的自定义 Role 对象不起作用 我实现了一个 initbind
  • C2440 static_cast 无法从基类转换为派生类

    我试图理解为什么使用指针从基类到派生类的转换编译得很好 但使用非指针对象进行转换会产生错误 C2440 下面我有一个基类ThreadedMessage这是由类继承的GPSMessage struct ThreadedMessage Thre
  • 如何阻止 [Required] 注释在被覆盖的字段上被继承?

    我有一个电话号码通知模型 用户通过与帐户关联的电话号码收到紧急情况通知 并且可以设置呼叫的顺序 大多数时候 模型的电话号码部分是必需的 但在创建新用户时有一种特殊情况 我们不想强制它 我创建了一个非常简单的子对象 UserCreationP
  • 使用 e.stopPropagation() 防止事件冒泡的优点和缺点

    很多人都解释过e stopPropagation 防止事件冒泡 然而 我很难找到why人们首先想要或想要阻止事件冒泡 在我的网站上 我有许多元素 其名称如下 document body on click clickable function
  • 在 pandas 中加载带有二进制数据的 CSV 文件

    我正在尝试解析 CSV 文件 来自外部数据源 其中其中一列使用不一致的字符编码 我不想尝试让数据提供者使用一致的编码 而是只想将该列读取为二进制数据 然而 pandas read csv似乎在解析之前将整个文件解码为字符串 所以这给了我错误
  • 正则表达式包含某些单词但排除另一个单词

    我正在尝试编写一个正则表达式 它将检查 URL 是否包含某些单词并排除另一个单词 原因是我正在尝试跟踪通过我的网站的流量 并且我不想计算点击 谢谢 页面的任何人 例如 http www mywebsite com register now
  • 将字符串编码为字符代码

    我想将电子邮件地址编码为其相应的字符代码 因此在打印时 浏览器会解释字符代码 但机器人会获取编码的字符串而不是解释的字符串 例如 1 email protected cdn cgi l email protection 应按 2 发送到浏览
  • 鼠标悬停在 safari、selenium web 驱动程序中不起作用

    我在 FF 和 chrome 中使用鼠标悬停操作 它工作正常 但同样的代码在 safari 中不起作用 我正在使用 mac OS 和 selenium webdriver 和 java 我尝试了下面的代码 new Actions drive
  • 我可以向通过 MQTT WebSocket 连接的一组 Azure IoT 中心设备发送消息吗?

    Goal 将消息发送到一组通过 MQTT WebSocket 连接的 Azure IoT 中心设备 初步想法 让一组 IoT 中心设备 组 X 订阅主题 X 的消息 Problem On the 使用 MQTT 协议与 IoT 中心通信 h
  • 如何使用 watir-scroll 在表格内滚动

    我有一个应用程序 其中有一个动态表 仅当您向上或向下滚动时才会加载行 Watir scroll 正在滚动整个页面 我可以在该表中执行滚动吗 使元素可滚动通常是通过设置overflow风格 它很可能在一个div其中包含table 例如 div
  • C++ 仅标头包含模式

    我想在 hpp 中编写代码 而不将 h 和 cpp 分开 我做到了 我仅将 cpp 用于静态类字段定义 我不想手动编写 include 如果可能的话 我使用前向声明 我的每个 hpp 文件都包含 pragma 一次 但是 当我的项目增长到
  • Java:转换原始类[重复]

    这个问题在这里已经有答案了 Java中有没有一种简单的方法可以将原始类对象转换为对象类对象 给定一个类 Class cl 我想将其转换为没有基元的类 例如 Class
  • 在属性中实现逻辑是一个好习惯吗

    我们将 ASP NET 与 C 结合使用 根据我浏览过的开源项目 文章 我发现许多属性都包括logic但是当我这样做时 团队负责人告诉我 将逻辑放在属性中根本不好 而是通过方法调用逻辑 那真的很糟糕吗 为什么不在属性中使用逻辑 thanks
  • 关于Python的函数教程中的斐波那契数列示例

    这是什么they http docs python org 2 tutorial controlflow html have def fib n a b 0 1 while a lt n print a a b b a b 这就是我所拥有的