• 欢迎访问GanAHE的小创元世纪,技术交流与资源分享,欢迎加入GanAHE的小创元世纪🤪 微信公众号:星辰换日
  • 电影、教程、软件等分享资源请在本站或微信公众号合作平台:【星辰换日】获取。
  • 首页展示个人参与或独立开发的产品,更多功能在建中......🙆🏼天王盖地虎
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏本站吧🥺
  • 注册采用有效的邮箱,有助于及时收到评论回复、最新资源以及活动通知哟~✔🥳
  • 目前在逐渐打通微信小程序与网站之前的间隔~💻🏢

Python中a , b = b , a + b与a = b , b = a + b 的区别(超详细解答)

Python GanAHE 8个月前 (09-09) 60次浏览 已收录 0个评论
文章目录[隐藏]

在最近学的Python斐波那契数列(Fibonacci sequence)中遇到了这么一个奇怪的赋值计算方式,a , b =b ,a + b:

源代码如下:

import sys

def Fibonacci(k):
    a = 0
    b = 1
    count = 0
    while True:
        if(count > k):
            return
        yield a
        a,b=b,a+b
        count+=1

def testPrint(data):

  Fou = Fibonacci(data)  #注:F为yield生成器返回生成的迭代器,相当于iter()
  while True:
      try:
          print(next(Fou), end = "  ")
      except StopIteration:
          sys.exit()

testPrint(10)

输出结果如是:

D:Program FilesPython37python.exe" E:/python/LearnProject/FileOpration.py
0  1  1  2  3  5  8  13  21  34  55  
进程已结束,退出代码0

将以上源代码中a , b = b ,a + b 换成 a = b , b = a + b后,效果如下:

部分切换后的源代码:
在这里插入图片描述
结果如下:

"D:Program FilesPython37python.exe" E:/python/LearnProject/FileOpration.py
0  1  2  4  8  16  32  64  128  256  512  
进程已结束,退出代码0

分析

a = 0
b = 1
count = 0
初始赋值如上所示,count记录循环次数。
进入循环:

对于a , b = b ,a + b :

  1. 计算过程:首先计算b = b ,a + b,即 b = b = 1, a +b = 0 + 1 = 1 ;
  2. 接下来赋值: a = b = 1;
  3. 继续循环重复以上步骤,请拿出笔自行演算或参见以上输出结果。

    对于a = b , b = a + b :

  4. 这是最为常见的赋值计算式,计算过程:首先赋值 a = b = 1;
  5. 接下来计算: b = a + b = 1 + 1 = 2;
  6. 注意到这里两个式子结果已经不同,导致了以上第二次输出情况。
  7. 继续循环重复以上步骤,请拿出笔自行演算或参见以上输出结果。

更多资讯及资源分享,请扫描下方二维码交流:

在这里插入图片描述


GanAHE 的小创元世纪, 版权所有丨如未注明 , 均为原创丨本网站采用@BY-NC-SA协议进行授权
转载请注明原文链接:Python中a , b = b , a + b与a = b , b = a + b 的区别(超详细解答)
喜欢 (0)
[WeChat]
分享 (0)
关于作者:
网站的建设与维护者、DGZC的守护者
0 0 评分
都看完了,打个分儿叭~
通知
提醒
0 评论
内部反馈
显示所有评论
0
有什么想法吗,快来留下你的评论吧!x
()
x