if语句冒号后的代码说明

时间:2017-12-02 13:53:09

标签: python python-3.x if-statement syntax

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

if y == 0 or y == height-1: var1 *= -1

我理解if语句在python中是什么以及逻辑门的用法,我不明白的是if语句之后的一小段语句: “var1 * = 1”

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

4 个答案:

答案 0 :(得分:5)

实际上没有规则在Python中冒号后你不能写东西。实际上,您也可以在if条件之后编写多个语句,例如:if True: print "foo"; print "bar"

但是出于文体原因,通常建议在冒号后的新行中写入。例外可能是块的内容非常简单且一行。

*=表示将左侧的变量分配给自身的值乘以右侧的表达式。

答案 1 :(得分: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

答案 2 :(得分:0)

var *= -1 

相当于

var = var * (-1)

所以这意味着var的符号会改变。

if condition: statement

相当于

if condition:
    statement

答案 3 :(得分:0)

一般

if condition is true:    
        statement
else:
    another statement

所以,根据你的陈述:

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