Vino
Vino
UNIT-IV                                               Example:
                                                                                                  >>>a=[1,2,3]
                           LIST,TUPLES,DICTIONARIES                                               >>>b=a[:]
                                                                                                  >>>print b
TWO MARKS:                                                                                        [1,2,3].
       One of the unique features of the python language is the ability to have a tuple on the left       14. What is the difference between Tuples and List in Python?
        hand side of an assignment statement.
       This allows you to assign more than one variable at a time when the left hand side is a                     The main difference between list and tuples are:
        sequence.                                                                                                   List are enclose in square bracket [ ] and their elements size can be changed, while tuples
                                                                                                                     are enclosed in parentheses ( ) and cannot be updated.
Example:
Two element in list (which is a sequence ) and assign the first and second elements of the variables
                                                                                                           15.       Define Mutable and Immutable data type?
x and y in a single statement.
>>> m = ( ‘have’, ‘fun’)                                                                                            Immutable data value: A data value which cannot be modified. Assignments to elements
>>> x,y= m                                                                                                           or slices of immutable values causes a runtime error
>>> x                                                                                                               Mutable data value: A data value which can be modified .The Types of all mutable value
‘have’                                                                                                               are compound types.List and dictionaries are Mutable; Strings and Tuple are not.
>>>y
‘fun’
                                                                                                           16.     Differentiate between append( ) and extend ( ) methods?
11. Give Example for Tuple as Return Values?                                                                      Both append ( ) and extend ( ) methods belong to the list method.These methods are used to
                                                                                                                   add the elements to the list.
      A function can only return one value, but if the value is a tuple, the effect is the same as               Append(element) – adds the given element at the end of the list or at the given index
       returning multiple values.                                                                                  postion which has called this method
    Example:
                                                                                                                  Extend (another_list)- adds the element of another-list at the end of the list which is called
 >>> t = divmod(7, 3)                                                                                              the extend method.
>>> print t
(2, 1)                                                                                                     17.     When is a dictionary used instead of a list?
Or use tuple assignment to store the elements separately:                                                         Dictionaries are best suited when the data is labelled ie. The data is a record with field
>>> quot, rem = divmod(7, 3)                                                                                       names.
>>> print quot
2                                                                                                                 List are better option to store collection of un-labelled items say all the files and sub-
>>> print rem                                                                                                      directories in a folder.
1                                                                                                                 Generally search operation on dictionary object is faster than searching a list objects
         Dictionary is one of the compound data type like strings, list and tuple. Every element in a
                                                                                                         23. List out the operations on dictionaries?
          dictionary is the key-value pair.
         An empty dictionary without any items is written with just two curly braces, like this: {}.
                                                                                                                Operation                                           Description
      Example:                                                                                           cmp(dict1, dict2)           Compares elements of both dict.
>>> eng2sp = {}                                                                                          len(dict)                   Gives the total length of the dictionary.
>>> eng2sp["one"] = "uno"
>>> eng2sp["two"] = "dos"                                                                                str(dict)                   Produces a printable string representation of a dictionary
>>> print(eng2sp)
                                                                                                         type (variable)             Returns the type of the passed variable. If passed variable is dictionary,
                                                                                                                                     then it would return a dictionary type.
Output:
{"two": "dos", "one": "uno"}
         A dictionary can be Created by specifying the key and value separated by colon(:) and the
          elements are separated by comma (,).The entire set of elements must be enclosed by curly
          braces {}.
                Dict={ }
                                                                                                           7                                                                                                             8
                                                   16 MARKS                                                         Output:
                                                                                                                    (‘one’,’three’)
1.   What is List Values? Describe about creating a list, accessing the values in list, deleting a list,
                                                                                                                    UPDATING A LIST:
     updating a list.
                                                                                                                    A slice operator on the left side of an assignment can update multiple elements:
      LIST VALUES:                                                                                                  >>> t = ['a', 'b', 'c', 'd', 'e', 'f']
                                                                                                                    >>> t[1:3] = ['x', 'y']
               A List is an ordered set of values, where each value is identified by an index.                     >>> print t
               The Values that make up a list are called its elements or items.                                    Output: ['a', 'x', 'y', 'd', 'e', 'f'].
               Lists are similar to strings, which are ordered set of characters, except that the element of
                a list can have any type.
CREATING A LIST: 2. Explain the basic List Operations and list slices in details with necessary programs.
      There are several ways to create a new list, the simplest is to enclose the elements in square Bracket        LIST OPERATIONS:
      []                                                                                                                 24. Lists respond to the + and * operators much like strings; they mean concatenation and
                                                                                                                             repetition here too, except that the result is a new list, not a string.
      [10, 20, 30, 40] # list of four integers
      ['frog', 'Dog', 'Cow'] # list of three strings
                                                                                                                                     Python Expression             Description                     Results
      The elements of a list don’t have to be the same type.                                                                   len([1, 2, 3])                   Length                                 3
      ['spam', 2.0, 5, [10, 20]] # list contains a string, a float, an integer, and another list:                              [1, 2, 3] + [4, 5, 6]            Concatenation                 [1, 2, 3, 4, 5, 6]
                                                                                                                               ['Hi!'] * 4                      Repetition                ['Hi!', 'Hi!', 'Hi!', 'Hi!']
      A list within another list is nested.                                                                                    3 in [1, 2, 3]                   Membership                          True
      A list that contains no elements is called an empty list;
      We can create one with empty brackets [].                                                                     The + operator concatenates lists:
                                                                                                                    >>> a = [1, 2, 3]
      ACCESSING VALUES IN LIST:                                                                                     >>> b = [4, 5, 6]
                                                                                                                    >>> c = a + b
                                                                                                                    >>> print c
      We can assign list values to variables:                                                                       [1, 2, 3, 4, 5, 6]
      >>> Fruits = ['Apple', 'Watermelon', 'Banana']
      >>> numbers = [17, 12.3]                                                                                      Similarly, the * operator repeats a list a given number of times:
      >>> empty = [ ]                                                                                               >>> [0] * 4
      >>> print ( Fruits)                                                                                           [0, 0, 0, 0]# It repeats [0] four times
      >>>print( numbers)                                                                                            >>> [1, 2, 3] * 3
                                                                                                                    [1, 2, 3, 1, 2, 3, 1, 2, 3] # It repeats the list [1, 2, 3] three times.
      >>>print(empty)
                                                                                                                    LIST SLICES:
      Output:                                                                                                           A sub-sequence of a sequence is called a slice and the operation that performs on
      ['Apple', 'Watermelon', 'Banana']                                                                                   subsequence is called slicing.
       [17, 12.3]                                                                                                   The slice operator also works on lists:
       []                                                                                                           >>> t = ['a', 'b', 'c', 'd', 'e', 'f']
                                                                                                                    >>> t[1:3]
      DELETING A LIST:                                                                                              Output : ['b', 'c']
             Any element in the list can be deleted, del removes an element from a list.                           >>> t[:4]
                                                                                                                    Output:['a', 'b', 'c', 'd']
      Example:
      >>> a=(‘one’,’two’,’three’)                                                                                   >>> t[3:]
      >>>del a(1)                                                                                                   Output:['d', 'e', 'f']
      >>>a
                                                                                                                       9                                                                                                        10
Output: Output:
4. Discuss about the list loop, list mutability with examples.(8 mark)
              In List loop, we use a loop to access all the element in a list. A loop is a block of code that                Lists are represented by boxes with the word “list” outside and the elements of the list
               repeats itself until it run out of items to work with or until a certain condition is met.                      inside.
              Our loop will run once for every item in our list,                                                             Fruits refer to a list with three elements indexed 0, 1 and 2.
                                                                                                                              Numbers contains two elements; the diagram shows that the value of the second element has
    #LIST LOOPING EXAMPLE 1:                                                                                                   been reassigned from 123 to 5.
    Colours_list=[“red”, “green”, “yellow”, “blue”, “purple”]                                                          .
    for i in colours_list:                                                                                             The in operator also works on lists.
    Print(i)                                                                                                           >>> Fruit = ['Apple', 'Grapes', 'Orange']
    Output:                                                                                                            >>> ‘Apple’ in Fruit
    Colours in the list                                                                                                True
    Red                                                                                                                >>> ‘Watermelon’ in Fruit
    Green                                                                                                              False
    Yellow
    Blue                                                                                                               Index can have negative value, it counts backward from the list.
    Purple.                                                                                                            Example:
    EXAMPLE 2:
    Month_list = [“Jan”, “Feb”, “March”, “April”, “May”]                                                               >>> Fruit = ['Apple', 'Grapes', 'Orange']
    Print(“months in the list”)                                                                                        >>>Fruit(0) = ‘pear’
    for month in month_list:                                                                                           >>>Fruit(-1) = ‘Jackfruit’
    Print (month)                                                                                                      >>>print (fruit)
    OUTPUT:                                                                                                            [‘pear’, ‘grape’, ‘Jackfruit’]
    Months in the list
    Jan                                                                                                                #List Mutable Example
    Feb                                                                                                                Colours_list=[“red”, “green”, “blue”, “purple”]
    March                                                                                                              Print (“original list:”,colour_list)
    April                                                                                                              #red is changed to pink
    May                                                                                                                Colour_list[0]= “pink”
    >>> Fruit = ['Apple', 'Grapes', 'Orange']                                                                      5. Discuss about the list aliasing, cloning list and list parameter with examples.
    >>>print (fruit(0))
    Apple                                                                                                              LIST ALIASING:
    >>> numbers = [17, 123]
                                                                                                                           Since variables refer to object, If ‘A’ refers to an object and you assign ‘ B = A’, then both
    >>> numbers[1] = 5
    >>> print numbers                                                                                                         variables refer to the same object:
    [17, 5]                                                                                                            >>> A = [1, 2, 3]
                                                                                         List                          >>> B= A
                          List                                                                                         >>> B is A
                                                            Number                 0  17                              True
   Fruit                         0    “Apple”
                                 1    “Grapes”                                    1 123                                  In this case, Diagram looks like this
                                 2    “Orange”
                                                                                        5                                                      A
