虽然我在学习pygame,但偶然发现了一行我不理解的代码:
if y == 0 or y == height-1: var1 *= -1
我理解if语句在python中是什么以及逻辑门的用法,我不明白的是if语句之后的一小段语句: “var1 * = 1”
有人可以解释这种语法吗?我不理解代码,并认为如果我们输入冒号以外的任何内容,它将返回语法错误。
答案 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)