cond-loops.org
author Shantanu <shantanu@fossee.in>
Wed, 28 Apr 2010 16:33:18 +0530
changeset 115 d35eccbf206d
parent 112 7de6be45182e
permissions -rw-r--r--
Added dictionary.org file.

* Control statements
*** Outline
***** Introduction
******* What are we going to do?
******* How are we going to do?
******* Arsenal Required
********* working knowledge of arrays

*** Script
    Welcome. 
    
    In this tutorial we shall be covering conditional statements and
    control loops. We have used them already in some of our previous
    sessions with brief introduction. We shall be covering 'if-else' 
    statement, 'while' and 'for' statements formally.


    For understanding of if-else statement we will write a python
    script that takes a number as input from user and prints 0 if it is zero
    and prints "Be positive" if it is negative, prints "Single" if the input is 1
    and if the number is not 0 or 1 or negative, it prints "More".
 
    To write the program, open Scite text editor by going to Applications->
    Programming->Scite:

    First we prompt user for entering a integer by using raw_input
    str_x = raw_input("Enter an integer: ")
    since we know raw_input gives string, we convert the input string to an integer
    by typing 
    x = int(str_x)

    now we check if the number is less than zero.
    type 
    if x < 0:
        Please not 
        #if number is negative we have to print "Be positive"
        #so we give four spaces for indentation and type
        print 'Be positive!'

    elif x == 0:
        to check if the number is equal to zero
        #This is else-if condition
        print 'Zero'
    elif x == 1:
        print 'Single'
    then we type the else statement which gets executed when all the if and elif statements fail
    so type
    else:
        print 'More'

    Save this script by going to file menu and clicking on save.
    save it in home folder with name 'ladder.py'	

    let us check the program on ipython interpreter for various inputs
    open ipython terminal and type
    %run ladder.py
    It will prompt us to enter a integer and based on our input it 
    prints appropriate message. 

    We can use binary operators like and/or/not to check for multiple
    conditions.

    Python supports only if-elif-else conditional constructs, 
    switch-case statements are not available/supported in Python.

    Now lets look at loop constructs available. Python supports 'while'
    and 'for' statements. 

    To understand the while we shall write a script that prints all the fibonacci 
    numbers less than 10. In fibonacci series the sum of previous two elements
    is equal to the next element.

    In Scite go to file menu and click on new and it opens a new tab.
    
    First we initialize two variable to first and second number of 
    series
    a, b = 0, 1
    while b < 10:
        This block will be executed till this condition holds True
        print b,
	Note ',' here for printing values in one continues line.
	a, b = b, a+b
	This is one powerful feature of Python, swapping and assigning
	new values at the same time. After this statement a will have 
	present 'b' value and b will have value of 'a+b'(phew this can be close)
	
    Save this file as 'fabonacci.py' and lets run it from IPython 
    interpreter by
    %run fabonacci.py

    'for' in python works any kind of iterable objects. In our 
    previous sessions we used 'for' to iterate through files and lists.

    So we are going to use for loop print the squares of first five whole numbers.

    To generate squares, we have to iterate on list of numbers and we are 
    going to use the range function to get the list of numbers.

    let us look at the documentation of range function by typing
    range?
    we see that it takes three arguments, first is the start/initial value
    second one is the stop/last value and third is the step size. 

    Out of these, 'start' and 'step' arguments are optional.

    So to get list of first five natural numbers, we use 
    range(5)

    Note here that last/stop value is not included in resulting list.

    So to get square of first five number all we have to do is
    iterate over this list.
    for i in range(5):
    ....print i, i*i
    ....
    ....

    Similarly to get square of all odd numbers from 3 to 9 we can do 
    something like

    for i in range(3, 10, 2):
    so the list returned from range this time will start from 3 and 
    end at 10(excluding it) with step size of 2 so we get odd numbers
    only
    ....print i, i*i
    ....
    ....
 
    since the for statement in python works on any iterable we can also iterate through strings

    to print each character in a string we do
    for c in "Guido Van Rossum":
        print c

    we see that it prints all the characters one by one
 
    That brings us to the end of this tutorial. We have learnt
    conditional statements in Python. How to write loops
    using 'while' statement. Range function and using for loop
    

    Thank you!

*** Notes