[1,2,3]
                                                                                                                                               B
                                                                                                       13                                                                                                         14
                                                                                                                      The parameter t and the variable letters are aliases for the same object. The stack diagram
                                                                                                                       looks like this:
        The association of a variable with an object is called a reference. In this example, there are
         two references to the same object.
      An object with more than one reference has more than one name, then the object is said to                        __Main__        Letters
         be aliased.                                                                                                                                           0  ‘a’
If the aliased object is mutable, changes made with one alias affect the other:
                                                                                                                                                               1  ‘b’
>>> B[0] = 9
>>> print A                                                                                                               Delete_head      t                   2  ‘c’
[9, 2, 3]
      Although this behaviour can be useful, it is error-prone. In general, it is safer to avoid
         aliasing when you are working with mutable objects.                                                          Since the list is shared by two frames, I drew it between them.
                                                                                                                      It is important to distinguish between operations that modify lists and operations that create
      For immutable objects like strings, aliasing is not as much of a problem.                                       new lists.
                                                                                                                For example, the append method modifies a list, but the + operator creates a new list:
In this example:                                                                                               >>> t1 = [1, 2]
A = ('banana')                                                                                                 >>> t2 = t1.append(3)
B=( 'banana')
                                                                                                               >>> print t1
It almost never makes a difference whether A and B refer to the same string or not.
                                                                                                               [1, 2, 3]
                                                                                                               >>> print t2
CLONING LIST:
                                                                                                               None
     If we want to modify a list and also keep a copy of the original, we need to be able to make
                                                                                                               >>> t3 = t1 + [3]
        a copy of the list itself, not just the reference.
                                                                                                               >>> print t3
     This process is sometimes called cloning, to avoid the ambiguity of the copy.
                                                                                                               [1, 2, 3]
     The easiest way to clone a list is to use the slice operator
                                                                                                               >>> t2 is t3
>>>a=[1,2,3]
                                                                                                               False.
>>>b=a[:]
>>>print b
                                                                                                             6. Explain about tuples and also the concept of tuple assignment and tuples as return value with
[1,2,3]                                                                                                         example.
     Taking any slice, creates a new list. In this case the slice happens to consists of the whole                 A tuple is a sequence of values.
        list.                                                                                                       The values can be any type, and they are indexed by integers, so in that respect tuples a like
     Now we are free to make changes to b without worrying about list ‘a’.                                           lists. The important difference is that tuples are immutable.
>>>b[0]=5
                                                                                                                   Syntactically, a tuple is a comma-separated list of values:
>>>print a
                                                                                                               >>> t = 'a', 'b', 'c', 'd', 'e'
>>>print b                                                                                                         Although it is not necessary, it is common to enclose tuples in parentheses:
[1,2,3]                                                                                                        >>> t = ('a', 'b', 'c', 'd', 'e')
[5,2,3]
                                                                                                                    To create a tuple with a single element, you have to include the final comma:
LIST PARAMETERS:                                                                                               >>> t1 = ('a',)
                                                                                                               >>> type(t1)
      Passing a list to a function, the function gets a reference to the list. If the function modifies a     <type 'tuple'>
       list parameter, the caller sees the change.
                                                                                                                    Without the comma, Python treats ('a') as a string in parentheses:
                                                                                                               >>> t2 = ('a')
For example, delete_head removes the first element from a list:
                                                                                                               >>> type(t2)
def delete_head(t):                                                                                            <type 'str'>
del t[0]
Here’s how it is used:                                                                                             Another way to create a tuple is the built-in function tuple. With no argument, it creates an
>>> letters = ['a', 'b', 'c']                                                                                          empty tuple:
>>> delete_head(letters)                                                                                       >>> t = tuple()
                                                                                                               >>> print (t)
>>> print letters
                                                                                                               ()
['b', 'c']
                                                                                                      15                                                                                                          16
      Most list operators also work on tuples. The bracket operator indexes an element:                      ValueError: too many values to unpack.
>>> t = ('a', 'b', 'c', 'd', 'e')
>>> print (t[0])
'a'                                                                                                           TUPLES AS RETURN VALUES:
And the slice operator selects a range of elements.
>>> print t[1:3]                                                                                                    A function can only return one value, but if the value is a tuple, the effect is the same as
('b', 'c')                                                                                                           returning multiple values.
But if you try to modify one of the elements of the tuple, you get an error:                                       For example, if you want to divide two integers and compute the quotient and remainder, it
>>> t[0] = 'A'                                                                                                       is inefficient to compute x/y and then x%y. It is better to compute them both at the same
TypeError: object doesn't support item assignment                                                                    time.
                                                                                                                   The built-in function divmod takes two arguments and returns a tuple of two values, the
      can’t modify the elements of a tuple, but you can replace one tuple with another:                             quotient and remainder.
>>> t = ('a', 'b', 'c', 'd', 'e')                                                                             You can store the result as a tuple:
>>>t = ('A',) + t[1:]                                                                                         >>> t = divmod(7, 3)
>>> print (t)                                                                                                 >>> print t
('A', 'b', 'c', 'd', 'e')                                                                                     (2, 1)
TUPLE ASSIGNMENT:                                                                                             Or use tuple assignment to store the elements separately:
                                                                                                              >>> quot, rem = divmod(7, 3)
      One of the unique features of the python language is the ability to have a tuple on the left           >>> print quot
       hand side of an assignment statement.                                                                  2
      This allows you to assign more than one variable at a time when the left hand side is a                >>> print rem
       sequence.                                                                                              1
In the below example , we have two element list (which is a sequence ) and assign the first and               Example of a function that returns a tuple:
second elements of the variables x and y in a single statement.                                               def min_max(t):
>>> m = ( ‘have’, ‘fun’)                                                                                      return min(t), max(t)
>>> x,y= m                                                                                                    max and min are built-in functions that find the largest and smallest elements of a sequence.
>>> x                                                                                                         min_max computes both and returns a tuple of two values.
‘have’
>>>y
‘fun’
                                                                                                            7. What is dictionary in python? List out the operations and methods with example.
Python roughly translates the tuple assignment syntax to be the following;
                                                                                                                     Keys are unique within a dictionary while values may not be.
>>>m = (‘have’, ‘fun’)
>>>x = m(0)                                                                                                          The values of a dictionary can be of any type, but the keys must be of an immutable data
>>>y = m(1)                                                                                                           type such as strings, numbers, or tuples.
>>>x                                                                                                                 Dictionary is one of the compound data type like strings, list and tuple. Every element in a
‘have’                                                                                                                dictionary is the key-value pair.
>>>y                                                                                                                 An empty dictionary without any items is written with just two curly braces, like this: {}.
‘fun’
    It is often useful to swap the values of two variables. With conventional assignments, you               Creating a Dictionary:
       have to use a temporary variable. For example, to swap a and b:                                            A dictionary can be Created by specifying the key and value separated by colon(:) and the
>>> temp = a                                                                                                         elements are separated by comma (,).The entire set of elements must be enclosed by curly
>>> a = b                                                                                                            braces {}.
>>> b = temp
                                                                                               17                                                                                                              18
     Example:                                                                                                  Example 4:
     >>>dict1 = {1: “Fruit”, 2: “Vegetabe”,3: “Fish”}                                                          My_list=[]
     >>>Print(dict1)                                                                                           for x in [20,40,60]:
     >>>{1: “Fruit”, 2: “Vegetabe”,3: “Fish”}                                                                          for y in [2,4,6]:
     >>> del dict[1]                                                                                                     My_list.append(x*y)
     >>>print(dict1)                                                                                           print (My_list)
     >>>{ 2: “Vegetabe”,3: “Fish”}                                                                             Output: [40, 80, 120, 80, 160, 240, 120, 240, 360]
                                                                                                               Note: This code multiplies the items in the first list (x) by the items in the second list (y) over each
     The len function also works on dictionaries; it returns the number of key:value pairs:                    iteration
     >>> len(dict1)                                                                                            Program For Example 4 using List Comprehension
     3
                                                                                                               My_list=[x*y for x in [20,40,60] for y in [2,4,6]]
                                                                                                               print(My_list)
