Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何阅读此python代码?var1=var2==var3_Python - Fatal编程技术网

如何阅读此python代码?var1=var2==var3

如何阅读此python代码?var1=var2==var3,python,Python,我正在努力理解这代表着什么 var1 = var2 == var3 if (var2 == var3): var1 = var2 我猜这相当于: if (var2 == var3): var1 = var2 赋值var1=var2==var3的工作原理如下: if (var2 == var3): var1 = var2 if var2 == var3: var1 = True else: var1 = False 如果您在REPL上计算表达

我正在努力理解这代表着什么

var1 = var2 == var3
if (var2 == var3):
     var1 = var2
我猜这相当于:

if (var2 == var3):
     var1 = var2

赋值
var1=var2==var3
的工作原理如下:

if (var2 == var3):
     var1 = var2
if var2 == var3:
    var1 = True
else:
    var1 = False
如果您在REPL上计算表达式
var2==var3
,您将得到
True
False
,具体取决于它们是否相等。在Python中,您可以将任何表达式分配给变量,因此在您的示例中,结果值将分配给var1

if (var2 == var3):
     var1 = var2
在Python中,a==b是一个表达式,而赋值
a=b
是一个语句。在许多语言中,这两种语言都是表达式——例如在Javascript中,您可以这样做(尽管不是很好的样式):

if (var2 == var3):
     var1 = var2
在Python中不允许这样做(SyntaxError):

if (var2 == var3):
     var1 = var2

争论引入了新的赋值运算符
:=
,这是一个表达式。

等式运算符
=
优先于
=
赋值。因此,这相当于:

if (var2 == var3):
     var1 = var2
var1 = (var2 == var3)  # Boolean
=
运算符本身将返回
True
False
;分配的就是这个值

if (var2 == var3):
     var1 = var2
var1 = var2 == var3
指:

if (var2 == var3):
     var1 = var2
  • 创建一个名为
    var1

  • if (var2 == var3):
         var1 = var2
    
  • 将其指定给真-假布尔值,即
    var2
    等于
    var3
    (使用
    =
    运算符)

  • if (var2 == var3):
         var1 = var2
    
    下面是一个例子:

    if (var2 == var3):
         var1 = var2
    
    >>> var2=1
    >>> var3=1
    >>> var2==var3
    True
    >>> var1 = var2==var3
    >>> var1
    True
    >>> 
    

    你的假设是错误的。您发布的代码如下:

    if (var2 == var3):
         var1 = var2
    
    var2 = 1
    var3 = 1
    
    var1 = var2 == var3
    
    #var1 is true because var2 and var3 are equal 
    

    第一个将返回
    true
    false
    ,而
    var1
    将表示此结果。不,它根本不等同于此结果。它将
    var2==var3
    的结果分配给
    var1
    啊,比我强:)@ViaTech这也经常发生在我身上,