I am just beginning to dabble in Python, and have started to go through the chapters on learnpython.org. In the 'Loops' chapter, I have solved the challenge with the following code. However I am not sure it is the most efficient. It certainly doesn't seem to be as I have to define the "number to not go beyond" twice. In this (I'm guessing) easy problem, DRY should be possible to adhere to, right?
The exercise is
Loop through and print out all even numbers from the numbers list in
the same order they are received. Don't print any numbers that come
after 237 in the sequence.
My code:
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 ]
# My Solution
for x in numbers:
if x != 237:
if x % 2 == 0:
print x
if x == 237:
break
See Question&Answers more detail:
os