0% found this document useful (0 votes)
34 views85 pages

UNIT - 3 Updated

This document covers control flow in Python, focusing on conditionals, iteration, and functions. It explains boolean values, operators, decision-making statements, and various types of loops, including while and for loops. Additionally, it discusses fruitful functions, parameter passing, variable scope, and string manipulation.

Uploaded by

danukrishnan003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views85 pages

UNIT - 3 Updated

This document covers control flow in Python, focusing on conditionals, iteration, and functions. It explains boolean values, operators, decision-making statements, and various types of loops, including while and for loops. Additionally, it discusses fruitful functions, parameter passing, variable scope, and string manipulation.

Uploaded by

danukrishnan003
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 85

UNIT – 3

CONTROL FLOW,
FUNCTIONS
Conditionals: Boolean values and operators, conditional
(if), alternative (if-else), chained conditional (if-elif-else);
Iteration: state, while, for, break, continue, pass; Fruitful
functions: return values, parameters, scope: local and
global, composition, recursion; Strings: string slices,
immutability, string functions and methods, string
module; Lists as arrays. Illustrative programs: square
root, gcd, exponentiation, sum the array of numbers,
linear search, binary search
BOOLEAN VALUES

 Any object can be tested for truth value, for use in an if or while
condition or as operand of the Boolean operations below.
 The following values are considered false:
 None False Zero of any numeric type, for example, 0, 0L, 0.0, 0j.
 Any empty sequence, for example, ‘’, (), [].
 Any empty mapping, for example, {}.
Boolean Operations (and, or, not)
OPERATORS

 Operators are the constructs (operator) which can manipulate the


value of operands.
 Consider the expression 4 + 5 = 9.
 Here, 4 and 5 are called operands and + is called operator.
Types of Operators
 Arithmetic Operators
 Comparison (Relational) Operators
 Assignment Operators
 Logical Operators
 Bitwise Operators
 Membership Operators
 Identity Operators
Arithmetic Operators
Comparison (Relational) Operators
Assignment Operators
Logical Operators
Bitwise Operators
Membership Operators
Identity Operators
OPERATORS PRECEDENCE
DECISION MAKING

 The execution of the program taking action according to the


conditions.
 This concept is also known as Conditional statements or Branching
statements.
 Python programming language provides following types of decision
making statements.
Types of Conditional statements

 if statements (conditional)
 if-else statements (alternative)
 if-elif-else (chained conditional)
 Nested Conditional
if statements (conditional)
Example
a=10
if ( a>9):
print(“A is Greater than 9”)
Output
A is Greater than 9
If... Else Statement
Flow chart
if...else Example
Example:
a=10
b=20
if(a>b):
print(“A is Greater than B”)
else:
print(“B is Greater than A”)
Output:
B is Greater than A

20

© Copyright 2012 by Pearson Education, Inc. All Rights Reserved.


The Elif Else Statement
Flow chart

© Copyright 2012 by Pearson Education, Inc. All Rights Reserved.


Example
num = -3
if( num > 0):
print(“Positive number”)
elif (num == 0):
print(“Zero”)
else:
print(“Negative number”)
Output:
Negative number

© Copyright 2012 by Pearson Education, Inc. All Rights Reserved.


Nested Conditionals

Syntax:
if (condition1) :
if (condition2):
statements
else :
statements
else:
statements

© Copyright 2012 by Pearson Education, Inc. All Rights Reserved.


Example:
num = float(input(“Enter a number: “))
if (num >= 0):
if (num == 0):
print(“Zero”)
else:
print(“Positive number”)
else:
print(“Negative number”)
Output :
Enter a number: 5
Positive number

© Copyright 2012 by Pearson Education, Inc. All Rights Reserved.


ITERATION
 A loop statement allows us to execute a statement or group of
statements multiple times.
 Repeated execution of a set of statements is called iteration.
 Types
 while loop
 for loop
 nested loop
While Loop
 A while loop statement executes a block of statement again and again until the
condition will occur false .
 It tests the condition before executing the loop body so this technique is
