# HG changeset patch # User anoop # Date 1286572151 -19800 # Node ID f9d7cedf85364f4395589250ffe32341535c1c19 # Parent 5f2c165b4a3c3d6f2163b1cec01245783680c369 removed an unwanted file gettings_started_with_for.rst. diff -r 5f2c165b4a3c -r f9d7cedf8536 gettings_started_with_for.rst --- a/gettings_started_with_for.rst Fri Oct 08 23:56:19 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,217 +0,0 @@ -.. 3.2 LO: getting started with =for= (2) [anoop] -.. ----------------------------------------------- -.. * blocks in python -.. + (indentation) -.. * blocks in ipython -.. + ... prompt -.. + hitting enter -.. * =for= with a list -.. * =range= function - -============================= -Getting started with for loop -============================= - -{{{ show welcome slide }}} - -Hello and welcome to the tutorial getting started with ``for`` loop. - -{{{ switch to next slide, outline slide }}} - -In this tutorial we will see ``for`` loops in python, and also cover -the basics of indenting code in python. - -{{{ switch to next slide, about whitespaces }}} - -In Python whitespace is significant, and the blocks are visually -separated rather than using braces or any other mechanisms for -defining blocks. And by this method Python forces the programmers to -stick on to one way of writing or beautifying the code rather than -debating over where to place the braces. This way it produces uniform -code than obscure or unreadable code. - -A block may be defined by a suitable indentation level which can be -either be a tab or few spaces. And the best practice is to indent the -code using four spaces. - -Now let us move straight into ``for`` loop. - -{{{ switch to next slide, problem statement of exercise 1 }}} - -Write a for loop which iterates through a list of numbers and find the -square root of each number. Also make a new list with the square roots -and print it at the end. -:: - - numbers are 1369, 7225, 3364, 7056, 5625, 729, 7056, 576, 2916 - -For the problem, first we need to create a ``list`` of numbers and -then iterate over the list and find the square root of each element in -it. And let us create a script, rather than typing it out in the -interpreter itself. Create a script called list_roots.py and type the -following. - -{{{ open the text editor and paste the following code there }}} -:: - - numbers = [1369, 7225, 3364, 7056, 5625, 729, 7056, 576, 2916] - square_roots = [] - for each in numbers: - sq_root = sqrt(each) - print "Square root of", each, "is", sq_root - square_roots.append(sq_root) - print - print square_roots - -{{{ save the script }}} - -Now save the script, and run it from your IPython interpreter. I -assume that you have started your IPython interpreter using ``-pylab`` -option. - -Run the script as, -:: - - %run -i list_roots.py - -{{{ run the script }}} - -So that was easy! We didn't have to find the length of the string nor -address of each element of the list one by one. All what we did was -iterate over the list element by element and then use the element for -calculation. Note that here we used three variables. One the variable -``numbers``, which is a list, another one ``each``, which is the -element of list under consideration in each cycle of the ``for`` loop, -and then a variable ``sq_root`` for storing the square root in each -cycle of the ``for`` loop. The variable names can be chosen by you. - -{{{ show the script which was created }}} - -Note that three lines after ``for`` statement, are indented using four -spaces. - -{{{ highlight the threee lines after for statement }}} - -It means that those three lines are part of the for loop. And it is -called a block of statements. And the seventh line or the immediate -line after the third line in the ``for`` loop is not indented, - -{{{ highlight the seventh line - the line just after for loop }}} - -it means that it is not part of the ``for`` loop and the lines after -that doesn't fall in the scope of the ``for`` loop. Thus each block is -separated by the indentation level. Thus marking the importance of -white-spaces in Python. - -{{{ switch to the slide which shows the problem statement of the first -problem to be tried out }}} - -Now a question for you to try, from the given numbers make a list of -perfect squares and a list of those which are not. The numbers are, -:: - - 7225, 3268, 3364, 2966, 7056, 5625, 729, 5547, 7056, 576, 2916 - -{{{ switch to next slide, problem statement of second problem in -solved exercie}}} - -Now let us try a simple one, to print the square root of numbers in -the list. And this time let us do it right in the IPython -interpreter. - -{{{ switch focus to the IPython interpreter }}} - -So let us start with making a list. Type the following -:: - - numbers = [1369, 7225, 3364, 7056, 5625, 729, 7056, 576, 2916] - for each in numbers: - -and now you will notice that, as soon as you press the return key -after for statement, the prompt changes to four dots and the cursor is -not right after the four dots but there are four spaces from the -dots. The four dots tell you that you are inside a block. Now type the -rest of the ``for`` loop, -:: - - sq_root = sqrt(each) - print "Square root of", each, "is", sq_root - -Now we have finished the statements in the block, and still the -interpreter is showing four dots, which means you are still inside the -block. To exit from the block press return key or the enter key twice -without entering anything else. It printed the square root of each -number in the list, and that is executed in a ``for`` loop. - -Now, let us generate the multiplication table of 10 from one to -ten. But this time let us try it in the vanilla version of Python -interpreter. - -Start the vanilla version of Python interpreter by issuing the command -``python`` in your terminal. - -{{{ open the python interpreter in the terminal using the command -python to start the vanilla Python interpreter }}} - -Start with, -:: - - for i in range(1,11): - -and press enter once, and we will see that this time it shows four -dots, but the cursor is close to the dots, so we have to intend the -block. So enter four spaces there and then type the following -:: - - - print "10 *",i,"=",i*10 - -Now when we hit enter, we still see the four dots, to get out of the -block type enter once. - -Okay! so the main thing here we learned is how to use Python -interpreter and IPython interpreter to specify blocks. But while we -were generating the multiplication table we used something new, -``range()`` function. ``range()`` is an inbuilt function in Python -which can be used to generate a ``list`` of integers from a starting -range to an ending range. Note that the ending number that you specify -will not be included in the ``list``. - -Now, let us print all the odd numbers from 1 to 50. Let us do it in -our IPython interpreter for ease of use. - -{{{ switch focus to ipython interpreter }}} - -{{{ switch to next slide, problem statement of the next problem in -solved exercises }}} - -Print the list of odd numbers from 1 to 50. It will be better if -you can try it out yourself. - -It is a very trivial problem and can be solved as, -:: - - print range(1,51,2) - -This time we passed three parameters to ``range()`` function unlike -the previous case where we passed only two parameters. The first two -parameters are the same in both the cases. The first parameter is the -starting number of the sequence and the second parameter is the end of -the range. Note that the sequence doesn't include the ending -number. The third parameter is for stepping through the sequence. Here -we gave two which means we are skipping every alternate element. - -{{{ switch to next slide, recap slide }}} - -Thus we come to the end of this tutorial. We learned about blocks in -Python, indentation, blocks in IPython, for loop, iterating over a -list and then the ``range()`` function. - -{{{ switch to next slide, thank you slide }}} - -Thank you! - -.. Author: Anoop Jacob Thomas - Reviewer 1: - Reviewer 2: - External reviewer: