While loop one-liner

后端 未结 3 1737
星月不相逢
星月不相逢 2020-12-10 16:14

Is it possible for to have a python while loop purely on one line, I\'ve tried this:

while n<1000:if n%3==0 or n%5==0:rn+=n

But it produ

3条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-10 16:42

    When using a compound statement in python (statements that need a suite, an indented block), and that block contains only simple statements, you can remove the newline, and separate the simple statements with semicolons.

    However, that does not support compound statements.

    So:

    if expression: print "something"
    

    works, but

    while expression: if expression: print "something"
    

    does not because both the while and if statements are compound.

    For your specific example, you can replace the if expression: assignment part with a conditional expression, so by using an expression instead of a complex statement:

    while expression: target = true_expression if test_expression else false_expression
    

    in general, or while n<1000: rn += n if not (n % 3 and n % 5) else 0 specifically.

    From a style perspective, you generally want to leave that one line on it's own, though.

提交回复
热议问题