Loops

For loops

To move through each item in a list, we use for loops

for <temporary variable> in <list>:
    <action>

For example

students = ['Hanna', 'Jake', 'Jane']
for name in students:
    print(name)

#Output:
Hanna
Jake
Jane

While loops

The while loop is like a repeated if statement. The code is executed over and over again, as long as the condition is True. Have another look at its recipe.

while condition:
  # code block to be executed

For example

nums = [0, 1, 2, 3]
i = 0
while i < len(nums):
  print(i)
  i += 1

# Output
0
1
2
3

Python Loops with range()

To iterate through a list of certain length, we should use range.

range takes in a number n as input, and returns a list from 0 to n-1.

For example

greetings = "Hello"
for i in range(2):
  print(greetings)
# Output:
Hello
Hello

Python break keyword

You can stop a for loop from inside the loop by using break.

When the program hits a break statement, control returns to the code outside of the for loop.

students = ['Hanna', 'Jake', 'Jane', 'April', 'Niles']
print("Find April on the list!")

for name in students:
  if name == 'April':
    print(name)
    break

print("End of search!")

// Output:
Find April on the list!
April
End of search!

Python continue keyword

If you want to skip some values while iterating through lists, we can use continue keyword.

For example, we’d like to print out all of the numbers in a list, unless they’re negative.

We can use continue to move to the next i in the list:

positive_list = [10, 4, -1, 2, -5, 7, 3, -9]

for i in positive_list:
  if i < 0:
    continue
  print(i)

Nested Loops

if we have a list made up of multiple lists, we canloop through all of the individual elements by using nested loops.

For example, create a function named exponents() return a new list containing every number in bases raised to every number in powers.

def exponents(bases, powers):
  new = []
  for i in bases:
    for j in powers:
      new.append(i**j)
  return new

Python List Comprehension

Python list comprehensions provide a concise way for creating lists.

Syntax:

lst = [EXPRESSION for ITEM in LIST <if CONDITIONAL>]

For example

# List comprehension for the squares of all even numbers between 0 and 9
result = [x**2 for x in range(10) if x % 2 == 0]

print(result)
# [0, 4, 16, 36, 64]

Escape infinite loops

If you accidentally creates an infinite loop while developing on your own machine, you can end the loop by using control + c to terminate the program.