summaryrefslogtreecommitdiff
path: root/loops.rst
blob: 131dcb8f92fd853daa0a044cd39859f0c6e60257 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
========
 Script
========

{{{ show the welcome slide }}}

Welcome this tutorial on loops in Python. 

{{{ show the outline slide }}}

In this tutorial, we shall look at ``while`` and ``for`` loops. We
shall then look at the ``break``, ``continue`` and ``pass`` keywords
and how to use them. 

{{{ switch to the ipython terminal }}}

We have an ``ipython`` terminal, that we shall use through out this
tutorial. 

We shall first begin with the ``while`` loop. The ``while`` loop is
used for repeated execution as long as a condition is ``True``. 

Let us print the squares of all the odd numbers less than 10, using
the ``while`` loop.

::

  i = 1

  while i<10:
      print i*i
      i += 2

This loop prints the squares of the odd numbers below 10. 

The ``while`` loop, repeatedly checks if the condition is true and
executes the block of code within the loop, if it is. As with any
other block in Python, the code within the ``while`` block is indented
to the right by 4 spaces. 

E%% %% Pause the video here and write a ``while`` loop to print the
squares of all the even numbers below 10. Then, return to the video.

::

  i = 2

  while i<10:
      print i*i
      i += 2

Let us now solve the same problem of printing the squares of all odd
numbers less than 10, using the ``for`` loop. As we know, the ``for``
loop iterates over a list or any other sequential data type. So, we
use the ``range`` function to get a list of odd numbers below 10, and
then iterate over it and print the required stuff. 

::

  for n in range(1, 10, 2):
      print n*n

E%% %% Pause the video here and write a ``for`` loop to print the
squares of all the even numbers below 10. Then, return to the video. 

::

  for n in range(2, 10, 2):
      print n*n

Let us now look at how to use the keywords, ``pass``, ``break`` and
``continue``.

As we already know, ``pass`` is just a syntactic filler. It is used
for the sake of completion of blocks, that do not have any code within
them. 

::

  for n in range(2, 10, 2):
      pass

``break`` is used to break out of the innermost loop. The ``while``
loop to print the squares of all the odd numbers below 10, can be
modified using the ``break`` statement, as follows
::

  i = 1

  while True:
      print i*i
      i += 2
      if i<10:
          break

``continue`` is used to skip execution of the rest of the loop on this
iteration and continue to the end of this iteration. 

Say, we wish to print the squares of all the odd numbers below 10,
which are not multiples of 3, we would modify the for loop as follows.
::

  for n in range(1, 10, 2):
      if n%3 == 0:
          continue      
      print n*n
  

E%% %%Pause the video here and using the ``continue`` keyword modify
the ``for`` loop to print the squares of even numbers below 10, to
print the squares of only multiples of 4. (Do not modify the range
function call.) Then, resume the video. 
::

  for n in range(2, 10, 2):
      if n%4:
          continue      
      print n*n

That brings us to the end of this tutorial. In this tutorial, we have
learnt about looping structures in Python and the use of the keywords
``pass``, ``break`` and ``continue``. 

Thank You!