Problem Solving and Python Programming: Laboratory Programs

Laboratory Python Programs Set 1

Problem Solving and Python Programming

Engineering Python : UNIT V : Files, Modules, Packages

Laboraatory

 

Contents

Experiment 1: Identification and solving of simple real life or scientific or technical problems, and developing flow charts for the same. (Electricity Billing, Retail shop billing, Sin series, weight of a motorbike, Weight of a steel bar, compute Electrical Current in Three Phase AC Circuit, etc.).... .L - 2

Experiment 2: Python programming using simple statements and expressions (exchange the values of two variables, circulate the values of n variables, distance between two points). .............L-3

Experiment 3: Scientific problems using Conditionals and Iterative loops. (Number series, Number Patterns, pyramid pattern)....................L-3

Experiment 4: Implementing real-time/technical applications using Lists, Tuples. (Items present in a library/Components of a car/ Materials required for construction of a building - operations of list & tuples)...................... - 3

Experiment 5: Implementing real-time/technical applications using Sets, Dictionaries. (Language, components of an automobile, Elements of a civil structure, etc.operations of Sets & Dictionaries)..............L-3

Experiment 6: Implementing programs using Functions. (Factorial, largest number in a list, area of shape)............L - 3

Experiment 7: Implementing programs using Strings. (reverse, palindrome, character count, replacing characters)................L-3

Experiment 8: Implementing programs using written modules and Python Standard Libraries (pandas, numpy. Matplotlib, scipy)........L-3

Experiment 9: Implementing real-time/technical applications using File handling. (copy from one file to another, word count, longest word)

Experiment 10: Implementing real-time/technical applications using Exception handling. (divid by zero error, voter's age validity, student mark range validation)................L - 3

Experiment 11 : Exploring Pygame tool. Experiment 12: Developing a game activity using Pygame like bouncing ball, car race etc. ……….L-9

 

Experiment 1 : Identification and solving of simple real life or scientific or technical problems, and developing flow charts for the same. (Electricity Billing, Retail shop billing, Sin series, weight of a motorbike, Weight of a steel bar, compute Electrical Current in Three Phase AC Circuit, etc.)

Solution :

The sine series is denoted as follows -

sin (x) = (x^1/1!) - (x^3/3!) + (x^5/5!) - (x^7/7!) + ...

The flow chart for computing sin series is as follows -



Experiment 2 : Python programming using simple statements and expressions (exchange the values of two variables, circulate the values of n variables, distance between two points).

Solution :

Refer section 2.12

 

Experiment 3 : Scientific problems using Conditionals and Iterative loops. (Number series, Number Patterns, pyramid pattern)

Solution :

Refer sections 3.4 and 3.5

 

Experiment 4 : Implementing real-time/technical applications using Lists, Tuples. (Items present in a library/Components of a car/ Materials required for construction of a building-operations of list and tuples)

Solution :

Refer sections 4.1 and 4.2

 

Experiment 5: Implementing real-time/technical applications using Sets, Dictionaries. (Language, components of an automobile, Elements of a civil structure, etc.- operations of Sets and Dictionaries)

Solution :

 Refer section 4.3

 

Experiment 6: Implementing programs using Functions. (Factorial, largest number in a list, area of shape)

Solution :

 Refer section 3.6 and 3.7.

 Fruitful Functions    AU : Jan. 18, Marks 6

There are two types of functions.

1) The functions that return some value

2) The functions that does not return the value. The fruitful functions are the functions that return values.

 

1. Return Values

The value can be returned from a function using the keyword return. For example

Syntax

return (expression_list]

Example 3.6.1 Write a function that returns area of circle

Solution :

Step 1 : Write a function for finding out area of circle in Script mode as

functionDemo.py

def area(r):

result = 3.14*r**2

print("The area of Circle ")

return(result)

Step 2 : Now press the key F5 to get the output of the above program. Give the function call by passing some value of radius to it.

The output will be displayed on the shell window as follows:


 

2.  Parameters

We can pass different number of parameters to the function. Following example illustrates the parameter passing to the function

Example 3.6.2 Write a Python program for creating simple calculator,

Solution :

def add(x, y):

return x + y

def sub(x, y):

return x – y

def mult(x,y)

return x * y

def div(x, y):

return x/y

print("Main Menu")

print("1.Add")

print("2.Subtract")

print("3.Multiply")

print("4.Divide")

 

print("Enter your choice")

choice = int(input())

print("Enter first number")

num1 = int(input())

print("Enter second number: ")

num2 = int(input())

 

if choice = = 1:

print(num1,"+", num2,"=", add(num1,num2))

elif choice = = 2:

print(num1,"-", num2,"=", sub(num1,num2))

elif choice = = 3:

print(num1,"*",num2,"=", mult(num1,num2))

elif choice = = 4:

print(num1,"/", num2,"=", div(num1,num2))

else:

Output

Main Menu

1.Add

2.Subtract

3.Multiply

4.Divide

Enter your choice

