Python if语句冒号后的代码说明
在学习pygame时,我偶然发现了一行我不理解的代码: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 相当于
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操作链接