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()