2014-10-09 79 views
-1

我有麻煩搞清楚如何停止循環在我的代碼:洗髮週期循環

def shampoo_instructions(num_cycles): 
    for num_cycles in range(1,num_cycles+1): 
     if num_cycles < 1: 
      print 'Too few.' 
     elif num_cycles > 4: 
      print 'Too many.' 
     else: 
      print num_cycles, ': Lather and rinse.' 
    else:  
     print 'Done.' 

shampoo_instructions(2) 

我的輸出是:

1:泡沫和沖洗。

2:泡沫和沖洗。

完成。

我怎樣才能使它所以當shampoo_instructions(6)

它只是打印 「太多了。」

+0

你做你的範圍'range'內部檢查 - 把它放在'range'之外,那麼你知道它是安全的使用你的'range' ... – 2014-10-09 00:24:19

+0

Q.程序員是如何在淋浴中死亡的?答:他閱讀洗髮水瓶的說明:起泡沫。沖洗。重複。 – dawg 2014-10-09 00:29:02

回答

1

移動你的範圍檢查是你實際的循環外,如:

def shampoo_instructions(num_cycles): 
    if num_cycles < 1: 
     print 'Too few.' 
    elif num_cyles > 4: 
     print 'Too many.' 
    else: 
     for num_cycles in range(1,num_cycles+1): 
      print num_cycles, 'lather and rinse.' 
     print 'Done' 
+1

最好不要在循環中使用'num_cycles' – 2014-10-09 00:36:12

+0

@Padraic在這種情況下,它是不可變的,範圍有限,實際上它並不重要,但這是一個很好的觀點......如果原始的'num_cycles'值需要被保留是的,OP應該肯定在for循環中重命名爲「num_cycles」 - 很好的地方:) – 2014-10-09 00:38:53

+0

只發現它,因爲我在循環中使用break來得到奇怪的行爲;) – 2014-10-09 00:41:27