2017-03-17 80 views
0

我是python3全新的。我需要寫一些簡單的過程如下。但想知道是否有任何我可以簡化下面的代碼?簡化Python代碼while循環,如果條件

def dosomething (i): 
    print(i); 

n = 12 
i = 1 
while n > 0: 
    if i == 6: 
     i = 5 
    dosomething(i) 
    i += 1 
    n -= 1 
+1

這個問題屬於棧中的其他網站交換網絡:http://codereview.stackexchange.com/ – MarsAtomic

回答

1

目前尚不清楚你想用這個例子,或者如果你的常量是顯著做什麼,但這裏有一個方法,創建相同的輸出有點更簡單:

def dosomething (i): 
    print(i); 

n = 12 
i = 1 

for j in range(1, 6): 
    dosomething(j) 

for k in range(n - 5): 
    dosomething(5) 

一般,如果迭代次數是事先知道的,你應該用for循環來表示它,而不是while循環。

+0

我想我從1,2,3,4,5,6,5,6,7,8,9,10,...等等 – jacobcan118

+0

好的。代碼中其他值的意義仍然不清楚,但如果你只是想讓'i'在循環中接受這些值,'for'循環就是你想要的。在這種情況下,'對於範圍(n)中的我:dosomething(i)'與您現在描述的最接近。這有幫助嗎? –

+0

是的,謝謝。事實證明,我在範圍(12)中使用'n:',如果其他條件將我傳遞給dosomething函數。 – jacobcan118

0

這會工作,簡化了while循環到一個for循環:

i = 1 
for n in range(1, 13): 
    if i == 6: 
     i = 5 
    dosomething(i) 
    i += 1 

,如果你正試圖避免的DoSomething(6):

for n in range(1, 13): 
    if n != 6: 
     dosomething(n)