8.       Illustrate List Comprehension with suitable examples.
                                                                                                               Output: [40, 80, 120, 80, 160, 240, 120, 240, 360]
                                                     (or)
                                                                                                               List Comprehensions allows us to transform one list or other sequence into a new list. They Provide
         Explain about the advanced list processing.
                                                                                                               a concise syntax for completing the task and limiting the lines of code.
                                                                                                               Example 5:
          A list Comprehension is a convenient way to produce a list from an iterable (a sequence or
                                                                                                               #To create a simple list
           other object that can be iterated over).
                                                                                                               x=[ i for i in range (10)]
          In the simplest form, a list comprehension resembles the header line of a “for Statement” inside
                                                                                                               print (x)
           square brackets.
                                                                                                               Output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
          However,in a list Comprehension, the for statement header is prefixed with an expression and
           surrounded by square bracket.
                                                                                                               ILLUSTRATIVE PROGRAMS:
                                           Syntax : [Expr(x) for x in iterable]                               1. SELECTION SORT:
                                                                                                                   def selectionSort(alist):
     Where:                                                                                                        for fill slot in range(len(alist) - 1, 0, -1):
     Expr(x) is an expression,usually but not always containing X.                                                 positionOfMax = 0
     Iterable is some iterable.An itrable may be a sequence or an unordered collection a list, string or           for location in range(1, fillslot + 1):
     tuple.                                                                                                        if alist[location] >alist[positionOfMax]:
     Example 1:                                                                                                    positionOfMax = location
                                                                                                                   temp = alist[fillslot]
     >>> a = [11,22,33,44]
                                                                                                                   alist[fillslot] = alist[positionOfMax]
     >>> b =[x*2 for x in a]                                                                                       alist[positionOfMax] = temp
     >>>b                                                                                                          alist = [54, 26, 93, 17, 77, 31, 44, 55, 20]
     [22,44,66,88]                                                                                                 selectionSort(alist)
     Example 2:                                                                                                    print(alist)
     Given the following list of strings:
     Names= [‘alice’, ‘ramesh’, ‘nitya’]                                                                           OUTPUT:
                                                                                                                   [26, 54, 93, 17, 77, 31, 44, 55, 20]
     A list of all upper case Names
     A List of Capitalized ( first letter upper case)
                                                                                                              2. INSERTION SORT:
     >>>[x.upper() for x in names]
                                                                                                                   def insertionSort(alist):
     [‘ALICE’, ‘RAMESH’, ‘NITA’]
                                                                                                                   for index in range(1,len(alist)):
     >>>[x.capitalize() for x in names]                                                                            currentvalue = alist[index]
     [‘Alice’ , ‘Ramesh’ , ‘Nita’]                                                                                 position = index
     Example 3:                                                                                                    while position > 0 and alist[position - 1] >currentvalue:
     >>> fish_tuple=('blowfish','clowfish','catfish','octopus')                                                    alist[position] = alist[position - 1]
     >>> fish_list=[fish for fish in fish_tuple if fish != 'octopus']                                              position = position - 1
     >>> print(fish_list)                                                                                          alist[position] = currentvalue
                                                                                                                   alist = [54, 26, 93, 17, 77, 31, 44, 55, 20]
     ['blowfish', 'clowfish', 'catfish']                                                                           insertionSort(alist)
                                                                                                                   print(alist)
                                                      21                                                  22
     OUTPUT:
     Splitting [54, 26, 93, 17, 77, 31, 44, 55, 20]
     Splitting [54, 26, 93, 17]
     Splitting [54, 26]
     Splitting [54]
     Merging [54]
     Splitting [26]
     Merging [26]
     Merging [26, 54]
     Splitting [93, 17]
     Splitting [93]
     Merging [93]
     Splitting [17]
     Merging [17]
     Merging [17, 93]
     Merging [17, 26, 54, 93]
     Splitting [77, 31, 44, 55, 20]
     Splitting [77, 31]
     Splitting [77]
     Merging [77]
                   PROBLEM SOLVING & PYTHON PROGRAMMING                                                       8. What are the rules for drawing a flowchart?
                    UNIT – I ALGORITHMIC PROBLEM SOLVING                                                             The standard symbols should only be used.
PART-A                                                                                                               The arrowheads in the flowchart represent the direction of flow in the problem.
                                                                                                                     The direction of the flow from top to bottom (or) left to right.
 1. What is an algorithm?                                                                                            The flow lines should not cross each other.
    Algorithm is defined as a step by step procedure for solving any problem. The sequence of steps to be            Keep flowchart as simple as possible.
    performed in order to solve a problem by the computer is known as an algorithm.                                  Words in the flowchart should be common and easy to understand.
                                                                                                                     More than one flowcharts connected by using connectors.
 2.   What are the characteristics of an algorithm?
         Algorithm has a finite number of inputs.                                                            9. What are the rules for writing Pseudocode?
         Every instruction should be precise and unambiguous.                                                       Write one statement per line.
         Ensure that the algorithm has proper termination.                                                          Capitalize initial keywords.
         Effectiveness of each step is very important.                                                              Ident to show hierarchy.
         The desired output must be obtained only after the algorithm terminates.                                   End multi line structure.
         The algorithm should be in sequence.                                                                       Keep statement language independent.
 3. How can measure the quality of algorithm?                                                                 10. List out the basic design structure (or) basic logic structure.
        Time - Lesser the time taken better the quality.                                                               Sequence structure.
        Memory - Require minimum computer memory.                                                                      Selection structure.
        Accuracy – Should provide accurate result.                                                                     Loop structure.
        Sequence - Procedure of an algorithm in a sequential form.
        Generality – fit to all type of inputs.                                                              11. List out the advantages of flowchart.
                                                                                                                        Communication.
 4. What are the kinds of statement available in algorithm?                                                             Effective analysis.
        Simple statement                                                                                               Proper documentation.
        Compound Statement.                                                                                            Efficient coding.
                                                                                                                        Proper Testing and Debugging.
 5. What are the representations of algorithm?                                                                          Efficient Program Maintenance.
        Normal English
        Program                                                                                              12. What are the limitations (or) disadvantages of flowchart?
        Flowchart                                                                                                    Complex Logic
        Pseudo code                                                                                                  Alteration or Modification
        Decision table                                                                                               No update.
16. What are the elements of functions?                                                                         22. List the applications of iteration algorithm.
        Function declaration                                                                                             Factorial of a given number.
        Function call                                                                                                    Reverse of a number.
        Function definition                                                                                              Fibonacci series.
                                                                                                                          Convert the string into lowercase.
17. Define State                                                                                                          Sum of digits.
         Sate is the result of a test (or) condition.                                                                    Armstrong number.
         If the result is “TRUE”, take a certain course of action and if the result is “FALSE”, take another
            course of action.                                                                                   23. List the applications of recursion algorithm.
                                                                                                                          Factorial of a given number using recursion.
18. Give the types of programming languages used in computer programming.                                                 GCD using recursion
         Machine language                                                                                                Towers of Hanoi.
         Assembler language                                                                                              8 Queen Problem.
         High level programming language.
                                                                                                                24. Differentiate testing and debugging
19. What are the steps required to solve the problem using algorithm?
         Understanding the problem.                                                                                                      Testing                                        Debugging
         Ascertaining the capabilities of the computational device.                                                Finding and locating the defect.                  Fixing the defect.
                                                                                                                    Done by testing team.                             Done by development team.
         Choosing between exact and approximate problem solving.
                                                                                                                    Testing is to find the defects                    Debugging is to remove the defects
         Algorithm design techniques.
         Method of specifying an algorithm
         Proving an algorithm’s correctness
         Analysing an algorithm.
         Coding an algorithm.
20. Differentiate Iteration and Recursion.
                          Iteration                                          Recursion
    An iterative function is one that loops to repeat    A recursive is a function calls itself repeatedly
    some part of the code.                               until some specified condition has been satisfied.
    Iterative approach involves four steps,              In recursive function, only base condition
    initialization, condition, execution and updation.   (terminate condition) is specified.
    Whereas iterative approach makes your code
                                                         Recursion keeps your code short and simple
    longer.
                                                         Recursion is slower than iteration due to
    Iteration is faster.
                                                         overhead of maintaining stack
                                           PART – B
 1. What is algorithm? Explain characteristics, quality and representation.                      2. Explain in detail about building blocks of algorithms.
             Algorithm is defined as a step by step procedure for solving any problem. The
       sequence of steps to be performed in order to solve a problem by the computer is known                  Instruction/Statements
       as an algorithm.                                                                                        State/Selection
                                                                                                               Control flow
Characteristics of an algorithm:
                                                                                                               Functions
            Algorithm has a finite number of inputs.
            Every instruction should be precise and unambiguous.                                    (i)   Instruction/Statements:
            Ensure that the algorithm has proper termination.                                           A statement is the smallest standalone element of a programming language that
            Effectiveness of each step is very important.                                                expresses some action to be carried out.
            The desired output must be obtained only after the algorithm terminates.
            The algorithm should be in sequence.                                                       An instruction written in a high-level language that commands the computer to
                                                                                                         perform a specified action.
Quality of algorithm:
                                                                                                        A program written in a language is formed by a sequence of one or more
            Time - Lesser the time taken better the quality.                                            statements. A statement may have internal components like expressions.
            Memory - Require minimum computer memory.
            Accuracy – Should provide accurate result.                                               Kinds of statements:
            Sequence - Procedure of an algorithm in a sequential form.                                i. Simple statements
                                                                                                                 Assignment:A=A+2
            Generality – fit to all type of inputs.
                                                                                                                 Goto:goto next;
Representation of algorithm:                                                                                     Return: return 10;
                                                                                                      ii. Compound statements
           Algorithm has a starting point and a final point. Between these two points are the             Block:begin------------end
            instructions that solve the problem.                                                           Do-loop:do-------------while(i!=10)
           Algorithms often have steps that repeat or require decisions.                                  For-loop:for(…)----------------
           Algorithm can be expressed in any language from natural languages to                         A statement is executed, with an expression is evaluated.
            programming languages.
                                                                                                     (ii)       State:
Example:
                                                                                                        An algorithm is deterministic automation for accomplishing a goal which, given an
Algorithm (find the area)                                                                                initial state, will terminate in a defined end-state.
                                                                                                        When an algorithm is associated with processing information, data is read from an
Step 1: start                                                                                            input source or device, written to an output device, and/or stored for further
Step 2: Read the value of radius r                                                                       processing.
Step 3: calculate area=3.14*r*r                                                                         Stored data is regarded as part of the internal state of the algorithm.
Step 4: Print the area of circle.                                                                       The state is stored in a data structure.
Step 5: Stop
     (iii)   Control flow :( Explain the control structures in detail)                           Pseudocode
                                                                                                         IF condition THEN
         Flow of control (or) control flow is the order function calls, instructions, and               Process 1
                                                                                                         ……..
     statements are executed or evaluated when a program is running.
                                                                                                         ……..
         Program control structures are defined as the program statements that specify the              ENDIF
     order in which statements are executed.
        (i)Sequence Control Structures                                                                   Flowchart
         Sequential control structure is used to perform the actions one after another.
         This structure is represented by writing one process after another.                                YES
                                                                                                                                IF
