2016-05-01 123 views
0

在Python中,我试图做一个可变的增量值,而它比另一个数字小。我知道有可能以(print(x) for x in range(1, 5))的形式执行for循环。我的问题是,有没有类似的方式做while循环这种形式,如x += 1 while x < yPython单行while循环

+0

您所描述的是一个生成器表达式,仅适用于 – njzk2

+0

好的。这很好。 – Ranger

+0

我的第一印象是你在问[后测循环](https://en.wikipedia.org/wiki/Do_while_loop)。 – pasztorpisti

回答

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

>>> x 
10 

那么你可以做一个单一的线,因为Python允许认为:

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

它不是为可读,这不符合PEP 8,但它是可行的。

+0

这可行,但我想在一行中完成。如果这是不可能的,但是,我会接受这一个。 – Ranger

+0

哦,是的,我从来没有想过......好吧,我得等上十分钟才能接受。 :( – Ranger

0

您可以将每个语句,像这样一个分号隔开......

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

1

你可以做这样的事情

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

你们看到的是一个conditional expression但它以降低可读性为代价