Python Unit 2
Python Unit 2
Compiler Interpreter
Interpreter Takes Single instruction as
Compiler Takes Entire program as input
Input
No Intermediate Object Code
Intermediate Object Code is Generated
is Generated
Conditional Control Statements are Conditional Control Statements are
Executes faster Executes slower
Memory Requirement is More(Since Object Memory Requirement is Less
Code is Generated)
Every time higher level program is
Program need not be compiled every time
converted into lower level program
Errors are Displaye after entire Errors are displayed for every
d
program is checked instruction interpreted (if any)
Example : C Compiler Example : PYTHON
Script mode:
❖ In script mode, we type python program in a file and then use interpreter to
execute the content of the file.
❖ Scripts can be saved to disk for future use. Python scripts have the extension
.py, meaning that the filename ends with .py
❖ Save the code with filename.py and run the interpreter in script mode to execute
the script.
Value:
Value can be any letter ,number or string.
Eg, Values are 2, 42.0, and 'Hello, World!'. (These values belong to different
datatypes.)
Data type:
Every value in Python has a data type.
It is a set of values, and the allowable operations on those values.
Python has four standard data types:
Numbers:
❖ Number data type stores Numerical Values.
❖ This data type is immutable [i.e. values/items cannot be changed].
❖ Python supports integers, floating point numbers and complex numbers. They
are defined as,
Boolean datatype:
▪ Boolean is a datatype,having two values usually denoted True or False.
▪ The boolean datatype is the primary result of conditional statements,which allow
different Actions and change control flow depending on whether a programmer
specified boolean condition evaluates to True or False
Ex1: >>>print(2==2)
True
>>>print(2!=2)
false
2.2 Sequence:
❖ A sequence is an ordered collection of items, indexed by positive integers.
❖ It is a combination of mutable (value can be changed) and immutable (values
cannot be changed) data types.
There are three types of sequence data type available in Python, they are
1. Strings
2. Lists
3. Tuples
4. Range
5. Byte
6. Byte array
Range:
❖ Generate sequence of numbers to form a list
Ex: >>>a=range(1,10,2)
>>>for i in a:
>>>print(i,end=’ ’)
13579
Byte:
❖ Byte cannot be modify
❖ The byte datatype is the group of byte numbers like an array
❖ Byte number range from 0 to 255 inclusive
Ex: values=[10,20,30]
a=byte(values)
>>>print(a[0])
10
Byte array:
❖ Similar to byte datatype
❖ Byte array can be modified
Ex:a=byte array(b,”python”)
>>>print(a)
Byte array(b,”python”)
Strings:
2.2.2 Lists
❖ List is an ordered sequence of items. Values in the list are called elements / items.
❖ It can be written as a list of comma-separated items (values) between square
brackets[ ].
❖ Items in the lists can be of different data types.
Operations on list:
Indexing
Slicing
Concatenation
Repetitions
Updation,
Insertion, Deletion
Creating a list >>>list1=["python", 7.79, 101, Creating the list with
"hello”] elements of different data
>>>list2=["god",6.78,9] types.
Indexing >>>print(list1[0]) ❖ Accessing the item in
python the position 0
>>> list1[2] ❖ Accessing the item in
101
the position 2
Slicing( ending >>> print(list1[1:3]) - Displaying items from 1st
position -1) [7.79, 101] till 2nd.
Slice operator is >>>print(list1[1:]) - Displaying items from 1st
used to extract [7.79, 101, 'hello'] position till last.
part of a string, or
some part of a list
Python
Concatenation >>>print( list1+list2) -Adding and printing the
['python', 7.79, 101, 'hello', 'god', items of two lists.
6.78, 9]
Repetition >>> list2*3 Creates new strings,
['god', 6.78, 9, 'god', 6.78, 9, 'god', concatenating multiple
6.78, 9] copies of the same string
Updating the list >>> list1[2]=45 Updating the list using index
>>>print( list1) value
[‘python’, 7.79, 45, ‘hello’]
Inserting an >>> list1.insert(2,"program") Inserting an element in 2nd
Element >>> print(list1) position
['python', 7.79, 'program', 45,
'hello']
Removing an >>> list1.remove(45) Removing an element by
Element >>> print(list1) giving the element directly
['python', 7.79, 'program', 'hello']
Tuple:
❖ A tuple is same as list, except that the set of elements is enclosed in parentheses
instead of square brackets.
❖ A tuple is an immutable list. i.e. once a tuple has been created, you can't
add elements to a tuple or remove elements from the tuple.
❖ Benefit of Tuple:
❖ Tuples are faster than lists.
❖ If the user wants to protect the data from accidental changes, tuple can be used.
❖ Tuples can be used as keys in dictionaries, while lists can't.
Basic Operations:
Creating a tuple >>>t=("python", 7.79, 101, Creating the tuple with elements
"hello”) of different data types.
Indexing >>>print(t[0]) ❖ Accessing the item in the
python position 0
>>> t[2] ❖ Accessing the item in the
101
position 2
Slicing( ending >>>print(t[1:3]) ❖ Displaying items from 1st
position -1) (7.79, 101) till 2nd.
Altering the tuple data type leads to error. Following error occurs when user tries to
do.
Frozen set:
Is same as set,but frozen set cannot be modified
Ex:>>>fs=frozenset(“x’,”y”,”z”)
Frozenset({‘z’,’y’,’x’})
>>>print(fs)
Mapping
-This data type is unordered and mutable.
-Dictionaries fall under Mappings.
Dictionaries:
❖ Lists are ordered sets of objects, whereas dictionaries are unordered sets.
❖ Dictionary is created by using curly brackets. i,e. {}
❖ Dictionaries are accessed via keys and not via their position.
❖ A dictionary is an associative array (also known as hashes). Any key of the
dictionary is associated (or mapped) to a value.
❖ The values of a dictionary can be any Python data type. So dictionaries are
unordered key-value-pairs(The association of a key and a value is called a key-
value pair )
Dictionaries don't support the sequence operation of the sequence data types like
strings, tuples and lists.
VARIABLES:
❖ A variable allows us to store a value by assigning it to a name, which can be used
later.
❖ Variables are meaningfull terms,that holds a value that may change
❖ Named memory locations to store values.
❖ Programmers generally choose names for their variables that are meaningful.
❖ It can be of any length. No space is allowed.
❖ We don't need to declare a variable before using it. In Python, we simply assign a
value to a variable and it will exist.
Do’s of variables:
Variable name can be as long as you like
It is legal to use uppercase letter,but usually only lowercase for variable name
The underscore character “_” can be use with variable name
The variable must start with letter or underscore
Ex: _a=10 (or) a_=10 (or) a=10
Don’t in a variable:
Variable should not start with a number eg:1st year
Variables are can’t be a keyword eg: if=1
Variables should not contain special character ex:@,!,&,*,max
Assigning value to variable:
Value should be given on the right side of assignment operator(=) and variable on left
side.
>>>counter =45
print(counter)
Assigning a single value to several variables simultaneously:
>>> a=b=c=100
Assigning multiple values to multiple variables:
>>> a,b,c=2,4,"ram"
KEYWORDS:
❖ Keywords are the reserved words in Python.
We cannot use a keyword as variable name, function name or any other
identifier.
❖ They are used to define the syntax and structure of the Python language.
❖ Keywords are case sensitive.
IDENTIFIERS:
Identifier is the name given to entities like class, functions, variables etc. in
Python.
❖ Identifiers can be a combination of letters in lowercase (a to z) or uppercase (A
to Z) or digits (0 to 9) or an underscore (_).all are valid example.
❖ An identifier cannot start with a digit.
❖ Keywords cannot be used as identifiers.
❖ Cannot use special symbols like !, @, #, $, % etc. in our identifier.
❖ Identifier can be of any length.
Example:
Names like myClass, var_1, and this_is_a_long_variable
COMMENTS:
A hash sign (#) is the beginning of a comment.
Anything written after # in a line is ignored by interpreter.
Eg:percentage = (minute * 100) / 60 # calculating percentage of an hour
Python does not have multiple-line commenting feature. You have to
comment each line individually as follows :
Example:
# This is a comment.
# This is a comment, too.
# I said that already.
DOCSTRING:
Docstring is short for documentation string.
It is a string that occurs as the first statement in a module, function, class, or
method definition. We must write what a function/class does in the docstring.
Triple quotes are used while writing docstrings.
Syntax:
functionname__doc.__
Example:
def double(num):
"""Function to double the value"""
return 2*num
>>> print(double. doc )
Function to double the value
Example:
-It is useful to swap the values of two variables. With conventional assignment
statements, we have to use a temporary variable. For example, to swap a and b:
Ex:a=10;b=20
>>>(a,b)=(b,a)
Swap two numbers Output:
a=2;b=3
print(a,b) (2, 3)
temp = a (3, 2)
a=b >>>
b = temp
print(a,b)
Tuple assignment solves this problem neatly:
(a, b) = (b, a)
-In tuple unpacking, the values in a tuple on the right are ‘unpacked’ into the
variables/names on the right:
4.OPERATORS:
Operators are the constructs which can manipulate the value of operands.
Consider the expression 4 + 5 = 9. Here, 4 and 5 are called operands and + is
called operator
a+b => a(operand)+(operator) b(operand)
Types of Operators:
-Python language supports the following types of operators
• Arithmetic Operators
• Comparison (Relational) Operators
• Assignment Operators
• Logical Operators
• Bitwise Operators
• Membership Operators
• Identity Operators
Arithmetic operators:
They are used to perform mathematical operations like addition, subtraction,
multiplication etc. Assume, a=10 and b=5
Examples Output:
a=10 a+b= 15
b=5 a-b= 5
print("a+b=",a+b) a*b= 50
print("a-b=",a-b) a/b= 2.0
print("a*b=",a*b) a%b= 0
print("a/b=",a/b) a//b= 2
print("a%b=",a%b) a**b= 100000
print("a//b=",a//b)
print("a**b=",a**b)
> If the value of left operand is greater than the value of right (a > b) is
operand, then condition becomes true. not true.
< If the value of left operand is less than the value of right (a < b) is
operand, then condition becomes true. true.
>= If the value of left operand is greater than or equal to the (a >= b) is
value of right operand, then condition becomes true. not true.
<= If the value of left operand is less than or equal to the value (a <= b) is
of right operand, then condition becomes true. true.
Example
a=10 Output:
b=5 a>b=> True
print("a>b=>",a>b) a>b=> False
print("a>b=>",a<b) a==b=> False
print("a==b=>",a==b) a!=b=> True
print("a!=b=>",a!=b) a<=b=> False
print("a<=b=>",a<=b) a>=b=> True
print("a>=b=>",a>=b)
Assignment Operators:
-Assignment operators are used in Python to assign values to variables.
Operator Description Example
+= Add AND It adds right operand to the left operand and assign c += a is
the result to left operand equivalent
to c = c + a
Example Output
a = 21 Line 1 - Value of c is 31
b = 10 Line 2 - Value of c is 52
c=0 Line 3 - Value of c is 1092
c=a+b Line 4 - Value of c is 52.0
print("Line 1 - Value of c is ", c) Line 5 - Value of c is 2
c += a Line 6 - Value of c is 2097152
print("Line 2 - Value of c is ", c) Line 7 - Value of c is 99864
c *= a
print("Line 3 - Value of c is ", c)
c /= a
print("Line 4 - Value of c is ", c)
c=2
c %= a
print("Line 5 - Value of c is ",
c) c **= a
print("Line 6 - Value of c is ",
c) c //= a
print("Line 7 - Value of c is ", c)
Example Output
a = True x and y is False
b = False x or y is True
print('a and b is',a and b) not x is False
print('a or b is',a or b)
print('not a is',not a)
Bitwise Operators:
• A bitwise operation operates on one or more bit patterns at the level of individual
bits
Example: Let x = 10 (0000 1010 in binary) and
y = 4 (0000 0100 in binary)
Example Output
a = 60 # 60 = 0011 1100 Line 1 - Value of c is 12
b = 13 # 13 = 0000 1101 Line 2 - Value of c is 61
c=0 Line 3 - Value of c is 49
c = a & b; # 12 = 0000 1100 Line 4 - Value of c is -61
print "Line 1 - Value of c is ", c Line 5 - Value of c is 240
c = a | b; # 61 = 0011 1101 Line 6 - Value of c is 15
print "Line 2 - Value of c is ", c
c = a ^ b; # 49 = 0011 0001
print "Line 3 - Value of c is ", c
c = ~a; # -61 = 1100 0011
17 Unit 2: Data ,expressions, Statements
print "Line 4 - Value of c is ", c
c = a << 2; # 240 = 1111 0000
print "Line 5 - Value of c is ", c
c = a >> 2; # 15 = 0000 1111
print "Line 6 - Value of c is ", c
Membership Operators:
Example:
x=[5,3,6,4,1]
>>> 5 in x
True
>>> 5 not in x
False
Identity Operators:
❖ They are used to check if two values (or variables) are located on the same part
of the
memory.
Example
x=5 Output
y=5 False
x2 = 'Hello' True
y2 = 'Hello'
print(x1 is not y1)
print(x2 is y2)
18 Unit 2: Data ,expressions, Statements
5. OPERATOR PRECEDENCE:
When an expression contains more than one operator, the order of evaluation
depends on the order of operations.
Operator Description
a=2,b=12,c=1 a=2*3+4%5-3//2+6
d=a<b>c a=2,b=12,c=1 a=6+4-1+6
d=2<12>1 d=a<b>c-1 a=10-1+6
d=1>1 d=2<12>1-1 a=15
d=0 d=2<12>0
d=1>0
d=1
FUNCTIONS:
➢ Function is a sub program which consists of set of instructions used to
perform a specific task. A large program is divided into basic building
blocks called function.
Need For Function:
❖ When the program is too complex and large they are divided into parts. Each part
is separately coded and combined into single program. Each subprogram is called
as function.
❖ Debugging, Testing and maintenance becomes easy when the program is divided
into subprograms.
❖ Functions are used to avoid rewriting same code again and again in a program.
❖ Function provides code re-usability
❖ The length of the program is reduced.
Types of function:
Functions can be classified into two categories:
i) user defined function
ii) Built in function
i) Built in functions
❖ Built in functions are the functions that are already created and stored in
python.
❖ These built in functions are always available for usage and accessed
by a programmer. It cannot be modified.
Built in function Description
>>>max(3,4) # returns largest element
4
>>>min(3,4) # returns smallest element
3
>>>len("hello") #returns length of an object
5
>>>range(2,8,1) #returns range of given values
[2, 3, 4, 5, 6, 7]
>>>round(7.8) #returns rounded integer of the given number
8.0
>>>chr(5) #returns a character (a string) from an integer
\x05'
>>>float(5) #returns float number from string or integer
5.0
>>>int(5.0) # returns integer from string or float
5
>>>pow(3,5) #returns power of given number
243
>>>type( 5.6) #returns data type of object to which it belongs
<type 'float'>
>>>t=tuple([4,6.0,7]) # to create tuple of items from list
(4, 6.0, 7)
>>>print("good morning") # displays the given object
Good morning
>>>input("enter name: ") # reads and returns the given string
enter name : George
Flow of Execution:
The order in which statements are executed is called the flow of execution
❖
Execution always begins at the first statement of the program.
❖
Statements are executed one at a time, in order, from top to bottom.
❖
Function definitions do not alter the flow of execution of the program, but
❖
remember that statements inside the function are not executed until the function
is called.
❖ Function calls are like a bypass in the flow of execution. Instead of going to the
next statement, the flow jumps to the first line of the called function, executes all
the statements there, and then comes back to pick up where it left off.
Note: When you read a program, don’t read from top to bottom. Instead, follow the
flow of execution. This means that you will read the def statements as you are scanning
from top to bottom, but you should skip the statements of the function definition until
you reach a point where that function is called.
Function Prototypes:
OUTPUT: OUTPUT:
enter a 5 enter a 5
enter b 10 enter b 10
15 15
Example:
def my_add(a,b):
c=a+b
return c
x=5
y=4
print(my_add(x,y))
Output:
9
ARGUMENTS TYPES:
1. Required Arguments
2. Keyword Arguments
3. Default Arguments
4. Variable length Arguments
❖ Required Arguments: The number of arguments in the function call should
match exactly with the function definition.
def my_details( name, age ):
print("Name: ", name)
print("Age ", age)
Return
my_details("george",56)
❖ Default Arguments:
Assumes a default value if a value is not provided in the function call for that argument.
def my_details( name, age=40 ):
print("Name: ", name)
print("Age ", age)
return
my_details(name="george")
Output:
Name: george
Age 40
MODULES:
➢ A module is a file containing Python definitions ,functions, statements and
instructions.
➢ Standard library of Python is extended as modules.
➢ To use these modules in a program, programmer needs to import the
module.
Modules types:
▪ Rand.int
▪ Random.choice
▪ Random.shuffle
▪ Random.math
Rand.int:
If we want a random integer,we can use the rand int function
Rand int accept two parameter lowest of a highest no
Ex:>>> import random
>>>Print random.random int(0,5)
1,2,3,4,5
import random
print random.randint(0, 5)
This will output either 1, 2, 3, 4 or 5.
Random
Choice
Shuffle
The shuffle function, shuffles the elements in list in place, so they are in a
random order.
random.shuffle(list)
Example taken from this post on Stackoverflow
from random import shuffle
x = [[i] for i in range(10)]
shuffle(x)
Output:
# print x gives [[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]
# of course your results will vary
>>>import datetime
>>>datetime_object = datetime.datetime.now()
>>>print(datetime_object)
o/p:
2018-12-19 09:26:03.478039
Modules explanation:
Once we import a module, we can reference or use to any of its functions or
variables in our code.
o There is large number of standard modules also available in python.
o Standard modules can be imported the same way as we import our user-
defined modules.
o Every module contains many function.
o To access one of the function , you have to specify the name of the module and
the name of the function separated by dot . This format is called dot
notation.
Syntax:
import module_name
module_name.function_name(variable)
Importing Builtin Module: Importing User Defined Module:
import math import cal
x=math.sqrt(25) x=cal.add(5,4)
print(x) print(x)
ILLUSTRATIVE PROGRAMS
Program for SWAPPING(Exchanging )of Output
Values
a = int(input("Enter a value ")) Enter a value 5
b = int(input("Enter b value ")) Enter b value 8
c=a a=8
a=b b=5
b=c
print("a=",a,"b=",b,)
Part A:
1. What is interpreter?
2. What are the two modes of python?
3. List the features of python.
4. List the applications of python
5. List the difference between interactive and script mode
6. What is value in python?
7. What is identifier? and list the rules to name identifier.
8. What is keyword?
9. How to get data types in compile time and runtime?
10. What is indexing and types of indexing?
11. List out the operations on strings.
12. Explain slicing?
13. Explain below operations with the example
(i)Concatenation (ii)Repetition
14. Give the difference between list and tuple
15. Differentiate Membership and Identity operators.
16. Compose the importance of indentation in python.
17. Evaluate the expression and find the result
(a+b)*c/d
a+b*c/d
18. Write a python program to print ‘n’ numbers.
19. Define function and its uses
20. Give the various data types in Python
21. Assess a program to assign and access variables.
22. Select and assign how an input operation was done in python.
23. Discover the difference between logical and bitwise operator.
24. Give the reserved words in Python.
25. Give the operator precedence in python.
26. Define the scope and lifetime of a variable in python.
27. Point out the uses of default arguments in python
28. Generalize the uses of python module.
29. Demonstrate how a function calls another function. Justify your answer.
30. List the syntax for function call with and without arguments.
31. Define recursive function.
32. What are the two parts of function definition? give the syntax.
33. Point out the difference between recursive and iterative technique.
34.Give the syntax for variable length arguments.
31
Find greatest of three numbers output
a=eval(input(“enter the value of a”)) enter the value of a 9
b=eval(input(“enter the value of b”)) enter the value of a 1
c=eval(input(“enter the value of c”)) enter the value of a 8
if(a>b): the greatest no is 9
if(a>c):
print(“the greatest no is”,a)
else:
print(“the greatest no is”,c)
else:
if(b>c):
print(“the greatest no is”,b)
else:
print(“the greatest no is”,c)
Programs on for loop
Print n natural numbers Output
print(i)
Print n odd numbers Output
for i in range(1,10,2):
1 3 5 79
print(i)
for i in range(1,5,1): 1 4 9 16
print(i*i)
for i in range(1,5,1): 1 8 27 64
print(i*i*i)
32
Print n natural numbers Output
i=1 1
while(i<=5): 2
print(i) 3
i=i+1 4
5
Print n odd numbers Output
i=2 2
while(i<=10): 4
print(i) 6
i=i+2 8
10
Print n even numbers Output
i=1 1
while(i<=10): 3
print(i) 5
i=i+2 7
9
Print n squares of numbers Output
i=1 1
while(i<=5): 4
print(i*i) 9
i=i+1 16
25
33
factorial of n numbers/product of n numbers Output
i=1 3628800
product=1
while(i<=10):
product=product*i
i=i+1
print(product)
34
check the no divisible by 5 or not Output
def div(): enter n value10
n=eval(input("enter n value")) the number is divisible by
if(n%5==0): 5
print("the number is divisible by 5")
else:
print("the number not divisible by 5")
div()
35
program for basic calculator Output
def add(): enter a value 10
a=eval(input("enter a value")) enter b value 10
b=eval(input("enter b value")) the sum is 20
c=a+b enter a value 10
print("the sum is",c) enter b value 10
def sub(): the diff is 0
a=eval(input("enter a value")) enter a value 10
b=eval(input("enter b value")) enter b value 10
c=a-b the mul is 100
print("the diff is",c) enter a value 10
def mul(): enter b value 10
a=eval(input("enter a value")) the div is 1
b=eval(input("enter b value"))
c=a*b
print("the mul is",c)
def div():
a=eval(input("enter a value"))
b=eval(input("enter b value"))
c=a/b
print("the div is",c)
add()
sub()
mul()
div()