1

Enter first number

10

Enter second number:

20

10 + 20 = 30

>>> 

 

Example 3.6.3 Write a python program to find the largest among the three numbers.

Solution :

def largest(x, y,z):

if (x > y) and (x > z):

print("First Number is largest")

elif (y > x) and (y > z):

print("Second Number is largest")

else:

print("Third Number is largest")

print("Enter first number")

num1 = int(input())

print("Enter second number: ")

num2 = int(input())

print("Enter third number: ")

num3 = int(input())

print(largest(num1,num2,num3))

 

Example 3.6.4 Write a Python program using function to find the sum of first 'n' even numbers and print the result.

AU : Jan.-18, Marks 6

Solution :

# first n even numbers

# function to find sum of

# first n even numbers

def evensum(n):

step = 2

sum = 0

i = 1

# sum of first n even numbers

while i < = n:

sum + = step

# next even number

step + = 2

i = i + 1

return sum

# Driver Code

print("Enter value of n")

n = int(input())

print("sum of first", n, "even number is: ",evensum(n))

Output

Enter value of n

3

sum of first 3 even number is: 12

 

Example 3.6.5 Write a Python program using function to find the factors of a given number.

Solution :

#define a function

def Find_factors(n):

# This function takes a number and prints the factors

print("The factors of,n,"are:")

for i in range(1, n + 1):

if n %i = = 0:

print(i)

print("Enter a number: ")

num=int(input())

Find_factors(num)

Output

Enter a number :

12

The factors of 12 are:

1

2

3

4

5

6

12

 

Example 3.6.6 Write a Python program using function to find the GCD of two numbers

Solution :

# define gcd function

def gcd(a, b):

while(b):

a, b = b, a % b

return a

num1 = int(input("Enter first number: "))

num2 = int(input("Enter second number: ")).

print("The G.C.D of", num1,"and", num2,"is", gcd(num1, num2))

Output

Enter first number: 12

Enter second number: 15

The G.C.D of 12 and 15 is 3

 

3. Local and Global Scope

• The global variables are those variables that are declared and defined outside the function and can be used inside the function.

• The local variables are those variables that are declared and defined inside a function.

• A global variable is one that can be accessed anywhere. A local variable is the opposite, it can only be accessed within its frame.

• The difference between the global and local is that global variables can be accessed locally, but not modified locally inherently.

• For example : In the following program, variable a is global variable.

def fun():

print(a)

#global scope

a = 10 fun()

Output

10

Now consider following program, in which we try to change the value declared outside the function

def f():

print(a)

a = 100    #Due to this statement the error is raised

# Global scope

a = 10

f()

print(a)

To make the above program work, we need to use global keyword. We only need to use global keyword in a function if we want to do change that variable.

The corrected version of above program is as follows:

def f():

global a

print(a)

a = 100

# Global scope

a = 10

f()

print(a)

Output

10

100

 

4. Function Composition

• Function composition is a way of combining functions such that the result of each function is passed as the argument of the next function.

• For example, the composition of two functions f and g is denoted f(g(x)). Here x is the argument of g, the result of g is passed as the argument of f and the result of the composition is the result of f.

For example

Step 1: Create a simple function for addition of two numbers.

def add(a,b):

return a+b

Step 2: Create a simple function for multiplication of two numbers

def mul(c,num):

return c*num

Step 3: Create a main function in which the two functions used in above two steps are called.

def mainFun(x,y):

z = add(x,y)

result = mul(z, 10)

return result

The complete program will now look like this



Step 4: Now execute the above program by pressing F5 key. The output can be obtained as follows -


 

Recursion

AU : Jan.-18, Dec.-19, Marks 10

Definition : Recursion is a property in which one function calls itself repeatedly in which the values of function parameter get changed on each call.

Properties of Recursion

There are three important laws of recursion –

1. A recursive function must have a base case.

2. A recursive function must change its state and move toward the base case.

3. A recursive function must call itself, recursively.

 

Example 3.7.1 Display the numbers from 10 to 1 (ie, numbers in reverse order) using recursion in python. Also draw the stack diagram representing the execution of the program.

Solution :

def display(n):

if n < = 0:

return

else:

print(n)

display(n-1)

Output

The execution of above program can be diagrammatically shown as follows:


 

Example 3.7.2 Write a python program for recursive factorial function,

Solution :

def factorial(n):

if n = = 0:

return 1

else:

result = n * factorial(n-1)

return result

print(factorial(5))

Output

120

 

Example 3.7.3 Write a python program to display the Fibonacci series upto n numbers using recursion

Note The Fibonacci numbers are 0,1,1,2,3,5,8,13,21,34,.., where each number is a sum of the preceding two numbers.

AU : Jan.-18, Marks 8

Solution :

def fibonacci(n):

if(n < = 1);

return n

else:

return(fibonacci(n-1) + fibonacci(n-2))

print("Enter number of terms ")

n = int(input())

print("Fibonacci sequence is as follows...")

for i in range(n):

print (fibonacci(i))

Output


 

Example 3.7.4 Implement a recursive function in python for sieve of Eratosthenes. The Sieve of Eratosthenes is a simple algorithm for finding all prime numbers up to a specified integer.

AU : Dec.-19, Marks 10

Solution :

def Sieve(i,num):

if num = ri:

return 0

else:

if(num%i = = 0);

return 1

else:

return Sieve(i+1, num)

n = int(input("Enter last Number:"))

print("Prime Number Between 1 to n are: ")

for i in range(2,n+1):

if(Sieve(2,1)= =0):

print(i,end="")

Output

Enter last Number:50

Prime Number Between 1 to n are:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

>>> 

 

1. Advantages and Disadvantages

Advantages

1) It reduces the length of code.

