Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.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 if语句冒号后的代码说明_Python_Python 3.x_If Statement_Syntax - Fatal编程技术网

Python if语句冒号后的代码说明

Python if语句冒号后的代码说明,python,python-3.x,if-statement,syntax,Python,Python 3.x,If Statement,Syntax,在学习pygame时,我偶然发现了一行我不理解的代码: if y == 0 or y == height-1: var1 *= -1 我了解python中的if语句和逻辑门的用法,但不了解if语句后面的一小段语句: var1*=1 有人能解释一下这个语法吗?我不理解代码,并认为如果我们键入冒号以外的任何内容,它将返回语法错误 var *= -1 相当于 var = var * (-1) 这意味着var的符号会改变 相当于 if condition: statement 相当于

在学习pygame时,我偶然发现了一行我不理解的代码:

if y == 0 or y == height-1: var1 *= -1
我了解python中的if语句和逻辑门的用法,但不了解if语句后面的一小段语句: var1*=1

有人能解释一下这个语法吗?我不理解代码,并认为如果我们键入冒号以外的任何内容,它将返回语法错误

var *= -1 
相当于

var = var * (-1)
这意味着var的符号会改变

相当于

if condition:
    statement
相当于

var = var * (-1)
这意味着var的符号会改变

相当于

if condition:
    statement

实际上,Python中没有一条规则规定不能在冒号之后编写内容。事实上,您也可以在if条件之后编写多个语句,比如:if-True:printfoo;打印栏

然而,出于文体原因,一般建议在冒号后写一行。例外情况可能是当块的内容非常简单且只有一行时


*=意味着将左边的变量赋值为其自身的值乘以右边的表达式。

实际上,Python中没有不能在冒号后写入内容的规则。事实上,您也可以在if条件之后编写多个语句,比如:if-True:printfoo;打印栏

然而,出于文体原因,一般建议在冒号后写一行。例外情况可能是当块的内容非常简单且只有一行时

*=表示将左边的变量赋值为其自身值乘以右边的表达式。

通常

if condition is true:    
        statement
else:
    another statement
因此,根据你的陈述:

if y == 0 or y == height-1:
    var = var * (-1)
大体上

if condition is true:    
        statement
else:
    another statement
因此,根据你的陈述:

if y == 0 or y == height-1:
    var = var * (-1)

我们可以在冒号之后写东西。另一个常见的方法是使用分号来链接操作或导入。但是,这些语法对于可读性是非常不鼓励的。我会这样写:

if (y == 0 or y == height-1):
    var1 *= -1
或者,如果您有更复杂的关系:

cond1 = (y == 0)         # explanation1
cond2 = (y == height-1)  # explanation2

if (cond1 or cond2):
    var1 *= -1

我们可以在冒号之后写东西。另一个常见的方法是使用分号来链接操作或导入。但是,这些语法对于可读性是非常不鼓励的。我会这样写:

if (y == 0 or y == height-1):
    var1 *= -1
或者,如果您有更复杂的关系:

cond1 = (y == 0)         # explanation1
cond2 = (y == height-1)  # explanation2

if (cond1 or cond2):
    var1 *= -1

这只是把两个声明放在同一行,这是合法的。如果var1。。。零件在下一行?x*=y等于x=x*y。对于某些类型,在实现上有一些细微的差异,但在这个阶段,您可能不需要担心这个问题。名称效果:var1=-var1。这只是将两个语句放在同一行上,这是合法的。如果var1。。。零件在下一行?x*=y等于x=x*y。对于某些类型,在实现上有一些细微的差异,但这可能不需要在这一阶段担心。名称效果:var1=-var1。这不是我的意思,我问的是一般的整行。这不是我的意思,我问的是一般的整行,我明白了!,知道这一点很有帮助-可以稍微整理一下代码。谢谢分号有它的局限性。只有简单语句才能用分号连接。我有点惊讶它居然还存在于Python3中,并且非常怀疑如果现在从头开始定义该语言,它是否会被添加。哦,我明白了!,知道这一点很有帮助-可以稍微整理一下代码。谢谢分号有它的局限性。只有简单语句才能用分号连接。我有点惊讶它居然还存在于Python 3中,并且非常怀疑如果现在从头开始定义该语言,它是否会被添加。为了理解,你能给我一个链式操作的例子吗?@Blueboy90780可能是个错误的词。我在一行上想到了类似的东西:print1;打印2;打印3操作链接仅供理解,你能给我一个链接操作的例子吗?@Blueboy90780可能是个错误的单词。我在一行上想到了类似的东西:print1;打印2;print3操作链接