loops in python - zamaniamin/python GitHub Wiki
- There are two types of loops in Python:
whileandfor:
- the
whileloop executes a statement or a set of statements as long as a specified boolean condition is true, e.g.:
# Example 1
while True:
print("Stuck in an infinite loop.")
# Example 2
counter = 5
while counter > 2:
print(counter)
counter -= 1
-
If you notice some similarities to the
ifinstruction, that's quite all right. Indeed, the syntactic difference is only one: you use the wordwhileinstead of the wordif. The semantic difference is more important: when the condition is met,ifperforms its statements only once;whilerepeats the execution as long as the condition evaluates toTrue. -
the
forloop executes a set of statements many times; it's used to iterate over a sequence (e.g., a list, a dictionary, a tuple, or a set - you will learn about them soon) or other objects that are iterable (e.g., strings). You can use theforloop to iterate over a sequence of numbers using the built-inrangefunction. Look at the examples below:
# Example 1
word = "Python"
for letter in word:
print(letter, end="*")
# Example 2
for i in range(1, 10):
if i % 2 == 0:
print(i)
- any variable after the
forkeyword is thecontrol variableof the loop; it counts the loop's turns, and does it automatically; - the
inkeyword introduces a syntax element describing the range of possible values being assigned to thecontrol variable;
- You can use the
breakandcontinuestatements to change the flow of a loop:
- You use
breakto exit a loop, e.g.:
text = "OpenEDG Python Institute"
for letter in text:
if letter == "P":
break
print(letter, end="")
- You use
continueto skip the current iteration, and continue with the next iteration, e.g.:
text = "pyxpyxpyx"
for letter in text:
if letter == "x":
continue
print(letter, end="")
- The
whileandforloops can also have anelseclause in Python. Theelseclause executes after the loop finishes its execution as long as it has not been terminated bybreak, e.g.:
n = 0
while n != 3:
print(n)
n += 1
else:
print(n, "else")
print()
for i in range(0, 3):
print(i)
else:
print(i, "else")
- The
range()function generates a sequence of numbers. (we can even say that it will feed the loop with) It accepts integers and returns range objects. The syntax ofrange()looks as follows:range(start, stop, step), where:
startis an optional parameter specifying the starting number of the sequence (0 by default)stopis an optional parameter specifying the end of the sequence generated (it is not included),- and
stepis an optional parameter specifying the difference between the numbers in the sequence (1 by default.)
Example code:
for i in range(3):
print(i, end=" ") # Outputs: 0 1 2
for i in range(6, 1, -2):
print(i, end=" ") # Outputs: 6, 4, 2