known as Entry controlled loop.
While Loop
Example:
count = 0
while (count < 5):
print (“The count is:”%count)
count = count + 1
print “Good bye!”
Output
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
Good bye!
For Loop :
Executes a sequence of statements multiple times and abbreviates the code that manages
the loop variable.
Example:
#List of numbers
number=[3,2,5,7,9,1,4,6,8]
#variable to store the sum
total=0
for item in number:
total=total+item
print(“total = %d” %total)
Output:
total= 45
Nested Loops - Python programming language
allows using one loop inside another loop.
Example program to print range
valuesloop values”)
print(“first Output:
for x in range(5): first loop values

print(x) 0
1
print(“second loop values”)
2
for x in range(3,6):
3
print(x)
4
print(“third loop values”)
second loop values
for x in range(3,8,2): 3
print(x) 4
5
Third loop values
3
5
7
Iterating by Sequence Index - An alternative
way of iterating through each item is by index
offset into the sequence itself.
Example Output
fruits = [‘banana’, ‘apple’, Current fruit : banana
‘mango’]
Current fruit : apple
for index in range(len(fruits)):
Current fruit : mango
print (“Current fruit :”%
Good bye!
fruits[index] )
print “Good bye!”
Unconditional Looping
Statements
i) break statement
 ii) continue statement
 iii) pass statement
Break Statement
 Terminates the loop statement and transfers execution to the statement
immediately following the loop.
 The break statement can be used in both while and for loops.
Break
Example
for letter in ‘Python’:
if ( letter == ‘h’):
break
print (“Current Letter : %s” %letter)

Output
Current Letter : P
Current Letter : y
Current Letter : t
Continue Statement
 It returns the control to the beginning of the while loop.
 The continue statement rejects all the remaining statements in the
current iteration of the loop and moves the control back to the top of the
loop.
 The continue statement can be used in both while and for loops.
Continue Statement
Example:
for val in “string” :
if(val==‘i’):
continue
print(val)
print(“the end”)
Output:
s
t
r
n
g
the end
Pass Statement
 The pass statement in Python is used when a statement is required
syntactically but you do not want any command or code to execute.
 It execute nothing.
 It is a null statement.
 Difference between a comment and pass statement in python is that,
interpreter ignores a comment entirely but not the pass statement.
 Syntax:
pass
Example
for letter in ‘Python’:
if letter == ‘h’:
pass
print ‘This is pass block’
print ‘Current Letter :’, letter
Output
Current Letter : P
Current Letter : y
Current Letter : t
This is pass block
Current Letter : h
Current Letter : o
Current Letter : n
FRUITFUL FUNCTIONS:
 Functions that return values are sometimes called fruitful
functions.
 In many other languages, a function that doesn’t return a value is
called a procedure, but we will stick here with the Python way of
also calling it a function, or if we want to stress it, a non-fruitful
function.
Return Values

 The built-in functions we have used, such as abs, pow, int, max, and
range, have produced results.
 Calling each of these functions generates a value, which we usually
assign to a variable or use as part of an expression.
 Example
 biggest = max(3, 7, 2, 5)x = abs(3 - 11) + 10
Parameters
 Parameter -- Data sent to one function from another.
 Types of parameter:
 Formal parameter -- The parameter defined as part of the
function definition.
 Example: def add(x1,x2): here x1,x2 are formal parameter
 Actual Parameter -- The actual data sent to a function. It’s
found in the function call.
 Example:add(a,b) here a,b are actual parameter
Parameter Passing Method

 Pass-by-value parameter passing


 Pass-by-Reference parameter passing
Pass-by-value parameter
passing
 Pass-by-value parameter passing-- the value of the actual
parameter is copied to the formal parameter.
 In Python, scalar values are sent by-value. Lists and other objects are
sent by reference.
def processNumber(x):
x=72
return x+3
# main
y=54
res = processNumber(y)
Pass-by-Reference parameter
passing
It provide reference to the actual parameter is sent to the function.
 When we trace a program, and a list is sent, we don’t copy the list to
the actual parameter box, we draw an arrow from formal to actual.
 Example:
def processList(list):
list[1]=99
# main
aList = [5,2,9]
processList(aList)
Scope of the Variable –
Variable scope and lifetime
 Scope of a variable specifies the part of a program where a variable is
accessible .
 Lifetime of a variable specifies the time period in which the variable
has valid memory.
 Python uses LEGB Rule for Scope resolution.

Local -> Enclosed -> Global -> Built-in


LEGB Rule:
 Local can be inside a function or class method.
 Enclosed can be its enclosing function.e.g. if a function is wrapped
inside another function.
 Global refers to the uppermost level of the executing script itself and
 Built-in are special names that python reserves for itself
Variable:
 A variable can be either of global or local scope.
 A global variable is a variable declared in the main body of the
source code ,outside all functions. It will be visible through out the
program.
 A local variable is declared within the body of a function or a block. It
