前言
分享一个使用您在Twitter上看到的海象操作员的示例,感觉非常有趣,代码是:
这个句子(a,b:= 2,3)特别令人困惑,尤其是在您写了《走了》的情况下,这种表达可能不是问题。但是,通过输出,您可以看到它不符合期望所有,那怎么了?让我们慢慢拆卸
为什么添加圆形支架
这个主题扩展了很多,涉及python语法,我们逐渐加深。
表达和语句之间的区别
我们编写的程序由一个或多个语句组成。语句是一行或多行代码的行,它是整个程序的独立单元。表达是一个特殊的句子,它只能包含标识符(字母,数字,下行等),字面卷(Python构建- 恒定类型,这样的变性,大于小于相等,不同或平衡等):
例如,上面的示例,1+2本质上是值的值(等于3),a = 1+2表示代码逻辑,没有值,它只是一个分配语句
作业表达和分配声明
我们正在观看一个例子:
其中,X = 1是一个分配语句,它将将特定值(1)设置为特定的存储地址。该位置标记为特定变量名称(x)。(y:= 2)是一个分配表达式,它增加了值的值,而不是分配语句的值,即结果(2),因此您可以看到输出:2输出。
这是没有圆括号的语法错误:
这是因为在Python语言中,分配表达式和分配陈述是不同的语法。以下两种方法是正确的语法:
同样,以下代码也是语法错误:
因此,您不能直接认为:=操作操作员替换=操作员,必须添加一个括号来使用声誉的值来给出一个值。
将作业语句转换为表达式的问题
刚刚,分配表达式和分配语句语法不同。该设计是因为很容易将现有的作业语句转换为表达式。这在C语言中很明显。例如:
这是一个合规代码,但是(x = y)将导致x重新分配到y值,以使该判断是正确的。输出结果是Xandy相等(x = 8,y = 8)。原因是该代码不用于比较操作==,此错误是隐藏的,并且当前的编程语言(例如Python或GO)直接直接清楚抛出语法错误:
可以实现此逻辑,而不是使用正确的海象操作员(尽管没有必要):
为什么写句子(a:= 1)
答案在这里。这条蛇的重点是该混乱代码的问题。实际上非常简单,请尝试将其删除:
换句话说,此代码本身是错误的。实际上,此语句代表组组。他有三个要素,即a,b:= 2,3。据说没有定义a,当然,我没有以前分配A. ipython的执行:可以理解:
输出实际上是返回输入数据的结果。结果,第三个是文字卷3。
以上是该共享的所有内容。如果您想了解更多信息,请转到公共帐户:Python编程学习圈,每日干货共享
原始:https://juejin.cn/post/7100763933618733093