summaryrefslogtreecommitdiff
path: root/getting_started_with_ipython/script.rst
blob: c72bde724abb2f0e4587a04eac9c4b91e217f2fa (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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
.. Objectives
.. ----------

.. At the end of this tutorial, you will be able to,  

.. 1. invoke the ``ipython`` interpreter . 
.. #. quit the ``ipython`` interpreter. 
.. #. navigate in the history of ``ipython``. 
.. #. use of tab-completion for writing ipython functions. 
.. #. look-up documentation of functions. 
.. #. interrupt incomplete or incorrect commands.

.. Prerequisites
.. -------------
.. (it should be given in the first module)
.. should have ``ipython`` and ``pylab`` installed. 
     
.. Author              : Puneeth 
   Internal Reviewer   : Anoop Jacob Thomas<anoop@fossee.in>
   Language Review     : Bhanukiran 
   External Reviewer   :
   Checklist OK?       : <put date stamp here, if OK> [2010-10-05]


Script
------

.. L1

{{{ Show the  first slide containing title, name of the production
team along with the logo of MHRD }}}


.. R1

Hello Friends and Welcome to the tutorial on "getting started with
``ipython``". 

.. L2

{{{ Show slide with objectives }}}

.. R2

At the end of this tutorial, you will be able to,  

 1. invoke the ``ipython`` interpreter . 
 #. quit the ``ipython`` interpreter. 
 #. navigate the ``ipython`` session history. 
 #. use tab-completion for writing ipython functions. 
 #. look-up documentation of functions. 
 #. interrupt incomplete or incorrect commands.


.. R3 

IPython is an enhanced Python interpreter that provides features like	
tabcompletion, easier access to help and many other functionalities
which are not available in the vannila Python interpreter.

Let us first see how to start the ``ipython`` interpreter.First
open the terminal, type ``ipython`` in the terminal and hit enter.

.. L3

:: 

    ipython

.. R4

After getting some information about the version of Python 
installed and some help commands, we get a prompt with 
In[1]:. But, if you get an error saying 'ipython is not
installed' then refer to the tutorial on how to install the packages.

.. L4

{{{Point to the version information with mouse}}}
{{{Point to the In[1]: prompt with mouse}}}

.. R5

Now,lets see how we can quit the ipython interpreter, press Ctrl-D. 

.. L5

type Ctrl-D.

.. R6

A prompt will appear to confirm whether you really want to exit, type
y to say yes and quit ipython and n to say no if you don't want to quit
the ipython. Press y.

.. L6

{{{Press y and hit enter.}}} 


.. R7

Now since we have quit the interpretor, let us start it again by
typing ``ipython``

.. L7

:: 

    ipython

.. R8

And now let's see, how to use the interpreter.

Start with the simplest thing, addition.

type 1+2 at the prompt. IPython promptly gives back the output as 3.
Notice that the output is displayed with an ``Out[1]`` indication.

.. L8

:: 

    1+2

{{{Point at the Out[1] prompt}}}

.. R9

Let us now try few more operations such as, 5 minus 3, 7
minus 4, 6 into 5. 

.. L9

::

    5 - 3
    7 - 4
    6 * 5

.. R10

Now let's see how the ipython remembers the history of commands.
For example ``print 1+2``.

Instead of typing the whole thing,use the up arrow key to go back to
the command ``1+2`` which we did before, now use the left-arrow key to
navigate to the beginning of the line and type the word``print``and
press space.We have changed the line to print 1+2, now press enter.
The interpreter prints the result as 3. Please note that the
indication Out square brackets is not shown here.

.. L10

{{{Use the up arrow key to go back to the command ``1+2``}}}
{{{Use left arrow to navigate to start of line }}}
Type

::

    print

{{{Hit enter}}}
{{{Point at the Out[] prompt}}}

.. R11

Now let us do print 10 into 2.  We use the up arrow key to navigate to
the previous command 1+2. Now change ``1 plus 2`` to ``10 into 2`` and
press enter.

.. L11

{{{ Change from    ``print 1+2`` to   ``print 10*2`` }}}

.. R12

Till now, we saw how to invoke the ipython interpreter,quit the
ipython and navigate through previous commands in ipython.  Now, let's
see, what is tab-completion?.  let's take an example, suppose we want
to use the function ``round``. For this we just type ``ro`` at the
prompt and press the tab key.

.. L12

:: 

    ro<tab>
 
.. R13

As you can see on the terminal, IPython completes the command ``ro``
into round, This feature of ipython is called the tab-completion.

.. L13

{{{Stay on the terminal}}}

.. R14

Let's see some more possibilities of tab completion 
just type ``r`` and then press the  tab.

.. L14

:: 

    r<tab> 

.. R15

 As u can see that IPython does not complete the command. This is
because, there are many possibilities of ``r`` therefore it just lists
out all the possible completions of r.

.. L15

{{{Stay on the terminal}}}

.. L16

{{{Show slide with exercise 1}}}

.. R16

Now let's try out an exercise. Pause the video,solve the problem and
resume the video.

  1. find out the commands starting with "ab"?
  2. list out the commands starting with "a"?

.. R17

Switch to the terminal for solution.
``ab`` tab completes to ``abs`` and ``a<tab>`` gives us a list of all
the commands starting with a.


.. L17

::

    ab<tab>
    a<tab>

.. R18

Now, let's see what the functions abs is used for.  We will use the
help features of ipython to find out this.  To see the documentation
of a function, type the function name followed by a exercise mark.
Ipython interpreter will show the documentation for the
function.  Let us see the documentation of the function abs, type
abs? and press enter

.. L18

::
 
    abs?


.. L19

::

    abs(-19)
    abs(19)

.. R19

As the documentation says, ``abs`` accepts a number as an input and
returns it's absolute value.

lets see few examples,

Type abs(-19) and abs(19) on the interpreter.

We get 19, as expected, in both the cases.

.. R20

Now lets try it for decimal numbers; lets try abs(-10.5), we got 10.5
as the result.

.. L20

::

    abs(-10.5)

.. R21

Pause the video here, try out the following exercise and resume the video.

Look-up the documentation of ``round`` and see how to use it.

.. L21   

{{{Show slide with exercise 2}}}

.. L22

::

    round?

.. R22

Switch to the terminal for solution.
And you can look up the documentation of the function round by typing
round exercise mark in the ipython interpreter.

.. L23

{{{highlight the syntax with mouse hover on terminal}}}

.. R23

If you notice, there are extra square brackets around ``ndigits``.
This means that ``ndigits`` is optional and 0 is the default value.
Optional parameters are shown in square brackets in Python
documentation.

The function ``round``, rounds a number to a given precision.

.. R24

Pause the video here, try out the following exercise and resume the video.
Let us now try few more examples with the function round.

Check the output of
round(2.48)
round(2.48, 1)
round(2.48, 2)
round(2.484)
round(2.484, 1)
round(2.484, 2)

.. L24

{{{Show slide with exercise 3}}}

.. L25

{{{Show slide with solution 3 }}}

.. R25

We get 2.0, 2.5 and 2.48, which are what we expect.

.. R26

Let's now see how to correct typing errors which we often make while
typing at the terminal. As already shown, if we haven't hit the enter
key already, we could navigate using the arrow keys and make deletions
using delete or backspace key and correct the errors.

let us make a typing error deliberately,
type 

     round(2.484

and hit enter, without closing the parenthesis.

.. L26

{{{ switch to terminal }}}
:: 

    round(2.484

{{{Hit enter}}}

.. R27

We get a prompt with dots.  This prompt is the continuation prompt of
``ipython``.  It appears when, the previous line is incomplete. now
complete the command of the same examples with close parenthesis and
press enter.  We got the expected output that is 2.0

.. L27

{{{ Point at the prompt with three dots }}}

::  

    )

.. R28

In other instances, if we commit a typing error with a longer and more
complex expression and end up with the continuation prompt, we can
type Ctrl-C to interrupt the command and to get back to the
``ipython`` input prompt.

.. L28

<Type any big random number>

:: 

    round(35.488762320
    Ctrl-C

.. R29

Pause the video here, try out the following exercise and resume the video.

1. type round(2.484, and press enter. and then cancel the command
   using Ctrl-C.
2. type the command, round(2.484, 2) 

.. L29

{{{Show slide with exercise 4}}}
 
.. L30

{{{ show the solution on terminal }}}

::

    round(2.484 
    ^C

    round(2.484, 2)

.. R30

.. L31

{{{ show the summary slide }}}

.. R31 

This brings us to the end of this tutorial.In this tutorial,we have learnt to,

  1. Invoke the ``ipython`` interpreter by typing ipython. 
  #. Quit the ``ipython`` interpreter by using <ctrl>d. 
  #. Navigate in the history of ``ipython`` by using the arrow keys. 
  #. Use the tab-completion feauture for writing python functions. 
  #. See the documentation of functions using exercise mark.
  #. Interrupt using <ctrl>c when we make an error.

.. R32
  
Here are some self assessment questionss for you to solve

1. ``ipython`` is a programming language similar to Python.
     True or False

2. Which key combination quits ``ipython``?

   - Ctrl + C
   - Ctrl + D
   - Alt + C
   - Alt + D

3. Which character is used at the end of a command, in Ipython to
   display the documentation.

   - under score (_)
   - exercise mark (?)
   - exclamation mark (!)
   - ampersand (&)

.. L32

{{{Show self assessment questions slide}}}


.. L33

{{{solution of self assessment questiones on slide}}}

.. R33

And the answers,

1. Ipython is not a programming language, it is just an interpreter.
2. We use Ctrl D to quit Ipython interpreter.
3. We use ? at the end of the function name to display its documentation.

.. L34

{{{Show thank you slide}}}

.. R34

Hope you have enjoyed this tutorial and found it useful.
Thank you!