该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

这个是python独有的赋值方法 萌新不懂很正常啦

这个叫做“元组赋值法” 他会把前后两个部分当成一个元组去操作 所以在赋值过程中值不会改变 只有结束赋值后才会改变

什么意思呢 也就是说逗号前面和逗号后面赋值是【同时发生】的

举个例子

a=1

b=0

a, b = a+1, a+1

最后的结果是a和b都是2

然而如果你先a = a+1 再a = b+1 那么结果是a为2 b为3 因为这一串操作时先a后b的 而元组赋值法可以视为是【同时发生】的赋值行为

这种赋值方法可以免除我们很多的麻烦 最简单的例子就是:交换变量

以前听过一个笑话 说3个程序员 两个是学c系列语言的 还有一个是学python的 他们讨论怎么交换变量的值

普通c语言程序员写到(c的语法和python不一样 但是类似 第一行等价于def swap(a, b):):

void swap(int &a, int&b){

temp = a;

a = b;

b = temp;}

二逼c语言程序员写到:

void swap(int &a, int&b){

a = a^b;

b = a^b;

a = a^b;}

python程序员写到:

def swap(a, b):

a, b = b, a

可以看出 有了元组赋值法 其他语言至少需要3行的交换行为现在只需要1行就ok了

另外有人可能不大明白 明明没有括号 为什么他们还是元组呢?

我这里再重申一遍 元组的关键字(就是看到他就知道他是元组 比如列表的关键字是[] 字典是{})不是小括号 而是逗号

你可以尝试一下如下的代码

a = 1, 2

type(a)

返回的结果是 意思是:元组

【进阶】

那么为什么元组赋值法在过程中变量不改变呢?

首先我们补全一下这行代码(以你的代码为例):

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

好的 现在前后都是一个元组了

但是我们还是不明白 那我们把他拆开来

首先前面是一个元组:

tuple1 = (a, b)

后面也是一个:

tuple2 = (b, a+b)

假设a和b分别为1、2

那么现在

tuple1 → (1,2)

tuple2 → (2, 3)

然后我们进行赋值操作

tuple1 = tuple2

这就是结果了吗 不是的 因为tuple1是我们虚构出来的“临时变量” 并不是程序员可以直接使用的变量

于是我们还原回去

a = tuple1[0]

b = tuple1[1]

完美 这就是为什么我们称它【赋值是同时发生的】了

学完这些 机制的你会发现我们最后的赋值其实可以这么写

a, b = tuple1

这就是python简洁的妙处

“人生苦短

我用python”

——Bruce Eckel

python input函数赋值法_大佬们 我是刚开始学python的小白 遇到这种赋值方式 实在不懂这个a+b是赋值给谁的 求解...相关推荐

  1. python赋值法例子_大佬们 我是刚开始学python的小白 遇到这种赋值方式 实在不懂这个a+b是赋值给谁的 求解...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 这个是python独有的赋值方法 萌新不懂很正常啦 这个叫做"元组赋值法" 他会把前后两个部分当成一个元组去操作 所以在赋值过程中值不 ...

  2. python input函数详解_对Python3中的input函数详解

    下面介绍python3中的input函数及其在python2及pyhton3中的不同. python3中的ininput函数,首先利用help(input)函数查看函数信息: 以上信息说明input函 ...

  3. python有什么用处案例_为什么大家都推荐你学python?看完这5个例子就明白了!...

    为什么大家都推荐你学Python?而不是C语言或者是JAVA呢? 因为-- python很灵活,一定程度上函数也可以传参和注入,所以代码的灵活性要大的多. python自带了函数的curry化以及迟滞 ...

  4. python开课吧官网_开课吧老师详解 学Python真的可以帮助提高办公效率吗

    在工作中你是否有过这样的经历?周围的同事看上去貌似没有做什么事情,每天准时下班;你呢兢兢业业做着本职工作,努力完成领导布置的每一项任务,常常加班到很晚才走.可是最后你身边的那个同事反而深得领导喜爱升职 ...

  5. python数独伪代码回溯法_数独的暴力回溯解法和Python GUI

    数独起源于18世纪初瑞士数学家欧拉等人研究的拉丁方阵,20世纪70年代,经过美国及日本学者的推广和改良,定名为数独(Sudoku),大致的意思是"独个的数字"或"只出现一 ...

  6. python遍历数组冒泡排序法_十种排序七种搜索算法的Python实现——气泡排序,十大,七大,查找,python,冒泡排序,bubblesort...

    一.十大排序算法 数据准备 使用random库随机生成无序数组 import random def random_list(start, end, number): temp = [] i = 0 w ...

  7. Python input 函数 - Python零基础入门教程

    目录 一.前言 二.Python input 函数简介 三.Python input 函数实战 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pyth ...

  8. Python input 函数 -Python零基础入门教程

    目录 一.前言 二.Python input 函数简介 三.Python input 函数实战 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pyth ...

  9. [转载] Python input()函数

    参考链接: Python input() 描述: Python input()函数用于接受一个标准输入数据 语法: input([prompt]) 参数介绍: prompt ---提示信息.需要注意的 ...

最新文章

  1. R使用深度学习LSTM构建时间序列预测模型
  2. 在Python中使用正则表达式去掉字符串里的html标签
  3. phpcms下的邮箱设置
  4. 如何做好一个开源项目(一)
  5. wampserver 虚拟主机
  6. JavaScript学习笔记(十)构造函数封装、对象检测、对象继承
  7. NumSharp v0.6.5 .NET矩阵计算库,与TensorFlow.NET无缝融合
  8. github (远端建立分支....配置见github 官网配置)
  9. python自学网站-自学Python网站推荐 从入门到精通
  10. 汪学明导师—商业模式创新与转型专家
  11. 【证明】—— 矩阵秩的相关证明
  12. 基于Matlab使用雷达和摄像头对公路车辆跟踪仿真(附源码)
  13. [渝粤教育] 南开大学 面向对象程序设计 参考 资料
  14. 全国海关分区图(含副厅)
  15. GGS-DDU(最小树形图)
  16. 电商“论贱”血拼 传统书店该何去何从
  17. 拉勾网离职风波引人深思 互联网招聘网站还有未来吗?
  18. 抖音做外卖会颠覆美团吗?
  19. Ubuntu下安装显卡和cuda
  20. 卷积神经网络之前向传播算法

热门文章

  1. css文件的MIME错误引发的Jquery Mobile绘制错误
  2. 静态NAT技术三部曲
  3. 这几天又看了Gosu,发现也是蛮有意思
  4. 人生财富值得珍藏的文字
  5. 2008年4月10日:超负荷的一天
  6. python 实现感知器(一)
  7. 验证视图状态 MAC 失败的解决办法
  8. jQuery中each的break和continue
  9. android blockcanary 原理,blockCanary原理
  10. mysql数据库系统配置文件_跟我学虚拟机系统平台相关技术及应用——在CentOS系统中的MySql数据库系统配置文件中进行配置定义...