• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于python多重赋值的小问题

python 搞代码 4年前 (2022-01-07) 17次浏览 已收录 0个评论

这篇文章主要给来源gaodaimacom搞#^代%!码&网大家介绍了关于python多重赋值的小问题,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

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

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

 a,b = 0,1 

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

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

 # Fibonacci series: a, b = 0, 1 while b <10: print b a, b, a + <pre></div><p>显然,运行结果是正确的:</p><blockquote>1<br /> 1<br /> 2<br /> 3<br /> 5<br /> 8<br /></p></blockquote><p>那么如果将代码改成这样呢? <br /></p><div class="gaodaimacode"><pre class="prettyprint linenums"> #Fibonacci series: a = 0 b = 1 while b <10: print b a + b<pre></div><p>运行结果是: <br /></p><blockquote>1<br /> 2<br /> 4<br /> 8<br /></p></blockquote><p>显然不正确。。。。</p><p>其实<strong>问题在于多重赋值操作是一个等号右边表达式会在赋值操作进行之前被完全解析的过程。</strong>也就是说,对于<br /></p><div class="gaodaimacode"><pre class="prettyprint linenums"> a, b = 0, 1

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

 a, b = b, a + b

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

总结

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

以上就是关于python多重赋值的小问题的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于python多重赋值的小问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址