is accessible only inside the function and gets deleted at the end of
function.
Example:Variables in different scopes:
# This is a global variable
a=0
if a == 0:
# This is still a global variable
b=1
def my_function(c):
# this is a local variable
d=3
print(c)
print(d)
# Now we call the function, passing the value 7 as the first and only parameter
my_function(7)
# a and b still exist
print(a)
print(b)
# c and d don’t exist anymore -- these statements will give us name errors!
print(c)
print(d)
Scope rules in function
# global scope
a=10
def func(b):
#local scope
c=a+b
return( c )
z=func(1)
print(z)
Global and local Variables in
Functions
Nonlocal Variables:
 Python3 introduced nonlocal variables as a new kind of variables.
 nonlocal variables have a lot in common with global variables.
 One difference to global variables lies in the fact that it is not possible
to change variables from the module scope, i.e. variables which are
not defined inside of a function, by using the nonlocal statement.
 Example
def f():
global x
print(x)
x=3
f()
Output: 3
 We will change “global” to “nonlocal” in the following program:
def f():
nonlocal x
print(x)
x=3
f()
Output:
File “example1.py”, line 2
nonlocal x
SyntaxError: no binding for nonlocal ‘x’ found
Function Composition
 It is the ability to call one function from within another function.
 It is a way of combining functions such that the result of each
function is passed as the argument of the next function.
 Example:
Distance between two points of a circle
Sqrt((x2-x1)**2 +(y2-y1)**2)
Distance between two points of a circle

import math
def distance(x1,y1,x2,y2):
result=math.sqrt(((x2-x1)**2)+((y2-y1)**2))
return result
xc=input(“enter x1 value:”))
yc=input(“enter y1 value:”))
xp=input(“enter x2 value:”))
yp=input(“enter y2 value:”))
print(distance(xc,yc,xp,yp))
Boolean functions

 Functions can return booleans, which is often convenient for hiding


complicated tests inside functions.
 They are often used in conditional statements.
 Example
def is_divisible(x, y):
if x % y == 0:
return True
else:
return False
is_divisible(6, 4)
Output: False
Recursion
 Recursion is a way of programming in which a function calls
itself again and again until a condition is true.
 A Recursion function calls itself and has a termination
condition.
Advantage:
 Recursive functions make the code look clean and elegant.
 A complex task can be broken down into simpler sub-
problems using recursion.
Disadvantage:
 Sometime it is difficult to understand the logic
 It is expensive
 Hard to debug
Example:
def factorial(n):
if (n == 0):
return (1 )
else:
return (n* factorial(n-1))

n=input(“Enter a number:”)
print(“factorial= %d”%n)
Output:
Enter a number :5
Factorial=120
STRINGS
 String are sequence of character enclosing with
quotes. Python treats single quotes the same as
double quotes.
 Creating strings is as simple as assigning a value to
a variable.

 Example
var1 = ‘Hello World!’
var2 = “Python Programming”
Accessing values in strings
 To access substrings, use the square brackets for
slicing along with the index or indices to obtain your
substring.
 Example
var1 = ‘Hello World!’
var2 = “Python Programming”
print (“var1[0]: “, var1[0])
print (“var2[1:5]: “, var2[1:5])
Output
var1[0]: H
var2[1:5]: ytho
Updating Strings
var1 = ‘Hello World!’
Print( “Updated String :- “, var1[:6] +
‘Python’)

Output:
Updated String :- Hello Python
Escape Characters
String special operators
String formatting operator
 Example
print (“My name is %s and weight is %d kg!” %
(‘Zara’, 21))
 Output
My name is Zara and weight is 21 kg!
String formatting operator
Triple Quotes
 The syntax for triple quotes consists of three consecutive single or double
quotes.
 Example:
para_str = “””this is a long string that is made up of several lines and non-
printable characters such as TAB ( \t ) and they will show up that way when
displayed.NEWLINEs within the string, whether explicitly given like this
within the brackets [ \n ], or just a NEWLINE withinthe variable assignment
will also show up.“””
print( para_str)
 Output:
this is a long string that is made up ofseveral lines and non-printable
characters such asTAB ( ) and they will show up that way when
displayed.NEWLINEs within the string, whether explicitly given likethis
within the brackets [
], or just a NEWLINE withinthe variable assignment will also show up.
String Slices
 The “slice” refer to sub-parts of sequences, typically
strings and lists.
 The slice s[start:end] is the elements beginning at
start and extending up to but not including end
 Example : s = “Hello”
 s[1:4] is ‘ell’
 s[1:] is ‘ello’
 s[:] is ‘Hello’
 s[1:100] is ‘ello’
 s[-1] is ‘o’
 s[-4] is ‘e’
 s[:-3] is ‘He’
 s[-3:] is ‘llo’
