Python单行while循环



在Python中,我试图在变量值小于另一个数字时使其递增。我知道以(print(x) for x in range(1, 5))的形式进行for循环是可能的。我的问题是,是否有类似的方法来以这种形式执行while循环,例如x += 1 while x < y

x = 0
y = 10
while x < y:
    x +=1
>>> x
10

好吧,你可以在一行中完成,因为Python允许:

x = 0
while x < y: x +=1

它不那么可读,也不符合PEP 8,但它是可行的。

您可以用分号分隔每条语句,如so…

x = 0; y = 5 while(x < y): print(x); x=x+1

您可以执行类似的操作

n = 0 
while n < 1000: rn += n if not (n % 3 and n % 5) else 0

您看到的是一个条件表达式,但它的代价是可读性降低

最新更新