2013-08-27 73 views
0

我想說的是這樣的:環流式範圍根據病情

if switch == True: 
    for i in range(5): 
     # stuff() 
else: 
    for i in range(10): 
     # stuff() 

是否有此一更Python的方式?

+1

如果循環的整個主體只是一個簡單的函數調用'stuff()',你真的不會在這裏以任何重要的方式重複自己。如果循環體長且複雜......那麼你總是可以將它分解成一個函數。所以,雖然可能有(很好,是......)更簡潔或更可讀的解決方案,但這首先並不糟糕。 – abarnert

回答

8

conditional expression結合起來的一個:

for i in range(5 if switch else 10): 
    # do something with i 

你並不需要測試== True這裏; if已經爲您做到這一點。

一點更可讀的。將最終值分離成一個變量:

end = 5 if switch else 10 
for i in range(end): 
    # do something with i 
4

使用的if/else直列簡稱:

for i in range(5 if switch else 10): 
    # stuff()