Example                                                                                                                      CONDITION
                                                                                                        PROCESS
    Algorithm (Add two numbers)                                    Flowchart
     Step 1: Start                                                                                                                 NO
                                                            START
     Step 2: Get the value of a and b.
     Step 3: c=a+b
                                                             Read a, b
     Step 4: print value c.
     Step 5: End.                                                                                Example:
                                                            C=a+b
    Pseudocode                                                                                   IF age>=58 THEN
    READ a, b                                                                                    WRITE person gets retirement
                                                            Print C                              ENDIF
    C=a+b
    WRITE C
                                                             END
        READ num1,num 2
                                                                                                 A flow chart is a diagrammatic representation that illustrates the sequence of operations
        Result=num1 +num 2
                                                                                                  to be performed to arrive at the solutions.
        WRITE result
                                                                                                 Each step in the process is represented by a different symbol and contains a of the
Guidelines for writing pseudocode:
                                                                                                  process step.
             Only one statement per line: Readability improves if just one action for the       The flowchart symbols are linked together with arrows showing the flow of directions.
              computer is written in one statement.
             Capitalized initial keyword: Keyword like READ,WRITE etc.
              Example: IF,ELSE,ENFIF,WHILE,ENDWHILE etc.                                        S.NO       NAME OF SYMBOL                     SYMBOL                  DESCRIPTION
                                                                                          Flowchart:
                              Analyze the algorithm                                        Flow chart is a method of expressing an algorithm by a collection of connected geometric
                                                                                             shapes containing descriptions of the algorithm steps.
                                                                                                  RECURSION:
                                                                                                     Recursive function is one that calls itself again to repeat the code.
                                                                                                     Recursion is a problem, solving approach by which a function calls itself repeatedly until
                                                                                                      some specified condition has been satisfied.
                                                                                                     Recursion splits a problem into one or more simpler versions of itself.
                                                                                                     In a recursive algorithm the algorithm calls itself with smaller input values.
                                                                                                     The recursive programs require more memory and computation compared with iterative
                                                                                                      algorithms.
     Example: factorial of a given number.                                                       .
     n!=n x (n-1)!
     4!=4 x(4-1)!
       =4 x (3!)
       =4 x 3 x 2 x1
       =24
Advantages of recursive functions:
   Recursion can produce simpler, more natural solutions to a problem.
   It is written with less number of statements.
   Recursive functions are effective where the terms are generated successively to compute
     a value.
   It requires few variables.
   It is useful for branching process.
6. ILLUSTRATIVE PROBLEMS:
   1. To find a minimum in a list:
   Problem statement: Find in a minimum in a list.
   Problem description:
       Minimum in a list of elements can be achieved in different ways.
       One way is to sort the list of element in ascending order and get the first element as
         minimum.
       Another method is to compare each element with other.
       Assume the first element as minimum element and start comparing with the next
         element.
       If the next element is smaller than assume the second the minimum and keep
         repeating the procedure till the last element.
      Algorithm:
      Step1: Get the list of elements.
      Step2: Assume first element as Min.
      Step 3: Compare Min with next element.
      Step 4: If MIN is greater than next element; Set MIN=next element
      Step 5: Repeat step 3 and 4 till the last element.
      Step 6: Display MIN as the minimum element of the list.
                                                                                             1                                                                                            2
                                   UNIT-III                                                             Syntax:
                                                                                                  if (Condition):
                           CONTROL FLOW, FUNCTIONS                                                             True Statement Block
                                                                                                        else:
SYLLABUS:
                                                                                                               False Statement Block
Conditionals: Boolean values and operators, conditional (if), alternative (if-else), chained
conditional(if-elif-else); Iteration: state, while, for, break, continue, pass; Fruitful           5. What is the purpose of iteration? Give example.
functions: return values,parameters, local and global scope, function composition,
recursion; Strings: string slices,immutability, string functions and methods, string                     ➢ A loop statement allows us to execute a statement or group of statements
module; Lists as arrays. Illustrative programs:square root, gcd, exponentiation, sum an
                                                                                                           multiple times.
array of numbers, linear search, binary search.
                                                                                                         ➢ Repeated execution of a set of statements is called iteration.
                                                                                                              Count=0
   1. Define Boolean values
                                                                                                              While(count<9):
                                                                                                              Print’the count is:’,count
      The Boolean data type have 2 values (usually denoted by True or False), When
                                                                                                              Count=count+1
      converting a Boolean to an integer, the integer value is always 0 or 1, but when
      converting an integer to a Boolean, the Boolean value is true for all integers except 0.
                                                                                                   6. Illustrate the flow chart of if-elif- else statements.
   2. List out the Boolean operators.
                                                                                                                                           False
         ➢ Or operator.                                                                                           Test
         ➢ And operator.                                                                                       Condition 1
         ➢ Not operator.
         ➢
                                                                                                                                                                  False
   3. Define conditional statements.                                                                                   True
                                                                                                                                                    elif Test
                                                                                                                                                   Condition 2
   ➢ The execution of the program acts according the conditions. This concept is known as
     Conditional statements or Branching Statements.                                                      Body of if –Statement
                                                                                                                                                           True            Body of Else
                                                                                                                 Block 1
   ➢ Conditional Statements are used to perform different computation or action depending
                                                                                                                                                Body of elif –
     on whether a condition evaluates to TRUE or FALSE.
                                                                                                                                              Statement Block 2
            1.   If Statement
            2.   If...else Statement
            3.   If..elif..else Statement
                                                                                                   7. What are unconditional looping statements?
            4.   Nested if...elif..Else Statement.
                                                                                                         ➢ Loop that needs to be executed compulsorily without any condition is called an
                                                                                                             unconditional loop.
   4. Write the syntax of if and if-else statements.
                                                                                                         ➢ The loop will be executed in theprogram without any conditional checks.
                                                                                                             Example:
    ➢ Condition if:The boolean expression after the if statement is called the condition. If it
       is true, then the indentedstatement gets executed.                                                       ➢ Break statement.
       Syntax:                                                                                                  ➢ Continue statement.
if (Condition):                                                                                                 ➢ Pass statement.
                True Statement Block                                                               8. Explain about break statement with an example.
    ➢ Alternative(IF....Else Statement):A second form of the if statement is alternative              ➢ It terminates the current loop and resumes execution at the next statement.
       execution, in which there are two possibilities and the condition determines which one         ➢ The most common use for break is when some external condition is triggered
       gets executed.                                                                                    requiring a hasty exit from a loop.
                                                                                          3                                                                                                4
   ➢ The break statement can be used in both while and for loops.
                                                                                                  Actual parameter:
          Syntax:                                                                                       ➢     Parameter is defined in the function call.
          Break                                                                                   Formal parameter:
                                                                                                          ➢       Parameter is defined as part of function definition.
   Example :                                                                                              ➢       Actual parameter value is received by formal parameter
   forletter in 'Python':
   if ( letter == 'h'):                                                                        12. Classify global variable with local variable.
   break                                                                                              ➢ A variable in the program can be either local variable or global variable.
   print(“Current Letter :”, letter)                                                                  ➢ A global variable is a variable that is declared in the main program while a
                                                                                                          local variable is a variable declared within the function.
   Output:
                                                                                                  Example:
   Current Letter : P
   Current Letter : y                                                                              S=10 # s is the global variable
   Current Letter : t                                                                              def f1()
                                                                                                   S=55# s is the local variable
9. Discuss about continue and pass statements.                                                     Print s
                                                                                                   Output:
     Continue Statement:                                                                          55
             •     It returns the control to the beginning of the while loop.
             •     The continue statementrejects all the remaining statements in the current   13. Describe various methods used on a string. (Any Four)
   iteration of the loop and movesthe control back to the top of the loop.
             •     The continue statement can be used in both while and for loops.             ➢ is digit()-returns true if string contains only digits and false otherwise.
     Syntax:                                                                                   ➢ islower()-returns true if string has at least 1 cased character and all cased characters are
     Continue
                                                                                                 in lowercase and false otherwise.
     Pass Statement:
                                                                                               ➢ isnumeric()-returns true id a Unicode string contains only numeric characters and false
        • It is used when a statement is required syntactically but you do not want any
   command or code to execute.                                                                   otherwise.
        • The pass statement is a null operation; nothing happens when it executes.            ➢ isupper()-returns true if string has at least one cased character and all cased characters
     Syntax:                                                                                     are in uppercase and false otherwise.
     Pass
                                                                                               14. What are the advantages and disadvantages of recursion function?
10. What are function and fruitful function?                                                       Advantages:
                                                                                                      ➢ Reduces time complexity.
      ➢    Function: It is a block of statement that will execute for a specific task.                ➢ Performs better in solving problems based on tree structures.
      ➢    Fruitful function:Functions that return values are called fruitful function.            Disadvantages:
        Input the value                                                                               ➢ It is usually slower due to the overhead of maintain stack.
                                                    Return the result                                 ➢ It usually uses more memory of the stack.
                               Fruitful functions
16. How will you slice the given string in python?                                                                                               16 MARKS
    A segment of a string is called a slice. Selecting a slice is similar to selecting a
    character:
                                                                                                    1.    Boolean Value and operators(8m)
    Example
    >>> s = 'Monty Python'
    >>> print s[0:5]                                                                                        ➢ The Boolean data type have 2 values (usually denoted by True or False), When
    Monty                                                                                                     converting a Boolean to an integer, the integer value is always 0 or 1, but when
    >>> print s[6:13]                                                                                         converting an integer to a Boolean, the Boolean value is true for all integers except 0.
    Python
                                                                                                         Boolean and logical operators:
