2013-02-20 73 views
0

我的(簡單)代碼在最後一行出現錯誤。我究竟做錯了什麼?打印號碼,不明白錯誤

問題:

循環並在他們收到同樣的順序打印出所有甚至從號碼列表號碼。不要打印序列中237之後的任何數字。

我在做什麼錯?

numbers = [951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544, 
615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941, 
386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 
399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 
815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 
958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470, 
743, 527] 
# your code goes here 
for number in numbers: 
    if number <= 237 and number % 2 == 0: 
     continue 
     print numbers 
+0

是您的縮進是否正確?如果您在此處的縮進是您在實際代碼中的內容,那麼您將永遠不會觸及'print'語句。 – 2013-02-20 19:57:11

+0

如果你是初學者,一旦這個工作,嘗試使用過濾器功能解決這個問題。 – Tom 2013-02-20 19:58:22

+0

相關:http://stackoverflow.com/questions/14537063/print-all-even-numbers-in-a-list-until-a-given-number/ – 2013-02-20 19:59:37

回答

2

您需要丟失continue,它會將循環移至下一次迭代。我認爲你正在尋找break(當你發現237)。

剛打印number,但不要讓print()功能爲Python 3

for number in numbers: 
    if number == 237: 
     break 
    if number % 2 == 0: 
     print(number) 
+0

他的號碼沒有排序。 'break'是不必要的,除非輸入是ASC排序 – 2013-02-20 20:00:55

+1

@rosipov:*因爲*號碼沒有排序,所以你需要一個'break'。所以,打印所有偶數,但是一旦遇到序列號237就停止。 – 2013-02-20 20:01:34

+0

哦。錯誤的問題。我的錯。 – 2013-02-20 20:03:13