2) It is very useful while applying the same pattern of solution.

3) It reduces unnecessary calling of function.

4) Big and complex iterative solutions are easy and simple with Python recursion.

Disadvantages

1) Recursive functions are slower than iterative solutions.

2) It is hard to analyse or understand the code.

3) It may require a lot of memory space to hold intermediate results on the system stack.

4) The computer memory may run out of memory if the recursive calls are not properly checked.

 

2. Comparison of Recursions with Iteration

Recursion

1. The function is called itself repeatedly.

2. The intemal stack is used to store the set of local variables

3. Recursion is always applied to function

4. Slow in execution.

5. Recursion reduces the size of the code.

Iteration

1. The set of instructions is executed repeatedly

2. It does not use stack.

3. Iteration is applied to control statements such as for loops, while and do while statements.

4. Fast in execution.

5. Iteration makes the code lengthyExperiment 7 : Implementing programs using Strings. (reverse, palindrome, character count, replacing characters)

Solution :

Programming Examples Based on String

Example 3.8.2 Write a Python program to find the length of a string

Solution :

def str_length(str):

len = 0

for ch in str:

len + = 1

return len

print(“\t\t Program to find the length of a string”)

print(“Enter some string:”)

str = input()

print(“Length of a string is: “,str_length(str))

Output

Program to find the length of a string

Enter some string:

Python

Length of a string is : 6

>>> 

 Experiment 8 : Implementing programs using written modules and Python Standard Libraries (pandas, numpy. Matplotlib, scipy)

Solution :

Refer section 4.5.2

 


Experiment 9 : Implementing real-time/technical applications using File handling. (copy from one file to another, word count, longest word)

Solution :

 Refer section 5.6

 

Experiment 10 : Implementing real-time/technical applications using Exception handling. (divide by zero error, voter's age validity, student mark range validation)

Solution :

Errors and Exceptions AU : Jan.-18, May-19, Dec.-19, Marks 1

Errors are normally referred as bugs in the program. They are almost always the fault of the programmer. The process of finding and eliminating errors is called debugging.

There are mainly two types of errors :

1. Syntax errors: The python finds the syntax errors when it parses the source program. Once it find a syntax error, the python will exit the program without running anything. Commonly occurring syntax errors are :

(i) Putting a keyword at wrong place

(ii) Misspelling the keyword

(iii) Incorrect indentation

(iv) Forgetting the symbols such as comma, brackets, quotes

(v) Empty block

2. Run time errors : If a program is syntactically correct - that is, free of syntax errors – it will be run by the python interpreter. However, the program may exit unexpectedly during execution if it encounters a runtime error. The run-time errors are not detected while parsing the source program, but will occur due to some logical mistake. Examples of runtime error are :

(i) Trying to access the a file which does not exists

(ii) Performing the operation of incompatible type elements

(iii) Using an identifier which is not defined

(iv) Division by zero Such type of errors are handled using exception handling mechanism.


Voter's Age Validation

Python Program

try:

age = int(input("Enter your age: "))

if age > 18:

print("Eligible to vote!!!")

else:

print("Not eligible to vote!!!")

except ValueError as err:

print(err)

finally:

# code to be executed whether exception occurs or not

#typically for closing files and other resources

print("Good Bye!!!")

Output(Run 1)

Enter your age: 20

Eligible to vote!!!

Good Bye!!!

>>> 

Output(Run 2)

Enter your age: twenty

invalid literal for int() with base 10: 'twenty'

Good Bye!!!

>>> 


Marks Range Validation (0-100)

Python Program

while True :

try:

num = int(input("Enter a number between 1 and 100: "))

if num in range(1,100):

print("Valid number!!!")

break

else :

print("Invalid number. Try again.")

except :

print("That is not a number. Try again.")

Output

Enter a number between 1 and 100: -1

Invalid number. Try again.

Enter a number between 1 and 100-10000

Invalid number. Try again.

Enter a number between 1 and 100- five

This not a number . Try again

Enter a number between 1 and 100: 99

Valid number

>>>

 

Problem Solving and Python Programming: Laboratory Programs : Tag: Engineering Python : Problem Solving and Python Programming - Laboratory Python Programs Set 1