String are Immutable
 Strings are immutable, which means you cannot
change an existing string.
 Greeting = “Hello, world!”
 newGreeting = ‘J’ + greeting[1:]
 print(newGreeting)
 print(greeting) # same as it was
 Output
 Jello, world!
 Hello, world!
String Functions and Methods
S.NO Methods Description
1 capitalize() Capitalizes first letter of string
2 isalnum() Returns true if string has at least 1
character and all characters are
alphanumeric and false otherwise.
3 isalpha() Returns true if string has at least 1
character and all characters are
alphabetic and false otherwise.
4 isdigit() Returns true if string contains only
digits and false otherwise.
5 islower() Returns true if string has at least 1
cased character and all cased
characters are in lowercase and
false otherwise.
6 isupper() Returns true if string has at least
one cased character and all cased
characters are in uppercase and
false otherwise.
7 len(string) Returns the length of the string
String Module
 import string
 text = “Monty Python’s Flying Circus”
 Print( “upper”, “=>”, string.upper(text) )
 print (“lower”, “=>”, string.lower(text) )
 print (“split”, “=>”, string.split(text) )
 print (“join”, “=>”, string.join(string.split(text), “+”) )
 print (“replace”, “=>”, string.replace(text, “Python”, “Java”)
)
 print (“find”, “=>”, string.find(text, “Python”),
string.find(text, “Java”) )
 print (“count”, “=>”, string.count(text, “n”))
LISTS AS ARRAY
 List basics
 A list in Python is just an ordered collection of items which can be of
any type.
 myList=[1,2,3,4,5,6]
Comprehensions

 A comprehension is roughly speaking just an expression that specifies a sequence


of values think of it as a compact for loop. In Python a comprehension can be used
to generate a list.
 The simplest form of a list comprehension is
 [expression for variable in list]
 Example
To create the list equivalent of a ten-element array you could write:
myList=[0 for i in range(10)]
myList[i]=something
Example:
myList=[i for i in range(10)]
sets myList to [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] and
myList=[i*i for i in range(10)]
sets myList to [0, 1, 4, 9, 16, 25, 36, 49, 64, 81].
Two dimensions
for i in range(len(myArray)):
for j in range(len(myArray[i])):
print (myArray[i][j])
Illustrative Program:
GCD of a number
a=int(input(“enter the value for a:”))
b=int(input(“enter the value for b:”))
result = a%b
while result !=0:
a=b
b=result
result= a%b
print(“\n GCD of given no. is %d” % (b))
 Output:
enter the value for a:12
enter the value for b:36
GCD of given no. is 12
SQUARE ROOT OF A NUMBER
print(“Square Root Program”)
num = input(“Enter a number: “)
number = float(num)
number_sqrt = number ** 0.5
Print(“Square Root of %d is %0.2f” %(number, number_sqrt))

Output:
Square Root Program
Enter a number:25
Square Root of 25 is 5.00
Sum the arraya of numbers
def listsum(numList):
if len(numList) == 1:
return numList[0]
else:
return numList[0] + listsum(numList[1:])
print(listsum([1,3,5,7,9]))

Output:
25
Linear search
i=0
j=0
count=0
list=[]
N=int(input("Enter the no. of elements"))
while i<N:
item=int(input("Enter your %d elements to the list:"%(i)))
list. append(item)
i=i+1
search=int(input("Enter the element to search:"))
while j<N:
if(search==list[j]):
count=1
j=j+1
if(count==1):
print("The element %d is present in the list"%search)

else:
print("The element %d is not present in the list"%search)
Binary search
n = int(input("Enter the size of the list: "))
def binary_search(sortedlist,n,x):
sortedlist = []
start = 0
for i in range(n):
end = n - 1
sortedlist.append(input())
for i in sortedlist: print(sortedlist)
while(start <= end): x = int(input("Enter the number to search: "))
mid = int((start + end)/2) position = binary_search(sortedlist,n,x)
if (x == int(sortedlist[mid])): if(position != -1):
return mid print("Entered number %d is present at
elif(x < int(sortedlist[mid])): position: %d"%(x,position))
end = mid - 1 else:
print("Entered number %d is not present in
else:
the list"%x)
start = mid + 1
return -1
Exponentiation Program
 base=int(input('Enter the base value:'))
 exp=int(input('Enter the exponent value:'))
 res=1
 for _ in range(exp):
 res=res*base
 print("\n Exponentiation using loop:",res)

 # Direct method to find Exponentiation


 factor=base ** exp
 print("\nFactor is:",factor)

You might also like