博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于 Python 当中式子 f1, f2 = f2, f1+f2 能否拆分成 f1 = f2 ; f2 = f1 + f2 的问题
阅读量:4230 次
发布时间:2019-05-26

本文共 660 字,大约阅读时间需要 2 分钟。

f1, f2 = f2, f1 + f2 不能拆成 f1 = f2 ; f2 = f1 + f2 。

原因:f1 = f2 ; f2 = f1 + f2 中第二个式右边的 f1 会使用第一个式子赋值更新后的值,但是f1, f2 = f2, f1 + f2 用的是初始赋值,也即这个式子 f2 的结果不依赖于 f1 = f2 计算的 f1 值,而是使用的 f1 = f2 赋值以前给 f1 的值。简单的说就是f1, f2 = f2, f1 + f2 中右边的值全是这个式子计算以前的初始值,但是拆成两个语句的话出现了先后执行的顺序问题,此时的情况就完全不一样了。

如果是f1, f2 = f2, f3 + f2这样的式子,也即拆分后的执行的第二个式子 f2 = f3 + f2 的运行结果不会受到第一个式子 f1 = f2执行结果的影响,那么拆成 f1 = f2 ; f2 = f3 + f2 是完全没问题的。

用Python写个实际的例子来进行说明:

f1 = 1f2 = 2f1, f2 = f2, f2 + f1print(f1, f2)f1 = 1f2 = 2f1 = f2f2 = f2 + f1print(f1, f2)

上式的运行结果为:

2 32 4

显然,通过实际程序的运行结果可知,f1, f2 = f2, f1 + f2 也是不能拆成 f1 = f2 ; f2 = f1 + f2 的。如果我的回答对你有帮助,那么我很庆幸你在看这篇小博客的时候并不算是浪费你的时间。赠人玫瑰,手留余香,祝你生活愉快。

转载地址:http://fsjqi.baihongyu.com/

你可能感兴趣的文章
嵌入式系统基础学习笔记(九):基于 SPI 协议在 0.96 寸 OLED上【平滑显示汉字】及【温湿度数据采集显示】
查看>>
嵌入式系统基础学习笔记(十):
查看>>
网络通信编程学习笔记(七):Java与MQTT
查看>>
人工智能与机器学习学习笔记(二)
查看>>
Peer-to-Peer with VB .NET
查看>>
Java Database Programming Bible
查看>>
Model Driven Architecture: Applying MDA to Enterprise Computing
查看>>
Pro Jakarta Commons
查看>>
Pro JSP, Third Edition
查看>>
LightWave 3D 8 Revealed
查看>>
The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics
查看>>
Operating Systems Design and Implementation (3rd Edition)
查看>>
Beginning Visual C# 2005
查看>>
Professional C# 2005
查看>>
Faster Smarter Beginning Programming
查看>>
The Essence of Object-Oriented Programming with Java and UML
查看>>
ROI of Software Process Improvement: Metrics for Project Managers and Software Engineers
查看>>
FileMaker 8 Functions and Scripts Desk Reference
查看>>
Web Security Field Guide
查看>>
Computer Animation: Algorithms and Techniques
查看>>