17. What will be the output of print str[2:5] if str=’helloworld!’?
      x > y # x is greater than y                                                                                       ➢ If the text condition is FALSE, the Statements are not executed.
      x < y # x is less than y                                                                                            If statements have the same structure as function definitions: a header followed by an
      x >= y # x is greater than or equal to y                                                                            indented block. Statements like this are called compound statements.
      x <= y # x is less than or equal to y
                                                                                                                   Syntax:
      Although these operations are probably familiar to you, the Python symbols are different from
                                                                                                                   if (Condition):
      themathematical symbols. A common error is to use a single equal sign (=) instead of a double
                                                                                                                                     True Statement Block
      equalsign (==). Remember that = is an assignment operator and == is a comparison operator.
          •    Conditional Statements are used to perform different computation or action depending                Flowchart for if..else statement
               on whether a condition evaluates to TRUE or FALSE.
      ,
          1.   If Statement                                                                                                                                    Test
          2.   If...else Statement                                                                                                                           Condition
          3.   If..elif..else Statement
                                                                                                                   If Condition is false                                                      If Condition is true
          4.   Nested if...elif..Else Statement
                                                                                                                                  False Condition                                   True Condition
      1. Conditional (If Statement):
                                                                                                                                    Statement                                         Statement
          ➢ The Boolean expression after the if statement is called the condition. If it is true, then
            the indentedstatement gets executed.
                                                                                           9                                                                                                 10
Example 1:                                                                                      Example:
X=4                                                                                             X=10
                                                                                                Y=5
if x%2 == 0:
                                                                                                if x < y:
print 'x is even'                                                                               print 'x is less than y'
else:                                                                                           elif x > y:
print 'x is odd'                                                                                print 'x is greater than y'
                                                                                                else:
Output:                                                                                         print 'x and y are equal'
X is even
                                                                                                Output:
Explanation:                                                                                    x is greater than y
   ➢ If the remainder when x is divided by 2 is 0, x is even
                                                                                                4.Nested if...elif..Else Statement:
   ➢ If the condition is false, the second set of statements is executed.(i.e) x is odd
                                                                                                        •   If..elif..else statement can be used inside another if..elif..else statement.This is
3.Chained condidtional (If...elif...else Statement):
                                                                                                            called nesting. One condition can also be nested within another.
                                                                                                 Syntax:
    ➢ If there are more than two possibilities and need more than two branches.
                                                                                                            if (Condition 1):
    ➢ One way to express a computation like that is a chained conditional.
 Syntax:                                                                                                         if (Condition 2):
   if (Condition 1):                                                                                                   True Statement 2
               Statement Block1                                                                         else:
       elif(Condition 2):                                                                                            False Statement 2
                Statement Block 2                                                                       else:
   elif(Condition 3):                                                                                             False statement 1
                Statement Block 3
       else:
                                                                                                Flowchart for Nested if..elif...else statement:
              Statement(s)
                    True
                                           Elif Test              False
                                          Condition 2                                           Example:
                                                                                                X=10
    Body of if –Statement
                                                                            Body of Else
                                                                                                Y=5
           Block 1                                 True                                         if x == y:
                                                                                                print 'x and y are equal'
                                       Body of elif –                                           else:
                                     Statement Block 2
                                                                                                     11                                                                                                         12
                                                    Flowchart:
                                                                                                                     •   Here, statements may be a single statement or a block of statements.
  Syntax:                                                                            For each item                   •   The condition may be any expression, the loop iterates while the condition is true, when
  For <variable> in <sequence>:                                                      in sequence                         the condition becomes false, program control passes to the line immediately following
  <statement 1>                                                                                                          the loop.
                                                                                                                                                    Enter While
     <statement 2>                                                                                                Flowchart:                                 Loop
     <statement 3>                                                              Test                      FALSE
     .                                                                       EXPRESION
     .                                                                                                                                         Test                  False
     .
     <statement n>                                                                                                                          Condition
                                                                                     TRUE
                                                                                                                                                      True
                                                                          Body of the Loop
                                                                                                                                                                    Exit Loop
                                                                                           13                                                                                                14
 3. Nested Loop:
                                                                                                                                           Condition Code
    •   Nesting is defined as placing of one loop inside the body of another loop.
    •   It can use one or more loop inside any another while, for..loopetc
                                                                                                                            If Condition
  Syntax:                                                                                                                   is True
  For <variable> in <sequence>:                                                                                                                                                      Break
                                                                                                                                             Condition
       For<variable> in <sequence>:
       Statement(s)
  Statement(s)
                                                                                                                                                    If condition is false
4. STATE:
    ➢ An algorithm is deterministic automation for accomplishing a goal which, given an
      initial state, will terminate in a defined end-state.
    ➢ When an algorithm is associated with processing information, data is read from an input   Example 1:                                         Example 2:
      source or device, written to an output device, and/or stored for further processing.      for letter in 'Python':                            var = 10
    ➢ Stored data is regarded as part of the internal state of the algorithm.                   if ( letter == 'h'):                               while var> 0:
    ➢ The state is stored in a data structure.                                                  break                                              print (“Current variable value :”, var)
                                                                                                print(“Current Letter :”, letter)                  var = var -1
5. Explain about unconditional looping statements with relevant example.                                                                           if (var == 5):
                                                                                                Output:                                            break
    •   It controls the flow of program execution to get desired result.                        Current Letter : P                                 print( "Good bye!")
                                                                                                Current Letter : y
 Python supports following three control statements:
                                                                                                Current Letter : t                                 Output:
     1. Break.                                                                                                                                     Current variable value : 9
     2. Continue.                                                                                                                                  Current variable value : 8
     3. Pass.                                                                                                                                      Current variable value : 7
  Control Statements                                    Explanation                                                                                Current variable value : 6
 Break                    It terminates the loop statement and transfers execution to the                                                          Good bye!
                          statement immediately following loop.
 Continue                 Causes the loop to skip the remainder of its body and immediately
                          retest its condition prior to reiterating
 Pass                     The pass statement in python is used when a statement is required
                          syntactically but we do not want any command or code to execute.
                                                                                                 15                                                                                                   16
                                                                                                         Example 1:
                                                                                                         forletter in 'Python':
                                                                                                         if ( letter == 'h'):
                                                                                                         Pass
                                             Condition Code                                              Print(“This is pass block”)
                                                                                                         print(“Current Letter :”, letter)
                                                                                                         print(“Good bye”)
                              If Condition
                              is True                                                                    Output:
                                                                                      Continue           Current Letter : P
                                               Condition                                                 Current Letter : y
                                                                                                         Current Letter : t
                                                                                                         This is pass block
                                                                                                         Current Letter : h
                                                      If condition is false                              Current Letter : o
                                                                                                         Current Letter : n
                                                                                                         Good Bye
                                                                                                  Call by reference:
    ➢ We have seen the return statement before, but in a fruitful function the return statement      ➢ A copy of actual parameter is passed to formal arguments and any changes made to the
      includes an expression.                                                                            formal arguments will affect the actual arguments.
    ➢ Parameter is the input data that is sent from one function to another.
                                                                                                  COMPOSITION:
    ➢ Parameter is of two types,
          ✓ Actual parameter.                                                                        ➢ When a function is called from within another function, it is called composition.
                                                                                                     ➢ A function that takes two points, the center of the circle and a point onthe
          ✓ Formal parameter.
                                                                                                       perimeter, and computes the area of the circle.
                                                                                                     ➢ Assume that the center point is stored in the variables xc and yc, and the perimeter
Actual parameter:                                                                                      point is in xp and yp.
   ➢ Parameter is defined in the function call.                                                      ➢ The first step is to find the radius of the circle, which is the distance between the two
Formal parameter:                                                                                      points.
    ➢ Parameter is defined as part of function definition.                                             radius = distance(xc, yc, xp, yp)
    ➢ Actual parameter value is received by formal parameter.                                          result = area(radius)
 # Function With Actual And Formal Parameters                                                            defcircle_area(xc, yc, xp, yp):
 def cube(x)                                                                                             radius = distance(xc, yc, xp, yp)
 return x*x*x                                                                                            result = area(radius)
 a=input(“enter the number:”)                                                                            return result
 b=cube(a)
 Print(“cube of the given number:”,b)                                                                    we can make it more concise by composing the function calls:
➢ The operator [n:m] returns the part of the string from the “n-eth” character to the “m-            Output:
  eth” character,including the first but excluding the last.                                         Jello, world!
                                                                                                  ➢ This example concatenates a new first letter onto a slice of greeting. It has no effect on
                                                                                                    the original string.
                                                                                                  ➢ This form of dot notation specifies the name of the method, upper, and the name of the
➢ If the first indexes is greater than or equal to the second the result is an empty string,        string to apply the method to, word. The empty parentheses indicate that this method
  represented by two quotation marks.                                                               takes no argument.
                                                                                                  ➢ A method call is called an invocation; in this case, we would say that we are invoking
       Example:                                                                                     upper on the word.
       >>> fruit = 'banana'
       >>> fruit[3:3]                                                                          >>>word = 'banana'
                                                                                               >>>index = word.find('a')
➢ An empty string contains no characters and has length 0, but other than that, it is the      >>>print index
  same as anyother string.                                                                         1
                                                                                                  ➢ The find method is more general than our function; it can find substrings, not just
                                                                                                    characters:
                                                                                               >>>word.find('na')
                                                                                           21                                                                                                     22
     2
   ➢ It can take as a second argument the index where it should start:                          8.Why we need list instead of array in Python?Explain in detail
>>>word.find('na', 3)
     4                                                                                          about lists with example?
   ➢ And as a third argument the index where it should stop:
>>>name = 'bob'                                                                                 LIST AS ARRAY
>>>name.find('b', 1, 2)
    -1                                                                                             ➢ A list in Python is just an ordered collection of items which can be of any type.
                                                                                                   ➢ By comparison an array is an ordered collection of items of a single type - so in
METHODS:                                                                                             principle a list is more flexible than an array but it is this flexibility that makes things
                                                                                                     slightly harder when you want to work with a regular structure.
       METHODS                                       DESCRIPTION                                   ➢ A list is also a dynamic mutable type and this means you can add and delete elements
                                                                                                     from the list at any time.
 Capitalize()           Capitalizes first for letter of string                                     ➢ To define a list you simply write a comma separated list of items in square brackets,
 is digit()            returns true if string contains only digits and false otherwise.                 myList=[1,2,3,4,5,6]
 islower()             returns true if string has at least 1 cased character and all cased         ➢ This looks like an array because you can use "slicing" notation to pick out an individual
                                                                                                     element - indexes start from 0.
                       characters are in lowercase and false otherwise.
                                                                                                     For example print myList[2]
 isnumeric()-           returns true id a Unicode string contains only numeric characters and      ➢ It will display the third element, i.e. the value 3 in this case. Similarly to change the
                        false otherwise                                                              third element you can assign directly to it:
 isupper()              returns true if string has at least one cased character and all cased        myList[2]=100
                        characters are in uppercase and false otherwise.
                                                                                                   ➢ The slicing notation looks like array indexing but it is a lot more flexible.
