gpt4 book ai didi

关于python多重赋值的小问题

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章关于python多重赋值的小问题由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

前言 。

今天无意中发现在python中的一个多重赋值的小问题,自己一开始是比较简单化的理解了这个多重赋值操作的概念,所以导致在一道实现斐波那契数列的代码中,发现了自己的问题,顺便记录下吧,当作是学习总结.

首先是python的多重赋值操作,先用一个直观的代码来看:

?
1
a,b = 0 , 1

上述就是一个最简单的多重赋值操作,这个赋值操作的作用是将赋值操作 = 右侧的对象逐一赋给左侧的对象,所以这个操作结果是a对象的值为0,b对象的值为1,这点很好理解.

然鹅,如果是下列的代码呢?

?
1
2
3
4
5
# Fibonacci series:
a, b = 0 , 1
while b < 10 :
  print b
  a, b = b, a + b

显然,运行结果是正确的:

1 1 2 3 5 8 。

那么如果将代码改成这样呢?

?
1
2
3
4
5
6
7
#Fibonacci series:
a = 0
b = 1
while b < 10 :
  print b
  a = b
  b = a + b

运行结果是:

1 2 4 8 。

显然不正确。。。.

其实问题在于多重赋值操作是一个等号右边表达式会在赋值操作进行之前被完全解析的过程。也就是说,对于 。

?
1
a, b = 0 , 1

变量a和b是同时获得新的值0和1。而对于 。

?
1
a, b = b, a + b

说明等号右边的表达式在赋值之前首先被完全解析。右侧表达式是从左到右计算的。在赋值完成之前,a+b的操作是已经完成了表达式的计算结果了的,所以,如果将 a,b = b, a+b 等同于 a = b,b = a+b 是完全不正确的.

总结 。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我的支持.

原文链接:https://blog.csdn.net/JewelCCL/article/details/79187469 。

最后此篇关于关于python多重赋值的小问题的文章就讲到这里了,如果你想了解更多关于关于python多重赋值的小问题的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com