I Year Python Material
I Year Python Material
I Year Python Material
SC CS
VEERACHIPALAYAM
PYTHON PROGRAMMING
Unit III: Functions: Function Definition – Function Call – Variable Scope and its
Lifetime- Return Statement. Function Arguments: Required Arguments, Keyword
Arguments, Default Arguments and Variable Length Arguments-Recursion. Python
Strings: String operations- Immutable Strings - Built-in String Methods and Functions
- String Comparison. Modules: import statement- The Python module – dir() function
– Modules and Namespace – Definingour own modules.
Unit IV: Lists: Creating a list -Access values in List-Updating values in Lists-Nested
lists – Basic list operations-List Methods. Tuples: Creating, Accessing, Updating and
Deleting Elements in a tuple – Nested tuples– Difference between lists and
tuples. Dictionaries:
Creating, Accessing, Updating and Deleting Elements in a Dictionary – Dictionary
Functionsand Methods - Difference between Lists and Dictionaries.
Unit V: Python File Handling: Types of files in Python - Opening and Closing files-
Readingand Writing files: write() and writelines() methods- append() method –read()
and readlines() methods – with keyword – Splitting words – File methods - File
Positions- Renaming and deleting files.
Textbooks:
Python Programming
1. Features and History of Python:
1.1Features of Python
Simple: Reading a program written in Python feels almost like reading english. The
main strength of Python which allows programmer to concentrate on the solution
to the problem rather than language itself.
Easy to Learn: Python program is clearly defined and easily readable. The
structure of the program is simple. It uses few keywords and clearly defined syntax.
Versatile: Python supports development of wide range of applications such as
simple text processing, WWW browsers and games etc..
Free and Open Source: It is a Open Source Software. So, anyone can freely
distribute it, read the source code, edit it, and even use the code to write new (free)
programs.
High-level Language: While writing programs in Python we do not worry about
the low-level details like managing memory used by the program.
Interactive: Programs in Python work in interactive mode which allows interactive
testing and debugging of pieces of code. Programmer can easily interact with the
interpreter directly at the python prompt to write their programs.
Portable: It is a portable language and hence the programs behave the same on wide
variety of hardware platforms with different operating systems.
Object Oriented: Python supports object-oriented as well as procedure-orientedstyle
of programming .While object-oriented technique encapsulates data and functionality
with in objects, Procedure oriented at other hand, builds programs around procedure
or functions.
Interpreted: Python is processed at runtime by interpreter. So, there is no need
to compile a program before executing it. You can simply run the program. Basically
python converts source program into intermediate form called byte code.
I B.SC CS
Dynamic and strongly typed language: Python is strongly typed as the interpreter
keeps track of all variables types. It's also very dynamic as it rarely uses what it
knows to limit variable usage.
Extensible: Since Python is an open source software, anyone can add low-level
modules to the python interpreter. These modules enable programmers to add to
or customize their tools to work more efficiently.
Embeddable: Programmers can embed Python within their C, C++, COM, ActiveX,
CORBA and Java Programs to give „scripting „capability for users.
Extensive Libraries: Python has huge set of libraries that is easily portable across
different platforms with different operating systems.
Easy maintenance: Code Written in Python is easy to maintain.
Secure: This Programming language is secure for tampering. Modules can be
distributed to prevent altering of source code. Additionally, Security checks can be
easily added to implement additional security features.
Robust: Python Programmers cannot manipulate memory directly, errors are raised
as exceptions that can be catch and handled by the program code. For every
syntactical mistake, a simple and easy to interpret message is displayed. All these make
python robust.
Multi-threaded: Python supports executing more than one process of a program
simultaneously with the help of Multi Threading.
Garbage Collection: The Python run-time environment handles garbage
collection of all python objects. For this, a reference counter is maintained to assure
that no object that is currently in use is deleted.
History of Python.
Python was first developed by Guido van Rossum in the late 80‟s and early 90‟s
at the National Research Institute for Mathematics and Computer Science in the
Netherlands.
It has been derived from many languages such as ABC, Modula-3, C, C++, Algol-
68, SmallTalk, UNIX shell and other scripting languages.
Since early 90‟s Python has been improved tremendously. Its version 1.0 was
released in 1991, which introduced several new functional programming tools.
I B.SC CS
While version 2.0included list comprehension was released in 2000 by the Be Open
Python Labs team.
Python 2.7 which is still used today will be supported till 2020.
Currently Python 3.6.4 is already available. The newer versions have betterfeatures
like flexible string representation e.t.c,
Although Python is copyrighted, its source code is available under GNU General
Public License (GPL) like that Perl.
Python is currently maintained by a core development team at the institute which
is directed by Guido Van Rossum.
These days, from data to web development, Python has emerged as very powerful
and popular language. It would be surprising to know that python is actually older
than Java, R and JavaScript.
Applications of Python:
Embedded scripting language: Python is used as an embedded scripting language
for various testing/ building/ deployment/ monitoring frameworks, scientific apps,
and quick scripts.
3D Software: 3D software like Maya uses Python for automating small user tasks,
or for doing more complex integration such as talking to databases and asset
management systems.
Web development: Python is an easily extensible language that provides good
integration with database and other web standards.
GUI-based desktop applications: Simple syntax, modular architecture, rich text
processing tools and the ability to work on multiple operating systems makes Python
a preferred choice for developing desktop-based applications.
Image processing and graphic design applications: Python is used to make 2D
imaging software such as Inkscape, GIMP, Paint Shop Pro and Scribus. It is also used
to make 3D animation packages, like Blender, 3ds Max, Cinema 4D, Houdini, Light
wave and Maya.
Scientific and Computational applications: Features like high speed, productivity
and availability of tools, such as Scientific Python and Numeric Python, have made
Python a preferred language to perform computation and
I B.SC CS
Keyword in Python:
as elif if or yield
2. Literal Constants
In programming constants are referred to variables that cannot be changed.
Generally Literal constants are classified in to three types.
Literal Constants
Numeric Literals
The value of a literal constant can be used directly in programs. For example,
7, 3.9, 'A', and "Hello" are literal constants.
Numbers refers to a numeric value. You can use four types of numbers inPython
program- integers, long integers, floating point and complex numbers.
Numbers like 5 or other whole numbers are referred to as integers. Bigger whole
numbers are called long integers. For example, 535633629843L is a long integer.
Numbers like are 3.23 and 91.5E-2 are termed as floating point numbers.
Numbers of a + bj form (like -3 + 7j) are complex numbers.
I B.SC CS
Python Programming
Boolean Literals
A Literals Boolean type can have one of the two values- True or False.
Examples:
String Literals
A string is a group of characters.
Using Single Quotes ('): For example, a string can be written as 'HELLO'.
Using Double Quotes ("): Strings in double quotes are exactly same as those in single
quotes. Therefore, 'HELLO' is same as "HELLO".
Using Triple Quotes (''' '''): You can specify multi-line strings using triple quotes. You
can use as many single quotes and double quotes as you want in a string within
triple quotes.
I B.SC CS
Examples:
Unicode Strings
Unicode is a standard way of writing international text. That is,if you want to
write some text in your native language like hindi,then you need to have a
Unicode-enable text editor.
Python allows you to specify Unicode text by prefixing the string with a u or U.
For Example: u”Sample Unicode string”
Note :The „U‟ prefix specifies that the file contains text written in language
other than English
Escape Sequences
Raw Strings
If you want to specify a string that should not handle any escape sequences
and want to display exactly as specified then you need to specify that string as
a raw string. A raw string is specified by prefixing r or R to the string.
I B.SC CS
Example:
3. Data types
The variables can hold values of different type called Data Type.
Data type is a set of values and the allowable operations on those values.
Python has a great set of useful data types. Python's data types are built in the
core of the language. They are easy to use and straightforward.
Example a person age is stored in a number ,his name is made only with
characters, and his address is made with mixture of numbers and characters.
Python ha various standard data types to define the operations possible on
them and storage method for each of them.
Python supports the following five standard data types
1.Numbers
2.Strings
3.Lists
4.Tuple
5.Dictionary
In Python , you can reassign variables as many times as you want to change
the value stored in them. You may even store value of one data type in a
statement and other data type in subsequent statement. This is possible because
Python variables do not have specific types, i.e., we can assign integer to the
variable, later we assign string to the same variable.
Example:Program to reassign value to a variable
val = „Hello‟
print(val)
val = 100
print(val)
val=10.32
I B.SC CS
print(val)
Output
Hello
100
10.32
Multiple Assignments
Python allows programmers to assign single value to more than one variable
simultaneously.
For example
>>>sum = flag = a = b = 0
In the above statement, all four integer variables are assigned a value 0.You
can also assign different values to multiple variables simultaneously as shown
below
For example
>>>sum, a, b, mesg = 0, 3, 5, “Result”
Note: Removing a variable means that the reference from the name to the value has
been deleted.However, deleted variables can be used again in the code if and only if
you reassign them some value.
Boolean Type
A variable of Boolean type can have one of the two values- True or False.
Similar to other variables, the Boolean variables are also created while we assign a
value to them or when we use a relational operator on them.
I B.SC CS
Tuples
Examples:
Lists
Lists are the most versatile data type of Python language.
A list consist of items separated by commas and enclosed within square brackets
The values stored in a list are accessed using indexes.
The index of the first element being 0 and n-1 as that of the last element, where
n is the total number of elements in the list. Like strings, you can alsouse the
slice, concatenation and repetition operations on lists.
Example program to demonstrate operations on lists
list = ['a', 'bc', 78, 1.23]
print(list)
print(list[0])
I B.SC CS
print(list[1:3])
print(list[2:])
print(list * 2)
print(list + list1)
Output:
['bc', 78]
[78, 1.23]
Dictionary
Python‟s dictionaries stores data in key-value pairs.
The key values are usually strings and value can be of any data type. The key value
pairs are enclosed with curly braces ({ }).
Each key value pair separated from the other using a colon (:). To access any
value in the dictionary, you just need to specify its key in square braces ([]).Basically
dictionaries are used for fast retrieval of data.
Example
I B.SC CS
Variables
Variable means its value can vary. You can store any piece of information in a
variable.
Variables are nothing but just parts of your computer‟s memory where information
is stored. To identify a variable easily, each variable is given an appropriate name.
Identifiers
Identifiers are names given to identify something. This something can be a
variable, function, class, module or other object. For naming any identifier, there are
some basic rules like:
5. Operators
Operators are special symbols in Python that carry out arithmetic or logical
computation. The value that the operator operates on is called the operand.
For example:
>>> 2+3
Here, + is the operator that performs addition. 2 and 3 are the operands
and 5 is the output of the operation.
I B.SC CS
For Example assuming a=100 and b=2000,we can use the comparison
operators on them as specified in the following table.
Unary Operator
Unary operators act on single operands. Python supports unary minus
operator.
Unary minus operator is strikingly different from the arithmetic operator that
operates on two operands and subtracts the second operand from the first
operand.
When an operand is preceded by a minus sign, the unary operator negates its
value.
For example, if a number is positive, it becomes negative when preceded with a
unary minus operator. Similarly, if the number is negative, it becomes positive
after applying the unary minus operator. Consider the given example.
b = 10 a = -(b)
Bitwise Operators
As the name suggests, bitwise operators perform operations at the bit level.
These operators include bitwise AND, bitwise OR, bitwise XOR, and shift
operators.
Bitwise operators expect their operands to be of integers and treat them as a
sequence of bits.
The truth tables of these bitwise operators are given below.
Example: If a=60 and b=13 then look at the table below, to see the result of
Bitwise operations.
~ (~a ) = -61
It is unary and has the effect of (means 1100 0011
Binary Ones 'flipping' bits. in 2's complement
Complement form due to a
signed binary
I B.SC CS
number.
Shift Operators
Python supports two bitwise shift operators. They are shift left (<<) and shift
right (>>).
These operations are used to shift bits to the left or to the right. The syntax for
a shift operation can be given as follows:
Examples:
Logical Operators
Logical NOT (not) operator takes a single expression and negates the value of
the expression. Logical NOT produces a zero if the expression evaluates to a non-
zero value and produces a 1 if the expression produces a zero. In other words, it
just reverses the value of the expression.
For example, a = 10; b = not a; Now, the value of b = 0.
Python supports two types of membership operators–in and not in. These operators, test
for membership in a sequence such as strings, lists, or tuples.
Identity Operators
Assignment Operators
Assignment operators are used in Python to assign values to variables.
I B.SC CS
= x=5 x=5
+= x += 5 x=x+5
-= x -= 5 x=x-5
*= x *= 5 x=x*5
/= x /= 5 x=x/5
%= x %= 5 x=x%5
//= x //= 5 x = x // 5
**= x **= 5 x = x ** 5
|= x |= 5 x=x|5
^= x ^= 5 x=x^5
Operator Precedence
The operator precedence in Python are listed in the following table. It is in
descending order, upper group has higher precedence than the lower ones.
Operators Meaning
() Parentheses
** Exponent
+, - Addition, Subtraction
^ Bitwise XOR
| Bitwise OR
or Logical OR
6. Input Operation
To take input from the users, Python makes use of the input( ) function. Theinput(
) function prompts the user to provide some information on which theprogram can
work and give the result.
However, we must always remember that the input function takes user‟s input
as a string.
Example:
7. Comments
Comments are the non-executable statements in a program. They are just added
to describe the statements in the program code.
Comments make the program easily readable and understandable by the
programmer as well as other users who are seeing the code. The interpreter
simply ignores the comments.
In Python, a hash sign (#) that is not inside a string literal begins a comment. All
characters following the # and up to the end of the line are part of the comment
I B.SC CS
Example:
Note: For writing Multi line comments. Make sure to indent the leading „ „
„ appropriately to avoid an Indentation Error
„„„
This is a multiline
comment.
„„„
8. Indentation
Whitespace at the beginning of the line is called indentation. These whitespaces
or the indentation are very important in Python.
In a Python program, the leading whitespace including spaces and tabs at the
beginning of the logical line determines the indentation level of that logical line.
Example:
9. Expressions
An expression is any legal combination of symbols (like variables, constants
and operators) that represents a value.
I B.SC CS
Example Program:
Give the output for the following statements.( April 2018 Regular)
a = 20
b = 10
c = 15
d=5
e = (a + b) * c / d
I B.SC CS
e = ((a + b) * c) / d
e = (a + b) * (c / d)
e = a + (b * c) / d
Output:
Value of (a + b) * c / d is 90.0
Value of (a + b) * (c / d) is 90.0
Value of a + (b * c) / d is 50.0
10.Type Conversion
In Python, it is just not possible to complete certain operations that involves
different types of data.
For example, it is not possible to perform "2" + 4 since one operand is an
integer and the other is of string type.
>>>”20” + “30” >>> int(“2”) + int(“3”)
Output Output
„2030‟ 5
print(x+y)
output
67
Example2:
x=int(input(“Enter the firstnumber))
y=int(input(“Enterthesecondnumber))
print(x+y)
Output
Enterthefirstnumber6
Enterthesecondnumber7
13
Python provides various built-in functions to convert value from one data type
to another datatype.The following are the functions return new object representing
the coverted value. Some of them are given in the following table.
print(str(num1)+"+"+str(num2)+"="+str(res))
Output:
Assignment-Cum-Tutorial Questions
A. Objective Questions
1. Literal is of the form a+bj is called
2. Identify the words which describes Python [ ]
a)Interpreted b)simple c)reliable d)all of these
3. Python allows you to specify Unicode Text by prefixing the string with which
character [ ]
a) U b)R c)S d)A
>>print(spam*3)
B. Subjective Questions
1. Describe the features of Python
2. Differentiate between literals and variables in python.
3. What are literals? Explain with the help of suitable examples?
4. Explain the significance of Escape sequences with relevant examples
5. Write briefly about Data types in Python
6. Explain in detail about Membership and Identity Operators.
7. How can the ternary operator used in python?
I B.SC CS
14. Write a Python program to calculate the area of triangle using Heron‟s formula
e) not(100<0 or 100>20)
16. Give an appropriate boolean expression for the each of the following
a)check if variable v is greater than or equal to 0,and less than 10
b) check if variable v is less than 10 and greater than or equal to 0,or it is equal
to 20.
c) check if either the name „cse‟ or „it‟ appears in the list of names assigned to
variable last_names.
I B.SC CS
d) check if the name „cse‟ appears and the name „it‟does not appear in the list
of last name assigned to variable last_names.
17. Identify the datatype is best suitable to represent the following data values
a)Number of days in the year
ooo
I B.SC CS
UNIT-II
Un-conditional Control:
if Statement
if-else Statement
Nested if statement
if-elif-else statement.
1. 1 if Statement:
Syntax:
if test_expression:
statement 1
.....
statement n
statement x
Flow chart:
Example:
if else Statement:
Syntax:
if (test expression):
statement_block 1
else:
statement_block 2
statement x
If the condition is true, then it will execute statement block 1 and if the
condition is false then it will execute statement block 2.
Flowchart:
Nested if Statements :
To perform more complex checks, if statements can be nested, that is, can
be placed one inside the other.
In such a case, the inner if statement is the statement part of the outer one.
Nested if statements are used to check if more than one conditions are
satisfied.
var = 100
if var == 150:
else:
UNIT-2
Output:-
Which is 100
Good bye!
if-elif-else Statement :
A series of if and elif statements have a final else block, which is executed if
none of the if or elif expressions is True.
Syntax:
statement block1
statement block2
. . . . . . . . . . . . . . ..
statement block N
else:
statement block X
I B.SC CS
Flowchart:
Program: To test whether a number entered by the user is negative, positive, or zero
Iterative statements are decision control statements that are used to repeat the
execution of a list of statements.
while Loop :
The While loop provides a mechanism to repeat one or more statements
while a particular condition is TRUE.
Syntax:
Statement x
while (condition):
Statement block
Statement y
I B.SC CS
UNIT-2
In while loop, the condition is tested before any of the statements in the
statement block is executed.
Flowchart:
i=0
while(i<=10):
print(i, end=‖ ―)
i=i+1
Output: 0 1 2 3 4 5 6 7 8 9 10
for Loop:
For loop provides a mechanism to repeat a task until a particular condition
is True. It is usually known as a determinate or definite loop because the
programmer knows exactly how many times the loop will repeat.
Syntax:
statement block
I B.SC CS
Flowchart:
Syntax:
Example: Program to print first n numbers using the range() in a for loop
o If range( ) has three arguments then the third argument specifies the
interval of the sequence produced. In this case, the third argument must be
an integer. For example, range(1, 20, 3) gives 1, 4, 7, 10, 13, 16, 19.
Example:
1. Program that accepts an integer (n) and computes the value of n+nn+nnn.
(Eg. If n=5, find 5+55+555).
str_n = str(n)
sum = n
sum_str = str(n)
print(sum)
str = ""
for i in s:
str = i + str
Nested Loops :
Python allows its users to have nested loops, that is, loops that can be
placed inside other loops.
Although this feature will work with any loop like while loop as well as for
loop.
A for loop can be used to control the number of times a particular set of
statements will be executed.
I B.SC CS
Another outer loop could be used to control the number of times that a
whole loop is repeated.
Example:
The break statement is widely used with for loop and while loop.
Syntax:
I B.SC CS
UNIT-2
Break
Above code is meant to print first 10 numbers using a while loop, but it
will actually print only numbers from 0 to 4. As soon as i becomes equal to
5, the break statement is executed and the control jumps to the following
while loop.
Hence, the break statement is used to exit a loop from any point with in its
body, by passing its normal termination expression. Below, Figure shows
the transfer of control when the break statement is encountered.
UNIT-2
Note that the code is meant to print numbers from 0 to 10.But as soon as i
becomes equal to 5, the continue statement is encountered, so rest of the
statements in the loop are skipped. In the output, 5 is missing as continue
caused early increment of i and skipping of statement that printed the value
of i on screen.
The difference between a comment and pass statement is that while the
interpreter ignores a comment entirely, pass is not ignored.
UNIT-2
Example:
The break statement terminates the execution of the nearest enclosing loop
in which it appears.
The continue statement skips the rest of the statements in the loop transfer
the control un-conditionally to the loop-continuation portion of the nearest
enclosing loop.
UNIT-2
3. Programs:
if (num % 2==0):
else:
Output:
Enter a number: 5
5 is an odd number.
3. 2 Write a python program to Print out the decimal equivalents of 1/1, 1/2, 1/3,
1/4 .......... 1/10 using for loop.
i=1
for i in range(1,11):
value=1.0/i
print("1/", i, "=", value)
Output:
1/ 1 = 1.0
1/ 2 = 0.5
1/ 3 = 0.333333333333
1/ 4 = 0.25
1/ 5 = 0.2
1/ 6 = 0.166666666667
1/ 7 = 0.142857142857
1/ 8 = 0.125
1/ 9 = 0.111111111111
1/ 10 = 0.1
I B.SC CS
)
UNIT-2
3. 3. Write a python program to Print a count down from the given number to zero
using a while loop.
print(num)
num = num - 1
Output:
Enter a number: 6
0
3.4. Write a python program to Find the sum of all the primes below hundred.
sum=0
for j in range(1,100):
for i in range(2,j):
if (j% i) == 0:
break
else:
utput:
Sum of prime numbers up to 100 is 1061
I B.SC CS
fact=1
while (num>0):
fact=fact*num
num=num-1
Output:
Enter a number: 6
Factorial of 6 is 720
I B.SC CS
Assignment-Cum-Tutorial Questions
A. Objective Questions
a) ; b) . c) : d) ,
while False:
print(“hello”) [ ]
a) 1 b) 0 c) 10 d) countless
7. Which statement is used to stop the current iteration of the loop and continue
with the next one? [ ]
11. x=100 [ ]
y=200
x>y
UNIT-2
i=5
while i>=0:
print(i)
i=i-1
a) 5 b) 6 c) 4 d)0
i=1
while true:
if i%3 == 0:
break
print(i)
i+=1
for i in range(2.0):
print(i)
a) 0.0 1.0 b) 0 1
c) error d) none of the mentioned
for i in range(10):
if i == 5:
break
else:
print(i)
else:
I B.SC CS
print("here")
a) 0 1 2 3 4 here b) 0 1 2 3 4 5 here c) 0 1 2 3 4 d) 1 2 3 4 5
B. Descriptive Questions
6. Explain the utility of break and continue statements with the help of an
example.
10. Write a Python program that accepts a word from the user and reverse it
11. Write a Python program that accepts an integer (n) and computes the value of
n+nn+nnn. (Eg. If n=5, find 5+55+555).
UNIT-3
Unit-III
Functions and Strings
Functions
A function is a block of organized and reusable program code that performs a
single, specific, and well-defined task.
Python enables its programmers to break up a program into functions, each of
which can be written more or less independently of the others. Therefore, the
code of one function is completely insulated from the codes of the other
functions.
called function. After called function is executed, the control is returned back
to the calling program.
It is not necessary that the func1() can call only one function, it can call as
many functions as it wants and as many times as it wants. For example, a
function call placed within for loop or while loop may call the same function
multiple times until the condition holds true.
)
UNIT-3
Figure 8: Arguments may be passed in the form of expressions to the called function.
Figure 10: lists the differences between global and local variables.
I B.SC CS
Resolution of names
Scope defines the visibility of a name within a block. If a local variable is defined in a
block, its scope is that particular block. If it is defined in a function, then its scope is all
blocks within that function.
When a variable name is used in a code block, it is resolved using the nearest
enclosing scope. If no variable of that name is found, then a NameError is raised. In
the code given below, str is a global string because it has been defined before calling
the function.
Figure 12: Program that demonstrates using a variable defined in global namespace.
The Return Statement
The syntax of return statement is,
return [expression]
The expression is written in brackets because it is optional. If the expression is
present, it is evaluated and the resultant value is returned to the calling function.
However, if no expression is specified then the function will return none.
The return statement is used for two things.
• Return a value to the caller
• To end and exit a function and go back to its caller
Figure 13: Program to write another function which returns an integer to the caller.
More on defining functions:
In this section we will discuss some more ways of defining a function.
1. Required arguments
I B.SC CS
2. Keyword arguments
3. Default arguments
4. Variable-length arguments
Required Arguments
In the required arguments, the arguments are passed to a function in correct
positional order. Also, the number of arguments in the function call should exactly
match with the number of arguments specified in the function definition
Example:
Keyword Arguments
When we call a function with some values, the values are assigned to the arguments
based on their position. Python also allow functions to be called using keyword
arguments in which the order (or position) of the arguments can be changed. The
values are not assigned to arguments according to their position but based on their
name (or keyword).
Keyword arguments are beneficial in two cases.
• First, if you skip arguments.
• Second, if in the function call you change the order of parameters.
Example:
Default Arguments
Python allows users to specify function arguments that can have default values. This
means that a function can be called with fewer arguments than it is defined to have.
I B.SC CS
That is, if the function accepts three parameters, but function call provides only two
arguments, then the third parameter will be assigned the default (already specified)
value. The default value to an argument is provided by using the assignment operator
(=). Users can specify adefault value for one or more arguments.
Example:
Variable-length Arguments
In some situations, it is not known in advance how many arguments will be passed to
a function. In such cases, Python allows programmers to make function calls with
arbitrary (or any) number of arguments.
When we use arbitrary arguments or variable length arguments, then the function
definition use an asterisk (*) before the parameter name. The syntax for a function
using variable arguments can be given as,
Example:
Lambda functions are throw-away functions, i.e. they are just needed where they
have been created and can be used anywhere a function is required. The lambda
feature was added to Python due to the demand from LISP programmers.
Lambda functions contain only a single line. Its syntax can be given as,
Example
Documentation Strings
Docstrings (documentation strings) serve the same purpose as that of comments, as
they are designed to explain code. However, they are more specific and have a proper
syntax.
Example:
Recursive Functions
A recursive function is defined as a function that calls itself to solve a smaller version
of its task until a final call is made which does not require a call to itself. Every
recursive solution has two major cases, which are as follows:
• base case, in which the problem is simple enough to be solved directly without
making any further calls to the same function.
• recursive case, in which first the problem at hand is divided into simpler sub parts.
Recursion utilized divide and conquer technique of problem solving.
I B.SC CS
Example:
Recursion vs Iteration:
Recursion is more of a top-down approach to problem solving in while the original
problem is divided into smaller sub-problems.
Iteration follows a bottom-up approach that begins with what is known and then
constructing the solution step-by-step.
Pros The benefits of using a recursive program are:
Recursive solutions often tend to be shorter and simpler than non-recursive
ones.
Code is clearer and easier to use.
Recursion uses the original formula to solve a problem.
It follows a divide and conquer technique to solve problems.
In some instances, recursion may be more efficient.
Cons The limitations of using a recursive program are:
For some programmers and readers, recursion is difficult concept.
Recursion is implemented using system stack. If the stack space on the system
is limited, recursion to a deeper level will be difficult to implement.
Aborting a recursive process in midstream is slow and sometimes nasty.
Using a recursive function takes more memory and time to execute as
compared to its non-recursive counterpart.
It is difficult to find bugs, particularly when using global variables.
Conclusion: The advantages of recursion pays off for the extra overhead involved in
terms of time and space required.
Modules
We have seen that functions help us to reuse a particular piece of code.
Module goes a step ahead. It allows you to reuse one or more functions in your
I B.SC CS
programs, even in the programs in which those functions have not been
defined.
Putting simply, module is a file with a.py extension that has definitions of all
functions and variables that you would like to use even in other programs. The
program in which you want to use functions or variables defined in the module
will simply import that particular module (or .py file).
Modules are pre-written pieces of code that are used to perform common tasks
like generating random numbers, performing mathematical operations, etc.
The basic way to use a module is to add import module_name as the first line
of your program and then writing module_name.var to access functions and
values with the name var in the module.
The from…import Statement
A module may contain definition for many variables and functions. When you import
a module, you can use any variable or function defined in that module. But if you
want to use only selected variables or functions, then you can use the from...import
statement. For example, in the aforementioned program you are using only the path
variable in the sys module, so you could have better written from sys import path.
Example:
To import more than one item from a module, use a comma separated list. For
example, to import the value of pi and sqrt() from the math module you can write,
2. Write function to compute gcd, lcm of two numbers. Each function shouldn‟t
exceed one line.
Program:
from fractions import gcd
print gcd(5,25)
def lcm():
a=60
b=40
print (a * b) // gcd(a, b)
lcm()
output:
I B.SC CS
3. Find the sum of the even-valued terms in the Fibonacci sequence whose values do
not exceed ten thousand.
program:
i=0
j=1
sum=0
while(i<10000):
i=i+j
j=i-j
if(i%2==0):
sum+=i
print sum
output:
I B.SC CS
Strings
Programs:
1. Write a program that accepts a string from a user and re-displays the same after
removing vowels from it.
Program:
while True:
print('Enter x for exit.')
string = raw_input('Enter any string: ')
if string == 'x':
break
else:
newstr = string
print("\nRemoving vowels from the given string...")
I B.SC CS
output:
output:
I B.SC CS
Assignment-Cum-Tutorial Questions
A) Objective Questions
1. User-defined functions are created by using the keyword.
6. Arbitrary arguments have which symbol in the function definition before the
parameter name? [ ]
a) & b) # c) % d) *
def display(x):
fori in range(x):
print(i)
return
display(10)
a) 0 b) 1 c) 9 d) 10
I B.SC CS
12. How many times will the print() execute in the code given below? [ ]
def display():
print(„a‟)
print(„b‟)
return
print(„c‟)
print(„d‟)
a) 1 b) 2 c) 3 d)4
import random as r
print(random.randomint(1,10))
14. Identify the correct way of calling a function named display() that prints Hello on
the screen.
a) print(display) b) displayHello [ ]
Def func():
Print(“Hello world”)
deffunc(var):
var+=1
var *=2
print(var)
func(9)
I B.SC CS
print(var)
Def func():
global x
print(“x=”,x)
x=100
x=10
func()
print(„x =‟,x)
print(“Name:”, name)
print(“Department: “, deptt)
print(“Salary: “, sal)
Department: HR
Salary: 50000
I B.SC CS
Salary: 100000
Department: HR
Name: Dev
Salary: 50000
19. “Cool” become “COOL”, which two functions must have been applied?[ ]
str[6] = „w‟
print(str)
Tuple Definition:
1. A tuple is a sequence of immutable objects. That is, you can change the value of
one or more items in a list; you cannot change the values in a tuple.
2. Tuples use parenthesis to define its elements. Whereas lists use square brackets.
Creating a Tuple:
Syntax: Tup1=(val1,val2,….)
Where val (or values) can be an integer, a floating number, a character, or a string.
Examples:
output:
Output:
print(Tup2)
I B.SC CS
print(Tup3)
print(Tup4)
print(Tup5)
Output:
1,2,3,4,5
„a‟,‟b‟,‟c‟,‟d‟
„abc‟,‟def‟,‟ghi‟
1.2,2.3,3.4,4.5,5.6
1,‟abc‟,2.3,‟d‟
Output:
A bcd2 4.6
print(a,b)
Output:
10 20
I B.SC CS
Example :
1) Tup1=(1,2,3,4,5,6,7,8,9,10)
print(“Tup[3:6]=”,Tup1[3:6])
print(“Tup[:8]=”,Tup1[:4])
print(“Tup[4:]=”,Tup1[4:])
print(“Tup[:]=”,Tup1[:])
Output:
Tup[3:6]=(4,5,6)
Tup[:8]=(1,2,3,4)
Tup[4:]=5,6,7,8,9,10)
Tup[:]=(1,2,3,4,5,6,7,8,9,10)
2) Tuple =(1,2,3,4,5.5,‟str‟)
Input:
1. print tuple
2.print tuple[5]
3.print tuple[1:5]
I B.SC CS
Output:
1.1,2,3,4,5.5,‟str‟
2. ‟str‟
3.2,3,4,5.5
Updating tuples:
As we all know tuples are immutable objects so we cannot update the values but we
can just extract the values from a tuple to form another tuple.
Example:
1) Tup1=(1,2,3,4,5)
Tup2=(6,7,8,9,10)
Tup3=Tup1+Tup2
print(Tup3)
Output:
(1,2,3,4,5,6,7,8,9,10)
2) Tup1=(1,2,3,4,5)
Tup2=(„sree‟,‟vidya‟,‟ram‟)
Tup3=Tup1+Tup2
print Tup3
Output:
(1,2,3,4,5,‟sree‟,‟vidya‟,‟ram‟)
I B.SC CS
Hence there is another option to delete a single element of a tuple i.e..,you can create
a new tuple that has all elements in your tuple except the ones you don‟t want.
Example:
1) Tup1=(1,2,3,4,5)
del Tup1[3]
print Tup1
Output:
del Tup1[3]
2) however, you can always delete the entire tuple by using del statement.
Tup1=(1,2,3,4,5)
del Tup1
print Tup1
Output:
Key Note: Note that exception is raised because you are now trying to print a tuple
that has already been deleted.
Like strings and lists,you can also perform operations like concatenation,
repetition,etc. on tuples. The only difference is that a new tuple should be created
when a change is required in an existing tuple.
Length len((1,2,3,4,5,6)) 6
print(i,end=‟ „)
Tup2=(1,2,3,4,5)
print(Tup1>Tup2)
Maximum max(1,0,3,8,2,9) 9
Minimum min(1,0,3,8,2,9) 0
Ex:
Input:
Tup1= (1,2,3,4,5)
Output:
2) Concatenation:
Ex:
Input:
Tup1=(1,2,3,4)
Tup2=(5,6,7)
print tup1+tup2
Output:
(1,2,3,4,5,6,7)
3) Repetition:
Ex:
Input:
Tuple1=(„my‟)
I B.SC CS
print tuple1*3
Output:
(„my‟,‟my‟,‟my‟)
4) Membership:
Ex:
Input:
Tuple1=(1,2,3,4,6,7)
5) Iteration:
Ex:
Input:
For i in (1,2,3,4,5,6,7,8,9,10):
print (i,end=‟ „)
Output:
1,2,3,4,5,6,7,8,9,10
6) Comparison:
Ex:
Input:
Tup1 = (1,2,3,4,5)
Tup2 =(6,7,8,9,10)
print(Tup1<tup2)
Output:
I B.SC CS
True
7) Maximum:
Ex:
Input:
Max(1,2,6,5,4)
Output:
8) Minimum:
Ex:
Input:
Min(1,2,3,4,5)
Output:
9) Convert to tuple:
Ex:
Input:
Tuple(“vidya”)
Output:
(„v‟,‟i‟,‟d‟,‟y‟,‟a‟)
I B.SC CS
LISTS
The most basic data structure in Python is the sequence. Each element of a
sequence is assigned a number - its position or index. The first index is zero, the second
index is one, and so forth. There are certain things you can do with all sequence types.
These operations include indexing, slicing, adding, multiplying, and checking for
membership.
Creating a List:
Syntax:
List_variable = [val1,val2,…]
Example:
1) list_A =[1,2,3,4]
print(list_A)
Output
[1,2,3,4]
2) list_C=[„Good”,”Going”]
print(list_C)
Output
[‘Good’,’Going’]
syntax
s=list[start:stop:step]
For Example:
Example 1:
num_list=[1,2,3,4,5,6,7,8,9,10]
print(“num_list is:”,num_list)
print(“num_list[2:5]=”,num_list[2:5])
print(“num_list[::2]=”,num_list[::2])
print(“num_list[1::3]=”,num_list[1::3])
Output:
num_list[2:5]= [3,4,5]
num_list[::2]= [1,3,5,7,9]
num_list[1::3]= [2,5,8]
once created, one or more elements of a list can be easily updated by giving the
slice on the left-hand side of the assignment operator.
I B.SC CS
You can also append new values in the list and remove existing values from the
list using the append( ) method and del statement respectively.
Example:
1) num_list= [1,2,3,4,5,6,7,8,9,10]
print(“list is:”,num_list)
num_list[5]=100
num_list.append(200)
del num_list[3]
Output:
tion
print(max(num_list))
print(min(num_list))
print(“SUM=”,sum(nu
m_list))
Mutability of lists:
Example:
print(fruit)
fruit[0] = "pear"
fruit[-1] = "orange"
print(fruit)
Output:
I B.SC CS
Functional Programming:
1) map( ) Function:
The map() function applies a particular function to every element of a
list.
Syntax:
map(function,sequence)
After applying the specified function in the sequence, the map( ) function
returns the modified list.
def add_2(x):
x+=2
return x
num_list=[1,2,3,4,5,6,7]
new_list=list(map(add_2,num_list))
output:
2) reduce ( ):
I B.SC CS
The reduce( ) function with syntax as given below returns a single value
generated by calling the function on the first two items of the sequence, then
on the result and the next item and so on.
Syntax: reduce(function,sequence)
Ex: Program to calculate the sum of values in a list using the reduce( )
function.
def add(x,y):
return x+y
num_list=[1,2,3,4,5]
print(functools.reduce(add,num_list))
Output:
3) filter( ) function:
It constructs a list from those elements of the list for which a function
returns True.
Syntax:
filter(function,sequence)
As per the syntax filter( ) function returns a sequence that contains items from
the sequence for which the function is True. If sequence is a string, Unicode, or a
tuple, then the result will be the same type;
I B.SC CS
def check(x):
return 1
evens=list(filter(check,range(2,22))
print(evens)
Output:
[2,4,6,8,10,12,14,16,18,20]
programs:
Program: (val1,val2,val3)=(1,2,3)
(tup1,tup2,tup3)=(4,5,6)
(a,b,c)=(val1,val2,val3)
(val1,val2,val3)=(tup1,tup2,tup3)
(tup1,tup2,tup3)=(a,b,c)
print (val1,val2,val3)
print (tup1,tup2,tup3)
Output:
(4, 5, 6)
(1, 2, 3)
I B.SC CS
Program: tup=[5,1,40,8,6,2,1]
print(sorted(tup))
Output:
[1, 1, 2, 5, 6, 8, 40]
3. Write program that scans an email address and forms a tuple of user name and
domain name.
Program:
addr =input('Enter email address:')
(uname, domain) = addr.split('@')
print('Username:',uname)
print('domain name:',domain)
Output:
4. Write a program to print sum and average of the elements present in the list.
Program:
lst = [ ]
for n in range(num):
lst.append(numbers)
avg=sum(lst)/num
print(avg)
Output:
Enter number 1
Enter number 2
Enter number 3
Enter number 4
Enter number 5
Enter number 6
Enter number 7
Sum of elements in given list is : 28
5. Write a program that forms a list of first character of every word present in another
list.
Program:
b= [ ]
l= ["gudlavalleru","engineering","college"]
for item in l:
b.append(item[0])
print(b)
Output: [„g‟,‟e‟,‟c‟]
I B.SC CS
Assignment-Cum-Tutorial Questions
A) Objective Questions
print('a' in my_list)
print('c' not in my_list)
a) True b)True c)False d) False
False True True True
True False False True
13. What is the output of the program [ ]
my_tuple = ('p','e','r','m','i','t')
print(my_tuple[-1])
print(my_tuple[-6])
a) t b) t c) p d) t
p t p NULL
14. What is the output of the program [ ]
my_tuple = ('p','r','o','g','r','a','m','i','z')
print(my_tuple[1:4])
print(my_tuple[:-7])
print(my_tuple[7:])
print(my_tuple[:])
a) ('r', 'o', 'g') b) („p‟,‟r‟,‟o‟)
('p', 'r') („r‟,‟p‟)
('i', 'z') („z‟,‟‟i‟)
('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') ('p','r','o','g','r','a','m','i','z')
c)('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') d) ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
('r', 'o', 'g') ('i', 'z')
('p', 'r') ('p', 'r')
('i', 'z') ('r', 'o', 'g')
15. What is the output of the program [ ]
print((1, 2, 3) + (4, 5, 6))
print(("Repeat",) * 3)
a) (1, 2, 3, 4, 5, 6) b) („Repeat‟,Repeat‟,‟Repeat‟)
('Repeat', 'Repeat', 'Repeat') (1,2,3,4,5,6)
c)(1,2,3)+(4,5,6) d) (“Repeat”,)*3
I B.SC CS
“Repeat” (1,2,3)+(4,5,6)
16. What is the output of the program [ ]
my_tuple = ('a','p','p','l','e',)
print(my_tuple.count('p'))
print(my_tuple.index('l'))
a) 2 b) 2 c) 3 d) 3
3 2 2 3
17. What is the output of the program [ ]
pow2 = [2 ** x for x in range(10)]
print(pow2)
a) [1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
b) [512,256,128,64,32,16,8,4,2,1]
c) [1,2,3,4,5,6,7,8,9,10]
d) [1,3,5,7,9]
18. What is the output of the program [ ]
my_list = ['p','r','o','b','e']
print(my_list[-1])
print(my_list[-5])
a) e b) e c) p d) e
NULL p e e
19. What is the output of the program [ ]
odd=[1,3,5]
Print(odd+[9,7,5])
Print([“re”]*3)
a) [1,3,5,9,7,5] b) [1,3,5,9,7]
[“re”,”re”,”re”] [“re”,”re”,”re”]
c) (odd+[9,7,5]) d) [1,3,5]
([“re”]*3) ([“re”]*3)
20. What is the output of the program [ ]
odd = [1, 9]
odd.insert(1,3)
print(odd)
odd[2:2] = [5, 7]
I B.SC CS
print(odd)
a) [1, 3, 9] b) [1,3,5,7,9] c) [1,9,3] d) [1,9,1,3]
[1, 3, 5, 7, 9] [1,3,5,7,9] [1,9,3,5,7]
[1,9,1,3,5,7]
B) Subjective Questions
1. What is negative index in list and tuple? [ April-2018]
2. What is tuple? What are the different operations performed on tuple? Explain
with an example? [ NOV-2018]
3. Illustrate the ways of creating the tuple and the tuple assignment with suitable
programs. [ April-2018]
4. Summarize basic List operations with examples. [ NOV-2018]
5. How can you access and update values in a list?
6. Explain mutability of lists?
7. Write a set of commands that covers at least five tuple functions and five list
functions?
8. Write a program to find sum of all even numbers in a list?
9. Write a program that reverses a list using a loop?
10. Write a program to find whether a particular element is present in the list?
11. Write a program that finds the sum of all the numbers in a list using a while
loop?
12. Write a program that forms a List of first character of every word present in
another List. [ NOV-2018]
13. Write a program that creates a list[„a‟,‟b‟,‟c‟], then create a tuple from that list.
14. Write a program that converts a list of characters into their corresponding
ASCII values using map( ) function.
15. Write a program using filter function to list cubes of numbers from 1-10.
16. Write a code snippet in Python to Access Elements of a Tuple. [ NOV-2018]
17. Write code snippets in Python for modifying and deleting Elements of Tuple. [
NOV-2018]
18. “Tuples are immutable”. Explain with examples. [ April-2018]
I B.SC CS
UNIT-IV
Dictionaries
Dictionary:
o It is a data structure in which we store values as a pair of key and value.
o Each key is separated from its value by a colon (:), and consecutive items
are separated by commas.
o The entire items in a dictionary are enclosed in curly brackets ({}).
Syntax:
Accessing Values:
In Dictionary, through key accessing values,
Example:
d={'Name': 'Arav', 'Course': 'B.tech', 'roll_no': '18/001'}
print('d[Name]:',d['Name'])
print('d[course]:',d['Course'])
print('d[roll_no]:',d['roll_no'])
output:
d[Name]: Arav
d[course]: B.tech
d[roll_no]: 18/001
Adding and Modifying an Item in a Dictionary:
To add a new entry or a key-value pair in a dictionary, just specify the key-
value pair as you had done for the existing pairs.
Syntax: dictionary_ variable[key ]= val
Example:
1. Program to add a new item in the dictionary
d={'Name': 'Arav', 'Course': 'B.tech', 'roll_no': '18/001'}
d['marks']=99 #new entry
print('d[Name]:',d['Name'])
print('d[course]:',d['Course'])
print('d[roll_no]:',d['roll_no'])
print('d[marks]:',d['marks'])
Output:
d[Name]: Arav
d[course]: B.tech
d[roll_no]: 18/001
d[marks]: 99
I B.SC CS
Modifying an Entry:
To modify an entry, just overwrite the existing value as shown in the following
example:
1. program to modify an item in the dictionary
d={'Name': 'Arav', 'Course': 'B.tech', 'roll_no': '18/001'}
d['marks']=99 #new entry
print('d[Name]:',d['Name'])
print('d[course]:',d['Course'])
print('d[roll_no]:',d['roll_no'])
print('d[marks]:',d['marks'])
d[‘Course’]=’BCA’ #Updated entry
print('d[course]:',d['Course'])
Output:
d[Name]: Arav
d[course]: B.tech
d[roll_no]: 18/001
d[marks]: 99
d[course]: BCA
Deleting Items :
You can delete one or more items using the del keyword.
To delete or remove all the items in just one statement, use the clear ()
function.
Finally, to remove an entire dictionary from the memory, we can gain use
the del statement as del Dict_name.
The syntax to use the del statement can be given as,
del dictionary_variable[key]
Example:
1. Program to demonstrate the use of del statement and clear() function
I B.SC CS
Nested Dictionaries :
Dictionary with in another dictionary is called Nested dictionary.
I B.SC CS
Example:
students={'cse1':{'c':90,'ds':89,'python':98},
'cse2':{'c':90,'ds':99,'python':98},
'cse3':{'c':99,'ds':99,'python':98}}
for key,value in students.items():
print(key,value)
Output:
cse3 {'python': 98, 'c': 99, 'ds': 99}
cse2 {'python': 98, 'c': 90, 'ds': 99}
cse1 {'python': 98, 'c': 90, 'ds': 89}
Difference between a List and a Dictionary:
First, a list is an ordered set of items. But, a dictionary is a data structure that
is used for matching one item (key) with another (value).
Second, in lists, you can use indexing to access a particular item. But, these
indexes should be a number. In dictionaries, you can use any type (immutable)
of value as an index. For example, when we write Dict['Name'], Name acts as
an index but it is not a number but a string.
Third, lists are used to look up a value whereas a dictionary is used to take
one value and look up another value. For this reason, dictionary is also known
as a lookup table.
I B.SC CS
Fourth, the key-value pair may not be displayed in the order in which it was
specified while defining the dictionary. This is because Python uses complex
algorithms (called hashing) to provide fast access to the items stored in the
dictionary. This also makes dictionary preferable to use over a list of tuples.
String Formatting with Dictionaries:
Python also allows you to use string formatting feature with dictionaries. So you can
use %s, %d, %f, etc. to represent string, integer, floating point number, or any other
data.
Example:
Program that uses string formatting feature to print the key-value pairs stored in the
dictionary.
d={"cse":98,"ece":99,"eee":90}
for key,value in d.items():
print("%s branch:%d"%(key,value))
output:
ece branch:99
cse branch:98
eee branch:90
Lab Programs:
5a.Write a program to count the number of characters in the string and store
them in dictionary
n=int(input("Enter the number"))
i=0;
dict1={}
while(i<n):
str1=input("Enter the string")
length=len(str1)
dict1[str1]=length
i=i+1;
print('Entered dictionary elements are')
print(dict1)
I B.SC CS
Assignment-Cum-Tutorial Questions
I) Objective Questions
1) Which of these about a dictionary is false? [ ]
a) The values of a dictionary can be accessed using keys
b) The keys of a dictionary can be accessed using values
c) Dictionaries aren‟t ordered
d) Dictionaries are mutable
2) Which of the following statements create a dictionary? [ ]
a) d = {}
b) d = {“john”:40, “peter”:45}
c) d = {40:”john”, 45:”peter”}
d) All of the mentioned
6) Suppose d = {“john”:40, “peter”:45}, to delete the entry for “john” what command do
we use [ ]
a) d.delete(“john”:40)
b) d.delete(“john”)
c) del d[“john”].
d) del d(“john”:40)
a) Since “susan” is not a value in the dictionary, Python raises a KeyError exception
b) It is executed fine and no exception is raised, and it returns None
c) Since “susan” is not a key in the dictionary, Python raises a KeyError exception
d) Since “susan” is not a key in the set, Python raises a syntax error
8) What gets printed? [ ]
foo = {1:'1', 2:'2', 3:'3'}
del foo[1]
foo[1] = '10'
del foo[2]
print(len(foo))
a) 1 b) 2 c) 3 d) 4 e) An Exception is thrown
9) If Dict = {1:2, 3:4, 4:11, 5:6, 7:8}, then print(Dict(Dict[3])) will print ? [ ]
a) 2 b) 8 c) 11 d) 6
10) Which Data type does not support indexing? [ ]
a) List b) Tuple c) Dictionary d) Set
11) Which function is used to delete all entries in the dictionary _?
12) Which methods will return all the keys and Values in a Dictionary
?
13) What are the Data types supported for Key in Dictionary Data type ?
I B.SC CS
9) Write a python program to check if all dictionaries in a list are empty or not?
10) Write a Python program to combine two dictionary adding values for
commonkeys.
d1 = {'a': 100, 'b': 200, 'c':300}
d2 = {'a': 300, 'b': 200,‟d‟:400}
Sample output: {'a': 400, 'b': 400,‟d‟: 400, 'c': 300}
11) Write a Python program to create and display all combinations of
letters, selecting each letter from a different key in a dictionary
Sample data: {'1':['a','b'], '2':['c','d']}
Expected Output:
ac
ad
bc
bd
12) Write a Python program to get the top three items in a shop.
Sample data: {'item1': 45.50, 'item2':35, 'item3': 41.30, 'item4':55, 'item5': 24}
Expected Output:
item4: 55
item1: 45.5
item3: 41.3
I B.SC CS
UNIT-V
File Handling
File types, File path, File operations-open, close, read, write, Types of arguments.
1. Introduction to Files:
When a program is being executed, its data is stored in RAM. Though RAM can
be accessed faster by the CPU,it is also volatile, which means when the
program ends, or the computer shuts down, all the data is lost. If you want to
use the data in future,then you need to store this data on a permanent or non-
volatile storage media such as hard disk, USB drive and DVD e.t.c.,
A file is a collection of data stored on a secondary storage device like hard disk.
A file is basically used because real-life applications involve large amounts of
data and in such situations the console oriented I/O operations pose two
majorproblems:
First, it becomes cumbersome and time consuming to handle huge amount of
data through terminals.
Second, when doing I/O using terminal, the entire data is lost when either the
program is terminated or computer is turned off. Therefore, it becomes
necessary to store data on a permanent storage (the disks) and read whenever
necessary, without destroying the data.
2. File Types
Like C and C++,Python also supports two types of files
1. ASCII Text Files
2.Binary Files
2.1ASCII Text Files
A text file is a stream of characters that can be sequentially processed by a
computer in forward direction. For this reason a text file is usually opened for
only one kind of operation (reading, writing, or appending) at any given time.
Because text files can process characters, they can only read or write data one
character at a time. In Python, a text stream is treated as a special kind of file.
Depending on the requirements of the operating system and on the operation
that has to be performed (read/write operation) on the file, the newline
characters may be converted to or from carriage-return/linefeed combinations.
I B.SC CS
Besides this, other character conversions may also be done to satisfy the
storage requirements of the operating system. However, these conversions
occur transparently to process a text file. In a text file, each line contains zero
or more characters and ends with one or more characters.
Another important thing is that when a text file is used, there are actually two
representations of data- internal or external. For example, an integer value will
be represented as a number that occupies 2 or 4 bytes of memory internally
but externally the integer value will be represented as a string of characters
representing its decimal or hexadecimal value.
Note: In a text file, each line of data ends with a newline character. Each file ends with
a special character called end-of-file (EOF) Marker.
Binary Files
A binary file is a file which may contain any type of data, encoded in binary
form for computer storage and processing purposes. It includes files such as
word processing documents, PDFs, images, spreadsheets, videos, zip files and
other executable programs.
Like a text file, a binary file is a collection of bytes. A binary file is also referred
to as a character stream with following two essential differences.
A binary file does not require any special processing of the data and each byte
of data is transferred to or from the disk unprocessed.
Python places no constructs on the file, and it may be read from, or written to,
in any manner the programmer wants.
While text files can be processed sequentially, binary files, on the other
hand, can be either processed sequentially or randomly depending on the
needs of the application.
Note:Binary files store data in the internal representation format.Therefore, an integer
value will be stored in binary form as 2 byte value.The same format is used to store
data in memory as well as in files.Like Text files,Binary files also ends with an EOF
Marker
I B.SC CS
3. File Path:
Files that we use are stored on a storage medium like the hard disk in such a
way that they can be easily retrieved as and when required.
Every file is identified by its path that begins from the root node or the root
folder. In Windows, C:\ (also known as C drive) is the root folder but you can
also have a path that starts from other drives like D:\, E:\, etc. The file path is
also known as pathname.
In order to access a file on a particular disk we have two paths.
1. Absolute Path
2. Relative Path
While an absolute path always contains the root and the complete directory
list to specify the exact location the file.
Example:To access BTech_CS.docx,The absolute path is
C:\Students\Under Graduate\BTech_CS.docx
Relative path needs to be combined with another path in order to access a
file. It starts with respect to the current working directory and therefore lacks
the leading slashes.
Example: Suppose you are working on current directory Under Graduate in order to
access BTech_CS.docx,The Relative path is
Under Graduate\BTech_CS.docx
I B.SC CS
4. File Operations
When we want to read from or write to a file we need to open it first. When we are
done, it needs to be closed, so that resources that are tied with the file are freed.
Python has many in-built functions and methods to manipulate files.These
Hence, in Python, a file operation takes place in the following order.
1. Open a file
2. Read or write (perform operation)
3. Close the file
Opening A File
Before reading from or writing to a file, you must first open it using Python‟s
built-in open() function. This function creates a file object, which will be used
to invoke methods associated with it.
The Syntax of open() is:
fileObj = open(file_name [, access_mode])
Where file_name is a string value that specifies name of the file that you want to
access. access_mode indicates the mode in which the file has to be opened, i.e., read,
write, append, etc.
Example:Write a Program to print the details of file object
Note:Access mode is an optional parameter and the default file access mode is
read(r).
Access modes
Python supports the following access modes for opening a file those are
I B.SC CS
Closing A File
The close() method is used to close the file object. Once a file object is closed,
you cannot further read from or write into the file associated with the file
object.
While closing the file object the close() flushes any unwritten information.
Although, Python automatically closes a file when the reference object of a file
is reassigned to another file, but as a good programming habit you should
always explicitly use the close() method to close a file.
The syntax of close() is
fileObj.close()
The close() method frees up any system resources such as file descriptors, file
locks, etc. that are associated with the file.
Once the file is closed using the close() method, any attempt to use the file
object will result in an error.
Example2: Write a Python program to assess if a file is closed or not..
file = open('File1.txt','wb')
print('Name of the file :',file.name)
print('File is closed:',file.closed)
print('File is now being closed')
file.close()
print('File is closed',file.closed)
I B.SC CS
print(file.read())
Output:
Name of the file : File1.txt
File is closed: False
File is now being closed
File is closed True
Traceback (most recent call last):
File "D:/Python/sample.py", line 7, in <module>
print(file.read())
io.UnsupportedOperation: read
Writing A File
The write() method is used to write a string to an already opened file. Of course
this string may include numbers, special characters or other symbols.
While writing data to a file, you must remember that the write() method does
not add a newline character ('\n') to the end of the string.
The syntax of write() method is:
fileObj.write(string)
Example:Program that writes a message in the file,data.txt
file=open('data.txt','w')
file.write('hello cse we are learning python programming')
file.close() data.txt
print('file writing successful')
hello cse we are learning python programming
Output:
file writing successful
writeline() method:
The writelines() method is used to write a list of strings.
Example:Program to write to afile using the writelines() method
file=open('data.txt','w')
lines=['hello','cse','hope to enjoy','learning','python programming']
file.writelines(lines) data.txt
file.close() hellocsehope to enjoylearningpython programming
I B.SC CS
Note: When you open a file for reading, or writing, the file is searched in the current
I B.SC CS
directory. If the file exists somewhere else then you need to specify the path of the
file.
Splitting Words:
Python allows you to read line(s) from a file and splits the line (treated as a
string) based on a character. By default, this character is space but you can
even specify any other character to split words in the string.
Example: Program to split the line into series of words and use space to perform the
split operation
with open('data.txt','r') as file:
data.txt
line=file.readline()
hellocsehope to enjoylearningpython programming
words=line.split()
print(words)
Output:
File Positions:
With every file, the file management system associates a pointer often known
as file pointer that facilitates the movement across the file for reading and/ or
writing data.
The file pointer specifies a location from where the current read or write
operation is initiated. Once the read/write operation is completed, the pointer
is automatically updated.
Python has various methods that tells or sets the position of the file pointer.
I B.SC CS
For example, the tell() method tells the current position within the file at which
the next read or write operation will occur. It is specified as number of bytes
from the beginning of the file.
When you just open a file for reading, the file pointer is positioned at location
0, which is the beginning of the file.
The syntax for seek() function is
seek(offset[, from])
The offset argument indicates the number of bytes to be moved and the from
argument specifies the reference position from where the bytes are to be
moved.
Example: Program that tells and sets the position of file pointer
File1.txt
Hello All,
Hope you are enjoying learning python
The rename() Method: The rename() method takes two arguments, the current
filename and the new filename.
Its syntax is: os.rename(old_file_name, new_file_name)
The remove() Method: This method can be used to delete file(s). The method
takes a filename (name of the file to be deleted) as an argument and deletes
that file.
Its syntax is: os.remove(file_name)
Example: Program to rename file ‘File1.txt’ to ‘student.txt’
5. Types of Arguments
Command line Arguments:
The Python sys module provides access to any command-line arguments via
the sys.argv. This serves two purposes −
sys.argv is the list of command-line arguments.
len(sys.argv) is the number of command-line arguments.
Here sys.argv[0] is the program ie. script name.
sample11.py
#!/usr/bin/python
import sys
print ('Number of arguments:', len(sys.argv), 'arguments.')
print ('Argument List:', str(sys.argv))
Output:
Example2: Write a Python program to copy the content of one file to another
using command line arguments.
sample12.py input.txt
Hello hi
#!/usr/bin/python How are you
import sys
print ('Number of arguments:', len(sys.argv), 'arguments.')
with open(str(sys.argv[1])) as f:
with open((sys.argv[2]), "w") as f1: output.txt
Hello hi
for line in f:
How are you
f1.write(line)
print('File Copied Success')
print (line[::-1])
Output:
ih olleH
uoy era woH
I B.SC CS
data.txt
out.txt
Assignment-Cum-Tutorial Questions
A. Objective Questions
1. Identify The right way to close a file [ ]
a)File.close() b)close(file) c)close(“file”) d)File.closed
2. is an example of volatile memory
3. A file is stored in memory [ ]
a)primary b)secondary c)cache d)volatile
4. What will happen when a file is opened in write mode and then immediately
closed. [ ]
a) Filecontentsaredeleted
b) Nothing Happens
c) A Blank Line is written to the file
d)an error occurs
5. The default access mode of the file is
6. If a file opened in „w‟ mode does not exist, then [ ]
a) nothing will happen
b) File will be created
c) Data will be written to a afile that has a name similar to the specified name
d) Error will be generated
7. Identify the delimiter in the Solaris file system [ ]
a)/ b)\ c): d)|
8. By default a new file is created in which directory [ ]
a)root b)current working c)Python directory d)D Drive
9. which method is used to read a single line from the file [ ]
a)read() b)readline() c)readlines() d)reads()
10. When you open a file for appending that does not exist, then a new file is
created [True/False]
11. Identify the correct way to write “Welcome to Python” in a file [ ]
a)write(file,”Welcome to python”)
b)write(“Welcome to Python”,file)
c)file.write(“Welcome to Python”)
I B.SC CS
d)”Welcome to Python”.write(file)
12. If the file.txt has 10 lines written in it,what will the result? [ ]
len(open(„file.txt‟).readlines())
a)1 b)0 c)10 d)2
13. Identify the sub folder in the path [ ]
C:\Students\UnderGraduates\B.Tech_CS.docx
a)C: b) Students c)B.Tech_CS.docx d) UnderGraduates
14. Which method returns a string that includes everything specified in the
path? [ ]
a)os.path.dirname(path)
b)os.path.basename(path)
c)os.path.relpath()
d)os.path.abs()
15. if count is missing or has a negative value in the read() method then, no
contents are read from the file. [True/False]
16. os.path.abs() method accepts a file path as an argument and returns True if
the path is an absolute path and False otherwise
[True/False]
17. How many characters would be printed by this code (One character is one
byte)
file=open(“file.txt”,”r”)
for i in range(100):
print(file.read(10))
file.close()
18. Fill in the blank to open a file,read its content and prints its length
file= (“file.txt”,”r”)
text=file. ()
print( (text))
file.close()
19. Predict the output of the following program [ ]f
= None
I B.SC CS
9. Write a Python program that reads data from a file and Calculates the
percentage of vowels and consonants in the file
10. Write a Python program that copies one file to another in such away that all
comment lines are skipped and not copied in the destination file
11. Write a python program to find no of lines, words and characters in a given
text file
12. Write a Python program to combine each line from first file with the
corresponding line in second file.
13. Write a program that accepts file name as an input from the user. Open the
file and count number of times a character appears in the file.
14. Write a program that tells and sets the position of the file pointer.
-----------OOO-----------