STRING MODULE
                                                                                                     For example myList[2:5]
   •    The string module provides tools to manipulate strings. Some methods available in the      ➢ It is a sublist from the third element to the fifth i.e. from myList[2] to myList[4].
        standard data structure are not available in the string module (e.g. isalpha).
                                                                                                   ➢ The final element specified i.e. [5] is not included in the slice.
    Example:
    >>>import string                                                                               ➢ Also notice that you can leave out either of the start and end indexes and they will be
    >>>string.digits                                                                                 assumed to have their maximum possible value.
    ‘0123456789’
    >>>string.ascii_letters                                                                          For example myList[5:] is the list from List[5] to the end of the list andmyList[:5]
    ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’                                           is the list up to and not including myList[5] andmyList[:] is the entire list.
    >>>string.ascii_lowercase                                                                      ➢ List slicing is more or less the same as string slicing except that you can modify a slice.
    ‘abcdefghijklmnopqrstuvwxyz’
                                                                                                     For example:
    >>>string.ascii_uppercase
                                                                                                     myList[0:2]=[0,1] has the same effect as
    ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’                                                                       myList[0]=0
    >>>string.hexdigits                                                                                myList[1]=1
    ‘0123456789abcdefABCDEF’                                                                       ➢ List slicing is more or less the same as string slicing except that it can modify a slice.
    >>>string.octdigits
    ‘01234567’                                                                                  Basic array operations
    >>>string.punctuation
                                                                                                   ➢ For example, to find the maximum value (forgetting for a moment that there is a built-
    ‘!”@#$%^&*()”:><{}[]’
                                                                                                     in max function) you could use:
    >>>string.whitespace
                                                                                                     m=0
    ‘\t\n\r\x0b\x0c’
                                                                                                     for e in myList:
    >>>string.Capwords(“python”)                                                                     if m<e:
    ‘PYTHON’                                                                                         m=e
                                                                                                  23                                                                        24
       ➢ This uses the for..in construct to scan through each item in the list. This is a very useful   3. Exponentiation
           way to access the elements of an array but it isn't the one that most programmers will be       n = input ("Enter a number : ")
           familiar with. In most cases arrays are accessed by index and you can do this in Python:        n = int(n)
  m=0                                                                                                      e = input ("Enter an exponent : ")
  for i in range(len(myList)):                                                                             e = int(e)
   if m<myList[i]:                                                                                         r=n
    m=myList[i]
                                                                                                           for i in range (1,e):
       ➢ Notice that we are now using range to generate the sequence 0, 1, and so on up to the
           length of myList.                                                                               r=n*r
       ➢ You have to admit that there is a lot to be said for the simplicity of the non-index              print(r)
           version of the for loop but in many cases the index of the entry is needed. There is the
           option of using the index method to discover the index of an element but this has its           OUTPUT:
           problems.                                                                                       Enter a number : 2
                                                                                                           Enter an exponent : 2
  ILLUSTRATIVE PROGRAMS:                                                                                   4
                                                                                                        4. Sum an array of elements.
1. Find the square root of number.
                                                                                                           a = []
  n = int(input("Enter a number"))                                                                         n = int(input("Enter number of elements:"))
  howmany = int(input("Enter another number"))                                                             for i in range(1, n+1):
  approx = 0.5 * n                                                                                         b = int(input("Enter element:"))
  for i in range(howmany):                                                                                 a.append(b)
  betterapprox = 0.5 *(approx + n/approx)                                                                  a.sort()
  approx = betterapprox                                                                                    print("Largest element is:",a[n-1])
  print("The square root of a number is:", betterapprox)
                                                                                                           OUTPUT:
  OUTPUT:                                                                                                  Enter number of elements:5
  Enter a number25                                                                                         Enter element:5
  Enter another number36                                                                                   Enter element:54
  The square root of a number is: 5.0                                                                      Enter element:24
                                                                                                           Enter element:58
2. GCD of a given number.                                                                                  Enter element:1
                                                                                                           Largest element is: 58
  d1 = int(input("Enter a number:"))
  d2 = int(input("Enter another number"))                                                                  5. Linear search
  rem = d1 % d2
  while rem != 0 :                                                                                         list = [4,1,2,5,3] #Set up array
     d1 = d2                                                                                               search = int(input("Enter search number")) # Ask for a number
     d2 = rem                                                                                              for i in range(0,len(list)): # Repeat for each item in list
  rem=d1 % d2                                                                                              if search==list[i]: #if item at position i is search time
  print ("gcd of given numbers is :", d2)                                                                  print(str(search)+"found at position " + str(i)) #Report found
  OUTPUT:                                                                                                  OUTPUT:
                                                                                                           Enter search number 4
  Enter a number:2                                                                                         4 found at position 0
  Enter another number4
  gcd of given numbers is : 2                                                                              6. Binary search
                                                                                                              defbinary_search(item_list,item):
                                                                                                              first = 0
                                       25
last = len(item_list)-1
found = False
while( first<=last and not found):                                                                                                        6
mid = (first + last)//2
ifitem_list[mid] == item :
                                                                                  PART-B
found = True                                1. Explain the concepts Python interpreter and interactive mode in detail.
else:
if item <item_list[mid]:                                  A Python is a high-level programming language. Python is an easy to learn,
last = mid - 1                                             powerful programming language.
else:                                                     Python is programming language as well as scripting language. Python is also
first = mid + 1                                            called as Interpreted language.
return found
print(binary_search([1,2,3,5,8], 6))           Advantages of High-level language:
print(binary_search([1,2,3,5,8], 5))
                                                            It is much easier to program in a high-level language
OUTPUT:
                                                            Programs written in a high-level language take less time to write
False
                                                            They are shorter and easier to read
True
                                                            High-level languages are portable, meaning that they can run on different
                                                             kinds of computers with few or no modifications.
                                               Interpreter:
                                                          Translates program one statement at a time.
                                                          It takes less amount of time to analyze the source code but the overall
                                                            execution time is slower.
                                                          No intermediate object code is generated, hence are memory efficient.
                                                          Continues translating the program until the first error is met, in which case it
                                                            stops. Hence debugging is easy.
                                                          Programming language like Python, Ruby use interpreters.
                                               Compiler:
                                                        Scans the entire program and translates it as a whole into machine code.
                                                        It takes large amount of time to analyze the source code but the overall
                                                         execution time is comparatively faster.
                                                        Generates intermediate object code which further requires linking, hence
                                                         requires more memory.
                                                        It generates the error message only after scanning the whole program. Hence
                                                         debugging is comparatively hard.
                                                        Programming language like C, C++ uses compilers.
                                                                                           7                                                                                               8
                                                                                                Program:
                                                                                                                       A computer program is a collection of instructions that performs a
                                                                                                           specific task when executed by a computer. A computer requires programs to
                                                                                                           function and typically executes the program's instructions in a central processing
                                                                                                           unit. A computer program is usually written by a computer programmer in a
There are two ways to use the interpreter: interactive mode and script mode.
                                                                                                           high-level programming language.
Interactive mode:
                                                                                                Elements of program:
           Working in interactive mode is convenient for testing small pieces of code
             because you can type and execute them immediately.                                           input: Get data from the keyboard, a file, or some other device.
           Interactive mode is a command line shell which gives immediate feedback for                   output: Display data on the screen or send data to a file or other device.
             each statement, while running previously fed statements in active memory.                    math: Perform basic mathematical operations like addition and
           As new lines are fed into the interpreter, the fed program is evaluated both in                 multiplication.
             part and in whole.                                                                           conditional execution: Check for certain conditions and execute the
           Interactive mode is a good way to play around and try variations on syntax.                     appropriate sequence of statements.
                                                                                                          repetition: Perform some action repeatedly, usually with some variation.
Example:
             >>> 1 + 1                                                                          Debugging:
              Output:2
                                                                                                            Programming errors are called bugs and the process of tracking them down is
         >>> print (5*7)                                                                                     called debugging.
             Output: 35                                                                                     Three kinds of errors can occur in a program: syntax errors, runtime errors,
                                                                                                             and semantic errors.
            >>>, is the prompt the interpreter uses to indicate that it is ready.
                                                                                                Syntax Errors:
Script mode:
           Store code in a file and use the interpreter to execute the contents of the file,               Python can only execute a program if the syntax is correct; otherwise, the
             which is called a script.                                                                       interpreter displays an error message.
           Python scripts have names that end with .py.                                                    Syntax refers to the structure of a program and the rules about that structure.
           To execute the script, you have to tell the interpreter the name of the file.
           Save code as a script which can modify and execute it in the future.                Runtime Errors:
           In script mode, however, Python doesn't automatically display results.                        The second type of error is a runtime error, so called because the error does
                                                                                                            not appear until after the program has started running.
           Explicitly from the command line. In this case running Python file and
             providing the name of the script as an argument.                                             These errors are also called exceptions because they usually indicate that
                                                                                                            something exceptional (and bad) has happened.
 EX:
Sample.py                                                                                                 Runtime errors are rare in the simple programs.
a=10                                                                                            Semantic errors:
b=20                                                                                                      The third type of error is the semantic error. If there is a semantic error in
print (a+b)                                                                                          your program, it will run successfully in the sense that the computer will not generate
                                                                                                     any error messages, but it will not do the right thing.
