【发布时间】:2022-10-06 06:54:29
【问题描述】:
我对 Python 比较陌生。我尝试做的是将这个综合列表转换为普通的 if, else 语句。
def draw(self):
self.value = choice(green_chars)
self.y = self.y + self.speed if self.y < 1080 else -40 * randrange(1, 5)
screen.blit(self.value, (self.x, self.y))
到目前为止,我已经尝试过:
self.value = choice(green_chars)
if self.y < 1080:
self.y = self.y + self.speed
else:
-40 * randrange(1, 5)
screen.blit(self.value, (self.x, self.y))
但它不起作用。
-
您忘记在 else 语句中分配值
-
您还需要在 else 子句中分配 self.y 。
-
“综合列表”是指条件表达式吗?
-
旁注:这里不涉及
lists。 Python中没有“综合列表”这样的术语(我觉得你的意思是“列表理解”)。原始代码包含一个条件表达式(有时称为“三元运算符”,采用value_on_true if conditional else value on false的形式),您将其转换为带有附加else语句的普通if语句,但条件表达式与列表推导无关(您可以串联使用它们,但结果通常很丑陋)。 -
@chepner:我怀疑他们的意思是“列表理解”,认为任何以
if作为表达式而不是语句的一部分的东西都是一个 listcomp,不理解条件表达式完全是另外一回事(恰好包括 @ 987654328@ 在语句级别也是如此)。
标签: python python-3.x