【发布时间】:2021-09-06 09:02:05
【问题描述】:
我可以这样做:
if maxoksum > 0: R = maxoksum
但如果我尝试非常类似的事情:
if oksum % 3 == 0: if oksum > maxoksum: maxoksum = oksum
我得到语法错误:
if oksum % 3 == 0: if oksum > maxoksum: maxoksum = oksum
^
SyntaxError: invalid syntax
我做错了什么?如果在一行中,有什么办法可以开始工作吗?
【问题讨论】:
-
为什么必须是单行?为什么不能把这两个条件和
and结合起来? -
没有办法把它全部放在一条线上。单行
if用于单个语句。但是你想要一个嵌套的if。这需要一个块。而且你不能在一行上放置一个块。如果你必须做一行(为什么?)然后使用and: if oksum % 3 == 0 and oksum > maxoksum: maxoksum = oksum -
你做错了什么是期望它工作。它不起作用,仅此而已。你不能在一行上做。
-
可以说
if..: if..: ..可以工作,但if..: foo if..: bar或if..: if..: .. else:在语法上已经不可能消除歧义,因此根本不可能编写任何这样的复合块语句. -
@deceze,谢谢你的解释,现在我完全理解了。我不想使用
if condition1 and condition2: ..,因为我不想在condition1 = false 时检查condition2。当条件 1 很简单并且条件 2 像 is_prime(非常大的数字)一样时,这变得非常合理。
标签: python if-statement syntax syntax-error