Output : 3
                                                                                                Scope of Python:
                                                                                              9                                                                                               10
     •       Game Programming, Distributed Programming                                             Initial_name is the value to initialized (Integer, Floating Point, Complex, Boolean)
                                                                                                          Integer        :   a = 10                Complex Integer :    Z = 1+2j
2. Explain in detail about values and data types available in python with examples.                       Floating Point :   b = 5.6               Boolean Value :      Flag = True / False
                                                                                                   1.Integers:
          A Value is one of the fundamental things, like a letter or a number that a program
                                                                                                       Integers are whole Numbers with no Fractional parts and Decimal Point. They can
           manipulates. They are grouped into different data types.                                     have Positive, Negative or zero Values.
          Data type is a set of values and allowable operations on those values. Data types
           allow programming languages to organize different kinds of data.                                             Data Type                         Example
                                                                                                                       Integer type                -55,-45,-28,-2,0,5,19,56
2.Floating Point:
                                                                                                       Numbers with fractions or decimal points are called floating point numbers. A
   Numbers:                                                                                             floating point number will consists of signs (+,-) sequence of decimal digits.
   A Numerical literals Containing only the digits (0-9), Optional sign character (+ or -) and a
                                                                                                                        Data Type                          Example
   decimal point.
                                                                                                                 Floating Point numbers          -1.25,-1.0,0.0,0.5,12.6,15.2
   The types of Numerical Data types are:
                                                                                                   Floating Point belongs to the type Float.
            Integer (signed integer and long int)                                                 Example for Float:
            Floating Point
                                                                                                   >>> c=2.5
            Boolean Value
            Complex integer                                                                       >>>type(c)
                                                                                                   <type „Float‟
                                                                                                   3.Boolean Value:
   Syntax:                                                                                             Boolean is a data type named after George Boole. Boolean often called bools, which
                                                                                                          are either TRUE or FALSE condition.It is the Simplest Built-in type in python.
   Variable_name = initial_value
                                                                                       11                                                                                                     12
    A Boolean variable can take only two values True (1) and False (0)                                                                   Output: AAAAA
                                                                                                2. Lists:
                  Data Type                          Example                                         Lists in Python are used to store a list of values.
                 Boolean Value                      True / false                                     It is an ordered sequence of values which may consists of any type of data
                                                                                                       ( Intger, Float,String etc)
    Boolean Value belongs to the type Bool.                                                         Values in the list are called element/items.
Example for Float:                                                                                   They are Mutable and indexed ordered.
>>> c=True                                                                                      To create a list, we define a variable to contain an ordered series of items separated by a
>>>type(c)                                                                                      comma. A square bracket is used to enclose the items.
<type „bool‟>                                                                                   Syntax:
    A Boolean true value is always considered to be a Non-zero, Non-null and Non-              To create an empty list : My_list=[ ]
     empty value.                                                                               To create a list of items : My_list=[ item1, item2,item3….]
                                                                                                Example:
Sequence:                                                                                       #List with Integer
      A sequence is an ordered collection of items, indexed by positive integers. It is a       Num_list=[ 0,5,4,7,8]
combination of mutable and non mutable data types.                                              #List with String
The types of sequence data types are                                                            String_list=[ „cat‟, „rat‟, „dog‟, „lion‟]
    String
    lists                                                                                   3. Define variable. Explain how to declare variable and explain about the scope of
1.Strings:                                                                                      variable.
    Strings are literal or it is a sequence of characters which may consists of letters,
       number, special symbols or a combination of these types represented within the pair          A variable is basically a name that represent some value, Variable are reserved
       of double or single quotation marks.                                                          memory location to store values.
Creating string is as Simple as assigning a value to a variable.                                    Every value in Python has a datatype.Diffferent data types in python are Number,
>>> a = “Hello”                                                                                      List, Tuple, Strings etc.
>>>type(a)
                                                                                                Syntax : Variable_name = Value
<type „str‟>
Operations on Strings:                                                                          Rules for Naming a variable:
   1. + Operator
   2. * Operator                                                                                    A variable name can contain both Upper case (A-Z) and Lower case characters(a-z)
                                                                                                     and Underscore character ( _ ).
                                                                                                    Numbers are allowed, but they should not be used at the beginning of the variable
    The + operator concatenate strings
                                                                                                     name. Eg: 1firstname is not valid, firstname1 is valid.
                               >>> „Horse‟+ „and‟+ „dog‟
                                                                                                    No Special symbol other than underscore is allowed.
                                Output : „ Horse and dog‟
                                                                                                    There are some Keywords that cannot be used as a variable name because they
    The * operator creates a multiple Concatenated Copies of a string
                                                                                                     already have pre-assigned meaning , some of the reserved word are
                                       >>> A * 5                                                     Print,Input,if,while etc
                                                                                                       13                                                                                              14
         The declaration happens automatically while assigning values to a variable. The equal sign           4
         (=) is used to assign values to variables.
                                                                                                              The evaluation of an expression produces a value. Some legal expression are a follows:
         Eg: Name = “Dog”
                                                                                                              >>> a= 15
         Int_num= 500
                                                                                                              >>> a
         Float_num=45.5
                                                                                                              Output: 15
         List_num= [“Dog”, 50,25, 0.5]
                                                                                                              >>> a + 15
         Re-declare a Variable:
         In this we can re-declare the variable even after you have declared it once.                         Output: 30
          #Declare a variable and Initialize it:                                                              When we type an expression at the prompt, the interpreter evaluates it, which means that it
         C=0                                                                                                  finds the value of the expression. In the above example “ a” has a value 15 and “a+15” has
         Print c                                                                                              a value 15.
         #re-declare the variable
         C= “Welcome”                                                                                         Evaluating an expression is not the same as printing a value
         Print c
                                                                                                              >>> Line = “God is Great”
            Here variable initialized to c=0.
                                                                                                              >>>Line
            If we re-assign the assign the Variable c
              to value “ welcome”                                                                             Output: “God is Great”
     Welcome
                                                                                                            5. Explain about Statements.
Example: To swap a, b - Subtraction Subtracts right hand operand from left hand operand. a – b = -10
  Temp=a
  a=b                                                                                            *Multiplication     Multiplies values on either side of the operator              a * b = 200
  b=temp
  Tuple assignment solves this problem neatly
                                                                                                 / Division          Divides left hand operand by right hand operand               b/a=2
  (a,b)=(b,a)
      The number of variables on the left and the number of values on the right have to be      % Modulus           Divides left hand operand by right hand operand and returns   b%a=0
                                                                                                                     remainder
       the same:
7. What are the types of operators supported by python language? List the                        //                  Floor Division – that divides two numbers and chops off the   9//2 = 4
   operators and explain them.                                                                                       fraction part.
  Operator:
            An operator is a special symbol that represents a simple computation like          Python Comparison or relational Operators:
              addition, subtraction,…
                                                                                                        These operators compare the values on either sides of them and decide the relation among
            The values (or) the variables are applied on the operator is called as operands.
                                                                                                them.     They are also called Relational operators. Assume a=15, b=23
  Types of Operator:
            Python language supports the following types of operators.
                Arithmetic Operators
                Comparison (Relational) Operators
                Assignment Operators
                                                                                                          17                                                                                                       18
                                                                                                               += Add AND      It adds right operand to the left operand and assign the result   c += a is
    Operator   Description                                                                  Example
                                                                                                                               to left operand                                                   equivalent to
                                                                                                                                                                                                 c=c+a
    ==         If the values of two operands are equal, then the condition becomes          (a == b)
               true.
                                                                                                               -= Subtract     It subtracts right operand from the left operand and assign the   c - = a is
                                                                                            False(0)
                                                                                                               AND             result to left operand                                            equivalent to
                                                                                                                                                                                                 c=c-a
    !=         If values of two operands are not equal, then condition becomes true.
                                                                                                               *= Multiply     It multiplies right operand with the left operand and assign      c * = a is
                                                                                                               AND             the result to left operand                                        equivalent to
    >          If the value of left operand is greater than the value of right operand,     (a > b) is                                                                                           c=c*a
               then condition becomes true.                                                 not true.
    <          If the value of left operand is less than the value of right operand,        (a < b) is
               then condition becomes true.                                                 true.
                                                                                                               /= Divide AND   It divides left operand with the right operand and assign the     c / = a is
                                                                                                                               result to left operand                                            equivalent to
                                                                                                                                                                                                 c = c / ac /= a
    >=         If the value of left operand is greater than or equal to the value of        (a >= b) is
                                                                                                                                                                                                 is equivalent
               right operand, then condition becomes true.                                  not true.
                                                                                                                                                                                                 to c = c / a
    <=         If the value of left operand is less than or equal to the value of right     (a <= b) is
                                                                                                               %= Modulus      It takes modulus using two operands and assign the result to      c %= a is
               operand, then condition becomes true.                                        true
                                                                                                               AND             left operand                                                      equivalent to
                                                                                                                                                                                                 c=c%a
=                  Assigns values from right side operands to left side operand           c=a+b
                                                                                          assigns value
                                                                                          of a + b into
                                                                                          c
                                                                                                19                                                                                                                 20
-----------------                                                                                     is             Evaluates to true if the variables on either side of the    x is y, here is results in 1 if
                                                                                                                     operator point to the same object and false otherwise.      id(x) equals id(y).
a&b = 0000 1100
                                                                                                      is not         Evaluates to false if the variables on either side of the   x is not y, here is not results
a|b = 0011 1101                                                                                                      operator point to the same object and true otherwise.       in 1 if id(x) is not equal to
                                                                                                                                                                                 id(y).
a^b = 0011 0001
                                                                                                            The list below will show which operator has more precedence over the operators.
& Binary AND           Operator copies a bit to the result if it exists in both      (a & b) (means         The first operator in the list will run before the second operator below.
                       operands                                                      0000 1100)
                                                                                                                 OPERATORS                                            MEANING
<< Binary Left Shift   The left operands value is moved left by the number of bits   a << 2 = 240                       &                                            Bitwise AND
                       specified by the right operand.                               (means 1111
                                                                                     0000)                               ^                                           Bitwise XOR
                                                                                                                         |                                            Bitwise OR
>> Binary Right        The left operands value is moved right by the number of       a >> 2 = 15
                                                                                                           ==,!=,>,>=,<,<=,is, is not,in
Shift                  bits specified by the right operand.                          (means 0000                                                  Comparisons ,Identity, Membership operators
                                                                                                                   not, not in
                                                                                     1111)
                                                                                       21                                                                                             22
                not                                     Logical NOT                             Multiplication will run before an addition equation since multiplication has more
                                                                                                  precedence over addition.
                and                                     Logical AND
                                                                                            Example:
                 or                                     Logical OR                          #Multiplication and addition
                                                                                            >>>2=4*4
                                                                                            18
                                                                                            Addition and subtraction:
Operator precedence examples:
                                                                                                The equation will run left to right since addition and subtraction are on the same
Exponent and Multiplication:                                                                      level.
                                                                                            Example:
    Exponent will always run before the multiplication equation.
                                                                                            #Addition and subtraction
   Example:                                                                                 >>>2=3-5+8-4+2-9
#Exponent and multiplication
                                                                                            -3
#Exponent runs first
>>>2**4+2
                                                                                            EXAMPLE PROBLEMS:
>>>16+2
                                                                                              1. X=(15=6)-10*4
18
                                                                                                 Print (x)
Exponent And Division:                                                                           In the expression to evaluate the value of x, the brackets have highest of all
    Exponent will always run before a division equation.                                        precedence.
Example:                                                                                         So this is evaluated before anything else, then * is done and lastly the subtraction.
#Exponent and Division                                                                           15+6 is 21
#Exponent runs first                                                                             1084 is 40
>>4/2**6                                                                                         21-40 is -19
>>4/64                                                                                           Ans: -19
0.0625
Mutiplication and Division:                                                                    2. X=17/2%2*3**3
                                                                                                  Print(x)
   Python will run the equation from left to right since multiplication and division has         In the expression to evaluate the value of x, the exponentiation is done first and then
     same precedence.                                                                             division operator followed by modulo and multiplication.
Example:                                                                                          3**3 is 27
#Multiplication and Division                                                                      17/2 is 8.5
#In this case division ran first the multiplied by 3.                                             8.5%2 is 0.5
>>>5/4*3                                                                                          0.5*27 is 13.5
3.75                                                                                              Ans: 13.5
#In this case 3 is multiplied by 4 then divide by 5
>>>3*4/5
2.4
Multiplication and addition:
                                                                                         23                                                                                          24
     Modules refer to a file containing Python statements and definitions.                        This does not enter the names of the functions defined in example directly in the
                                                                                                    current symbol table. It only enters the module name example there.
                                                                                                   Using the module name we can access the function using dot (.) operation. For
                                                                                                    example:
                                                                                               >>> example.add(4,5.5)
                                                                                               9.
                                                                                               Python import statement:
                                                                                               We can import a module using import statement and access the definitions inside it using
     A file containing Python code, for e.g.: example.py is called a module and its           the dot operator as described above. Here is an example.
      module name would be example.                                                                      # Import statement example
                                                                                                         # To import standard module math
     We use modules to break down large programs into small manageable and organized                    import math
      files. Furthermore, modules provide reusability of code.                                           print("The value of pi is", math.pi)
 It is also possible to import all names from a module into the current namespace by using       Type conversion functions
 the following import statement.                                                                    Python provides built-in functions that convert values from one type to another.
                                                                                                 The int function takes any value and converts it to an integer, if it can, or complains
 from modname import *
                                                                                                 otherwise:
 This provides an easy way to import all the items from a module into the current                >>> int('32')
 namespace.                                                                                      32
'32'                                                                                                    That sounds simple enough, until you remember that one function can call another.
>>> str(3.14159)
                                                                                                            While in the middle of one function, the program might have to execute the
'3.14159'
                                                                                                            statements in another function.
Math functions
                                                                                                       Example:
   Python has a math module that provides most of the familiar mathematical functions.
   A module is a file that contains a collection of related functions.                                1. Def pow(5,2)
                                                                                                       2. Y=b**p
Before we can use the module, we have to import it:
>>> import math                                                                                        3. Return y
                                                                                                       4.
    This statement creates a module object named math. If you print the module object,
     you get some information about it:                                                                5. def square(x)
                                                                                                       6. a=pow(x,2)
>>> print math
<module 'math' from '/usr/lib/python2.5/lib-dynload/math.so'>                                          7. return a
                                                                                                       8.
    The module object contains the functions and variables defined in the module.
    To access one of the functions, you have to specify the name of the module and the                9. X=5
     name of the function, separated by a dot (also known as a period). This format is                 10. Result=square(x)
     called dot notation.
     Example:                                                                                          11. Print(result)
            >>> ratio = signal_power / noise_power                                                Output:
            >>> decibels = 10 * math.log10(ratio)
                                                                                                  25
The example computes the logarithm base 10 of the signal-to-noise ratio.                          13. Explain the concept of parameters and arguments
The math module also provides a function called log that computes logarithms base e.
                                                                                                        The arguments are assigned to variables called parameters.
                                                                                                         EXAMPLE:
12. Explain about flow of execution.                                                                     def print_twice(Flower):
                                                                                                         Print flower
    The orders in which statements are executed are called flow of execution.
                                                                                                         Print flower
    Execution always begins at the first statement of the program. Statements are                      This function assigns the argument to a parameter named flower.
      executed one at a time, in order from top to bottom.                                              When the function is called, it prints the value of the parameter twice.
    Function definitions do not alter the flow of execution of the program, but remember                EXAMPLE:
                                                                                                         >>>print_twice(„world‟)
      that statements, inside the function are not executed until the function is called.                World
    A function call is like a detour in the flow of execution.                                          World
    Instead of going to the next statement, the flow jumps to the body of the function,                 >>>print_twice(56)
                                                                                                         56
      executes all the statements there, and then comes back to pick up where it left off.
                                                                                                         56
                                                                                                         >>>print_twice(math.pi)
                                                                                29                                                          UNIT-V
  3.14
                                                                                                                      FILES, MODULES, PACKAGES
  3.14
  The same rule of composition that apply to built in functions also apply to user                                                      PART-A
  defined functions, so we can use any kind of expression as an argument for
  print_twice:                                                                       1. What is file? List out its types.
  >>>print_twice(„spam‟*4)
  Spam spam spam spam                                                                      FILES refer to a location with Filename that stores information.
  Spam spam spam spam                                                                      File must be opened to read or Write. Moreover it must be closed after read/write operations to avoid
  >>>print_twice(math.cos(math.pi))                                                         data damages.
  -1.0                                                                                     Almost all the information Stored in a computer must be in a file.
  -1.0                                                                                      Types:
 The argument is evaluated before the function is called,so in the example the                  Data files
  expression „spam‟*4 and math.cos (math.pi)are only evaluated once.                             Text files
 The variable can also be used as an argument:                                                  Program files.
  EXAMPLE:
  >>>book=‟python‟                                                                   2. List out the types of file operations.
  >>>print_twice(book)                                                                             Open the file.
  Python                                                                                           Read or write
  python                                                                                           Close the file
                                                                                     3. Give the syntax and example of file open.
                                                                                     Syntax:
                                                                                     File_VariableName=Open (“Filename”, ‘mode’)
                                                                                     Example:
                                                                                     f = open(“text.txt”) #open file in current directory
                                                                                     f = open (“text.txt”, ‘w’) #write in text mode
                                                                                     f = open(“text.txt”, ‘r+b’) # read in binary mode
                                                                                                 1. Syntax errors.
                                                                                                 2. Runtime errors.
                                                                                                 3. Logical errors.
7. Give some examples of logical errors.                                                   12. What are the advantages of exception handling?
                                                                                                  It separates normal code from code that handles errors.
                 Using integer division instead of floating point division.
                                                                                                  Exception can easily be passed along functions in the stack until they reach a
                 Wrong operator precedence.
                 Mistakes in Boolean expression.
                                                                                                    function.
                 Indenting a block to the wrong level.
                 Error in Boolean Expression.                                             13. Differentiate module and package in python.
SYNTAX ERRORS:
Read ( ) Method:                                                                                                      Python can only execute a program, if the syntax is correct, otherwise interpreter displays error
    This Method read a string from a file. It is important to note that Python strings can have binary data           message.
       apart from text data.
   Python will find these kinds of error when it tries to parse a program and exit with an error message   4. Describe in detail how exceptions are handled in python. Give relevant examples.
    without running anything.                                                                                       Exception is an event, which occurs during the execution of a program.
   Syntax errors are mistakes in the use of the python language or grammar mistakes.                               Exception disrupts the normal flow of the programs instructions.
                                                                                                                    Exception is a python object that represents an error.
  Common python syntax errors include:
                                                                                                            Raising An Exceptions:
                                                                                                                    We can raise exceptions in several ways by using the raise statement.
    Syntax:
    Raise(Exception(,args(,traceback)))                                                                          # Import statement example
                                                                                                                 import math
    Example:                                                                                                     print("The value of pi is", math.pi)
    def get_age():
                                                                                                                 OUTPUT:
    age = int(input("Please enter your age: "))                                                                  The value of pi is 3.14
     if age < 0:
5. Illustrate the important of modules with examples. # import only pi from math module
     Modules refer to a file containing Python statements and definitions.                                     from math import pi
     Modules to break down large programs into small manageable and organized files.                           print("The value of pi is", pi)
       We can import a module using import statement and access the definitions inside it using the dot
       operator.
      Example:
    If the project team has decided to maintain all the modules in “MyProject” directory, a folder in
     the name of “MyProject” is creacted and the file __init__.py is placed in that folder.
Syntax:
Import<packageName>.{<subpackageName>.}ModuleName>
Example:
Import MyProject.subproject1.prog1_1
MyProject.subProject1.Prog1_1.start()