Python Complete Notes
Python Complete Notes
Python tutorial provides basic and advanced concepts of Python. Our Python tutorial is
designed for beginners and professionals.
Python is an interpreted scripting language also. Guido Van Rossum is known as the
founder of Python programming.
Our Python tutorial includes all topics of Python Programming such as installation,
control statements, Strings, Lists, Tuples, Dictionary, Modules, Exceptions, Date and
Time, File I/O, Programs, etc. There are also given Python interview questions to help
you better understand Python Programming.
Python Introduction
Python is a general purpose, dynamic, high level, and interpreted programming
language. It supports Object Oriented programming approach to develop applications. It
is simple and easy to learn and provides lots of high-level data structures.
Python is easy to learn yet powerful and versatile scripting language, which makes it
attractive for Application Development.
Python's syntax and dynamic typing with its interpreted nature make it an ideal
language for scripting and rapid application development.
Python is not intended to work in a particular area, such as web programming. That is
why it is known as multipurpose programming language because it can be used with
web, enterprise, 3D CAD, etc.
We don't need to use data types to declare variable because it is dynamically typed so
we can write a=10 to assign an integer value in an integer variable.
Python makes the development and debugging fast because there is no compilation step
included in Python development, and edit-test-debug cycle is very fast.
PYTHON: 1
Python 2 vs. Python 3
In most of the programming languages, whenever a new version releases, it supports
the features and syntax of the existing version of the language, therefore, it is easier for
the projects to switch in the newer version. However, in the case of Python, the two
versions Python 2 and Python 3 are very much different from each other.
1. Python 2 uses print as a statement and used as print "something" to print some
string on the console. On the other hand, Python 3 uses print as a function and
used as print("something") to print something on the console.
2. Python 2 uses the function raw_input() to accept the user's input. It returns the
string representing the value, which is typed by the user. To convert it into the
integer, we need to use the int() function in Python. On the other hand, Python 3
uses input() function which automatically interpreted the type of input entered by
the user. However, we can cast this value to any type by using primitive functions
(int(), str(), etc.).
3. In Python 2, the implicit string type is ASCII, whereas, in Python 3, the implicit
string type is Unicode.
4. Python 3 doesn't contain the xrange() function of Python 2. The xrange() is the
variant of range() function which returns a xrange object that works similar to
Java iterator. The range() returns a list for example the function range(0,3)
contains 0, 1, 2.
5. There is also a small change made in Exception handling in Python 3. It defines a
keyword as which is necessary to be used. We will discuss it in Exception
handling section of Python programming tutorial.
PYTHON: 2
Python Features
Python provides lots of features that are listed below.
Python is easy to learn and use. It is developer-friendly and high level programming
language.
2) Expressive Language
Python language is more expressive means that it is more understandable and readable.
3) Interpreted Language
Python is an interpreted language i.e. interpreter executes the code line by line at a
time. This makes debugging easy and thus suitable for beginners.
4) Cross-platform Language
Python can run equally on different platforms such as Windows, Linux, Unix and
Macintosh etc. So, we can say that Python is a portable language.
6) Object-Oriented Language
Python supports object oriented language and concepts of classes and objects come into
existence.
7) Extensible
It implies that other languages such as C/C++ can be used to compile the code and thus
it can be used further in our python code.
PYTHON: 3
8) Large Standard Library
Python has a large and broad library and prvides rich set of module and functions for
rapid application development.
10) Integrated
PYTHON: 4
Python Version List
Python programming language is being updated regularly with new features and
supports. There are lots of updations in python versions, started from 1994 to current
release. A list of python versions with its released date is given below.
PYTHON: 5
Python Applications
Python is known for its general purpose nature that makes it applicable in almost each
domain of software development. Python as a whole can be used in any sphere of
development.
1) Web Applications
We can use Python to develop web applications. It provides libraries to handle internet
protocols such as HTML and XML, JSON, Email processing, request, beautifulSoup,
Feedparser etc. It also provides Frameworks such as Django, Pyramid, Flask etc to
design and delelop web based applications. Some important developments are:
PythonWikiEngines, Pocoo, PythonBlogSoftware etc.
Python provides Tk GUI library to develop user interface in python based application.
Some other useful toolkits wxWidgets, Kivy, pyqt that are useable on several platforms.
The Kivy is popular for writing multitouch applications.
3) Software Development
Python is helpful for software development process. It works as a support language and
can be used for build control and management, testing etc.
Python is popular and widely used in scientific and numeric computing. Some useful
library and package are SciPy, Pandas, IPython etc. SciPy is group of packages of
engineering, science and mathematics.
5) Business Applications
Python is used to build Bussiness applications like ERP and e-commerce systems. Tryton
is a high level application platform.
We can use Python to develop console based applications. For example: IPython.
Python is awesome to perform multiple tasks and can be used to develop multimedia
applications. Some of real applications are: TimPlayer, cplay etc.
PYTHON: 6
8) 3D CAD Applications
To create CAD application Fandango is a real application which provides full features of
CAD.
9) Enterprise Applications
Python can be used to create applications which can be used within an Enterprise or an
Organization. Some real time applications are: OpenErp, Tryton, Picalo etc.
Using Python several application can be developed for image. Applications developed
are: VPython, Gogh, imgSeek etc.
There are several such applications which can be developed using Python
PYTHON: 7
How to Install Python (Environment Set-up)
In this section of the tutorial, we will discuss the installation of python on various
operating systems.
Installation on Windows
Visit the link https://www.python.org/downloads/ to download the latest release of
Python. In this process, we will install Python 3.6.7 on our Windows operating
system.
Double-click the executable file which is downloaded; the following window will open.
Select Customize installation and proceed.
The following window shows all the optional features. All the features need to be
installed and are checked by default; we need to click next to continue.
PYTHON: 8
The following window shows a list of advanced options. Check all the options which
you want to install and click next. Here, we must notice that the first check-box
(install for all users) must be checked.
PYTHON: 9
Now, try to run python on the command prompt. Type the command python in case
of python2 or python3 in case of python3. It will show an error as given in the below
image. It is because we haven't set the path.
To set the path of python, we need to the right click on "my computer" and go to
Properties → Advanced → Environment Variables.
PYTHON: 10
Add the new path variable in the user variable section.
Type PATH as the variable name and set the path to the installation directory of the
python shown in the below image.
Now, the path is set, we are ready to run python on our local system. Restart CMD,
and type python again. It will open the python interpreter shell where we can
execute the python statements.
PYTHON: 11
Installation on Mac
To install python3 on MacOS, visit the link https://www.javatpoint.com/how-to-
install-python-on-mac and follow the instructions given in the tutorial.
Installation on CentOS
To install Python3 on CentOS, visit the link https://www.javatpoint.com/how-to-
install-python-on-centos and follow the instructions given in the tutorial.
Installation on Ubuntu
To install Python3 on Ubuntu, visit the link https://www.javatpoint.com/how-to-install-
python-in-ubuntu and follow the instructions given in the tutorial.
PYTHON: 12
Python Variables
Variable is a name which is used to refer memory location. Variable also known as
identifier and used to hold value.
In Python, we don't need to specify the type of variable because Python is a type infer
language and smart enough to get variable type.
Variable names can be a group of both letters and digits, but they have to begin with a
letter or an underscore.
It is recomended to use lowercase letters for variable name. Rahul and rahul both are
two different variables.
Identifier Naming
Variables are the example of identifiers. An Identifier is used to identify the literals used
in the program. The rules to name an identifier are given below.
We don't need to declare explicitly variable in Python. When we assign any value to the
variable that variable is declared automatically.
Eg:
PYTHON: 13
Python Data Types
Variables can hold values of different data types. Python is a dynamically typed language
hence we need not define the type of the variable while declaring it. The interpreter
implicitly binds the value with its type.
Python enables us to check the type of the variable used in the program. Python
provides us the type() function which returns the type of the variable passed.
Consider the following example to define the values of different data types and checking
its type.
1. A=10
2. b="Hi Python"
3. c = 10.5
4. print(type(a));
5. print(type(b));
6. print(type(c));
Output:
<type 'int'>
<type 'str'>
<type 'float'>
PYTHON: 14
Standard data types
A variable can hold different types of values. For example, a person's name must be
stored as a string whereas its id must be stored as an integer.
Python provides various standard data types that define the storage method on each of
them. The data types defined in Python are given below.
1. Numbers
2. String
3. List
4. Tuple
5. Dictionary
In this section of the tutorial, we will give a brief introduction of the above data types.
We will discuss each one of them in detail later in this tutorial.
Numbers
Number stores numeric values. Python creates Number objects when a number is
assigned to a variable. For example;
Python allows us to use a lower-case L to be used with long integers. However, we must
always use an upper-case L to avoid confusion.
A complex number contains an ordered pair, i.e., x + iy where x and y denote the real
and imaginary parts respectively).
String
The string can be defined as the sequence of characters represented in the quotation
marks. In python, we can use single, double, or triple quotes to define a string.
PYTHON: 15
String handling in python is a straightforward task since there are various inbuilt
functions and operators provided.
In the case of string handling, the operator + is used to concatenate two strings as the
operation "hello"+" python" returns "hello python".
The operator * is known as repetition operator as the operation "Python " *2 returns
"Python Python ". The following example illustrates the string handling in python.
Output:
he
o
hello javatpointhello javatpoint
hello javatpoint how are you
List
Lists are similar to arrays in C. However; the list can contain data of different types. The
items stored in the list are separated with a comma (,) and enclosed within square
brackets [].
We can use slice [:] operators to access the data of the list. The concatenation operator
(+) and repetition operator (*) works with the list in the same way as they were working
with the strings.
Output:
[2]
[1, 'hi']
[1, 'hi', 'python', 2]
[1, 'hi', 'python', 2, 1, 'hi', 'python', 2]
[1, 'hi', 'python', 2, 1, 'hi', 'python', 2, 1, 'hi', 'python', 2]
PYTHON: 16
Tuple
A tuple is similar to the list in many ways. Like lists, tuples also contain the collection of
the items of different data types. The items of the tuple are separated with a comma (,)
and enclosed in parentheses ().
A tuple is a read-only data structure as we can't modify the size and value of the items
of a tuple.
1. t = ("hi", "python", 2)
2. print (t[1:]);
3. print (t[0:1]);
4. print (t);
5. print (t + t);
6. print (t * 3);
7. print (type(t))
8. t[2] = "hi";
Output:
('python', 2)
('hi',)
('hi', 'python', 2)
('hi', 'python', 2, 'hi', 'python', 2)
('hi', 'python', 2, 'hi', 'python', 2, 'hi', 'python', 2)
<type 'tuple'>
Traceback (most recent call last):
File "main.py", line 8, in <module>
t[2] = "hi";
TypeError: 'tuple' object does not support item assignment
PYTHON: 17
Dictionary
Dictionary is an ordered set of a key-value pair of items. It is like an associative array or
a hash table where each key stores a specific value. Key can hold any primitive data
type whereas value is an arbitrary Python object.
The items in the dictionary are separated with the comma and enclosed in the curly
braces {}.
Output:
Python Keywords
Python Keywords are special reserved words which convey a special meaning to the
compiler/interpreter. Each keyword have a special meaning and a specific operation.
These keywords can't be used as variable. Following is the List of Python Keywords.
PYTHON: 18
Python Literals
Literals can be defined as a data that is given in a variable or constant.
I. String literals:
String literals can be formed by enclosing a text in the quotes. We can use both single as
well as double quotes for a String.
Eg:
"Aman" , '12345'
Types of Strings:
a).Single line String- Strings that are terminated within a single line are known as Single
line Strings.
Eg:
1. >>> text1='hello'
b).Multi line String- A piece of text that is spread along multiple lines is known as
Multiple line String.
Eg:
1. >>> text1='hello\
2. user'
3. >>> text1
4. 'hellouser'
5. >>>
Eg:
1. >>> str2='''''welcome
2. to
3. SSSIT'''
4. >>> print str2
5. welcome
PYTHON: 19
6. to
7. SSSIT
8. >>>
II.Numeric literals:
Numeric Literals are immutable. Numeric literals can belong to following four different
numerical types.
A Boolean literal can have any of the two values: True or False.
None is used to specify to that field that is not created. It is also used for end of lists in
Python.
Eg:
1. >>> val1=10
2. >>> val2=None
3. >>> val1
4. 10
5. >>> val2
6. >>> print val2
7. None
8. >>>
PYTHON: 20
V.Literal Collections.
List:
o List contain items of different data types. Lists are mutable i.e., modifiable.
o The values stored in List are separated by commas(,) and enclosed within a
square brackets([]). We can store different type of data in a List.
o Value stored in a List can be retrieved using the slice operator([] and [:]).
o The plus sign (+) is the list concatenation and asterisk(*) is the repetition
operator.
Eg:
1. >>> list=['aman',678,20.4,'saurav']
2. >>> list1=[456,'rahul']
3. >>> list
4. ['aman', 678, 20.4, 'saurav']
5. >>> list[1:3]
6. [678, 20.4]
7. >>> list+list1
8. ['aman', 678, 20.4, 'saurav', 456, 'rahul']
9. >>> list1*2
10. [456, 'rahul', 456, 'rahul']
11. >>>
PYTHON: 21
Python Operators
The operator can be defined as a symbol which is responsible for a particular operation
between two operands. Operators are the pillars of a program on which the logic is built
in a particular programming language. Python provides a variety of operators described
as follows.
o Arithmetic operators
o Comparison operators
o Assignment Operators
o Logical Operators
o Bitwise Operators
o Membership Operators
o Identity Operators
Arithmetic operators
Arithmetic operators are used to perform arithmetic operations between two operands. It
includes +(addition), - (subtraction), *(multiplication), /(divide), %(reminder), //(floor
division), and exponent (**).
Operator Description
/ (divide) It returns the quotient after dividing the first operand by the
second operand. For example, if a = 20, b = 10 => a/b = 2
% (reminder) It returns the reminder after dividing the first operand by the
second operand. For example, if a = 20, b = 10 => a%b = 0
PYTHON: 22
** (Exponent) It is an exponent operator represented as it calculates the first
operand power to second operand.
// (Floor It gives the floor value of the quotient produced by dividing the
division) two operands.
Comparison operator
Comparison operators are used to comparing the value of the two operands and returns
boolean true or false accordingly. The comparison operators are described in the
following table.
Operator Description
== If the value of two operands is equal, then the condition becomes true.
!= If the value of two operands is not equal then the condition becomes
true.
<= If the first operand is less than or equal to the second operand, then the
condition becomes true.
>= If the first operand is greater than or equal to the second operand, then
the condition becomes true.
<> If the value of two operands is not equal, then the condition becomes
true.
> If the first operand is greater than the second operand, then the
condition becomes true.
< If the first operand is less than the second operand, then the condition
becomes true.
PYTHON: 23
Python assignment operators
The assignment operators are used to assign the value of the right expression to the left
operand. The assignment operators are described in the following table.
Operator Description
= It assigns the the value of the right expression to the left operand.
+= It increases the value of the left operand by the value of the right
operand and assign the modified value back to left operand. For
example, if a = 10, b = 20 => a+ = b will be equal to a = a+ b and
therefore, a = 30.
-= It decreases the value of the left operand by the value of the right
operand and assign the modified value back to left operand. For
example, if a = 20, b = 10 => a- = b will be equal to a = a- b and
therefore, a = 10.
*= It multiplies the value of the left operand by the value of the right
operand and assign the modified value back to left operand. For
example, if a = 10, b = 20 => a* = b will be equal to a = a* b and
therefore, a = 200.
%= It divides the value of the left operand by the value of the right operand
and assign the reminder back to left operand. For example, if a = 20, b
= 10 => a % = b will be equal to a = a % b and therefore, a = 0.
**= a**=b will be equal to a=a**b, for example, if a = 4, b =2, a**=b will
assign 4**2 = 16 to a.
PYTHON: 24
Bitwise operator
The bitwise operators perform bit by bit operation on the values of the two operands.
For example,
1. if a = 7;
2. b = 6;
3. then, binary (a) = 0111
4. binary (b) = 0011
5.
6. hence, a & b = 0011
7. a | b = 0111
8. a ^ b = 0100
9. ~ a = 1000
Operator Description
& (binary If both the bits at the same place in two operands are 1, then 1 is
and) copied to the result. Otherwise, 0 is copied.
| (binary or) The resulting bit will be 0 if both the bits are zero otherwise the
resulting bit will be 1.
^ (binary The resulting bit will be 1 if both the bits are different otherwise the
xor) resulting bit will be 0.
~ (negation) It calculates the negation of each bit of the operand, i.e., if the bit is
0, the resulting bit will be 1 and vice versa.
<< (left The left operand value is moved left by the number of bits present in
shift) the right operand.
>> (right The left operand is moved right by the number of bits present in the
shift) right operand.
PYTHON: 25
Logical Operators
The logical operators are used primarily in the expression evaluation to make a decision.
Python supports the following logical operators.
Operator Description
and If both the expression are true, then the condition will be true. If a and b
are the two expressions, a → true, b → true => a and b → true.
or If one of the expressions is true, then the condition will be true. If a and
b are the two expressions, a → true, b → false => a or b → true.
not If an expression a is true then not (a) will be false and vice versa.
Membership Operators
Python membership operators are used to check the membership of value inside a data
structure. If the value is present in the data structure, then the resulting value is true
otherwise it returns false.
Operator Description
not in It is evaluated to be true if the first operand is not found in the second
operand (list, tuple, or dictionary).
Identity Operators
Operator Description
PYTHON: 26
Operator Precedence
The precedence of the operators is important to find out since it enables us to know
which operator should be evaluated first. The precedence table of the operators in
python is given below.
Operator Description
** The exponent operator is given priority over all the others used
in the expression.
<= < > >= Comparison operators (less then, less then equal to, greater
then, greater then equal to).
PYTHON: 27
Python Comments
Comments in Python can be used to explain any program code. It can also be used to
hide the code as well.
Comments are the most helpful stuff of any program. It enables us to understand the
way, a program works. In python, any statement written along with # symbol is known
as a comment. The interpreter does not interpret the comment.
Comment is not a part of the program, but it enhances the interactivity of the program
and makes the program readable.
In case user wants to specify a single line comment, then comment must start with ?#?
Eg:
Output:
Hello Python
eg:
1. ''''' This
2. Is
3. Multipline comment'''
eg:
Output:
Hello Python
PYTHON: 28
Python If-else statements
Decision making is the most important aspect of almost all the programming languages.
As the name implies, decision making allows us to run a particular block of code for a
particular decision. Here, the decisions are made on the validity of the particular
conditions. Condition checking is the backbone of decision making.
Statement Description
If - else The if-else statement is similar to if statement except the fact that, it
Statement also provides the block of the code for the false case of the condition
to be checked. If the condition provided in the if statement is false,
then the else statement will be executed.
Indentation in Python
For the ease of programming and to achieve simplicity, python doesn't allow the use of
parentheses for the block level code. In Python, indentation is used to declare a block. If
two statements are at the same indentation level, then they are the part of the same
block.
Generally, four spaces are given to indent the statements which are a typical amount of
indentation in python.
Indentation is the most used part of the python language since it declares the block of
code. All the statements of one block are intended at the same level indentation. We will
see how the actual indentation takes place in decision making and other stuff in python.
The if statement
The if statement is used to test a particular condition and if the condition is true, it
executes a block of code known as if-block. The condition of if statement can be any
valid logical expression which can be either evaluated to true or false.
PYTHON: 29
The syntax of the if-statement is given below.
1. if expression:
2. statement
Example 1
1. num = int(input("enter the number?"))
2. if num%2 == 0:
3. print("Number is even")
Output:
Output:
Enter a? 100
Enter b? 120
Enter c? 130
c is largest
PYTHON: 30
The if-else statement
The if-else statement provides an else block combined with the if statement which is
executed in the false case of the condition.
If the condition is true, then the if-block is executed. Otherwise, the else-block is
executed.
1. if condition:
2. #block of statements
3. else:
4. #another block of statements (else-block)
Output:
PYTHON: 31
Example 2: Program to check whether a number is even or not.
1. num = int(input("enter the number?"))
2. if num%2 == 0:
3. print("Number is even...")
4. else:
5. print("Number is odd...")
Output:
The elif statement works like an if-else-if ladder statement in C. It must be succeeded by
an if statement.
1. if expression 1:
2. # block of statements
3.
4. elif expression 2:
5. # block of statements
6.
7. elif expression 3:
8. # block of statements
9.
10. else:
11. # block of statements
PYTHON: 32
Example 1
1. number = int(input("Enter the number?"))
2. if number==10:
3. print("number is equals to 10")
4. elif number==50:
5. print("number is equal to 50");
6. elif number==100:
7. print("number is equal to 100");
8. else:
9. print("number is not equal to 10, 50 or 100");
Output:
Example 2
1. marks = int(input("Enter the marks? "))
2. f marks > 85 and marks <= 100:
3. print("Congrats ! you scored grade A ...")
4. lif marks > 60 and marks <= 85:
5. print("You scored grade B + ...")
6. lif marks > 40 and marks <= 60:
7. print("You scored grade B ...")
8. lif (marks > 30 and marks <= 40):
9. print("You scored grade C ...")
10. lse:
11. print("Sorry you are fail ?")
PYTHON: 33
Python Loops
The flow of the programs written in any programming language is sequential by default.
Sometimes we may need to alter the flow of the program. The execution of a specific
code may need to be repeated several numbers of times.
For this purpose, The programming languages provide various types of loops which are
capable of repeating some specific code several numbers of times. Consider the following
diagram to understand the working of a loop statement.
Advantages of loops
There are the following advantages of loops in Python.
PYTHON: 34
Loop Description
Statement
for loop The for loop is used in the case where we need to execute some part
of the code until the given condition is satisfied. The for loop is also
called as a per-tested loop. It is better to use for loop if the number of
iteration is known in advance.
while loop The while loop is to be used in the scenario where we don't know the
number of iterations in advance. The block of statements is executed
in the while loop until the condition specified in the while loop is
satisfied. It is also called a pre-tested loop.
do-while The do-while loop continues until a given condition satisfies. It is also
loop called post tested loop. It is used when it is necessary to execute the
loop at least once (mostly menu driven programs).
PYTHON: 35
Python for loop
The for loop in Python is used to iterate the statements or a part of the program
several times. It is frequently used to traverse the data structures like list, tuple, or
dictionary.
Example
1. i=1
2. n=int(input("Enter the number up to which you want to print the natural nu
mbers?"))
3. for i in range(0,10):
4. print(i,end = ' ')
Output:
0 1 2 3 4 5 6 7 8 9
Python for loop example : printing the table of the given number
1. i=1;
2. num = int(input("Enter a number:"));
3. for i in range(1,11):
4. print("%d X %d = %d"%(num,i,num*i));
PYTHON: 36
Output:
Enter a number:10
10 X 1 = 10
10 X 2 = 20
10 X 3 = 30
10 X 4 = 40
10 X 5 = 50
10 X 6 = 60
10 X 7 = 70
10 X 8 = 80
10 X 9 = 90
10 X 10 = 100
Example 1
1. n = int(input("Enter the number of rows you want to print?"))
2. i,j=0,0
3. for i in range(0,n):
4. print()
5. for j in range(0,i+1):
6. print("*",end="")
Output:
PYTHON: 37
Example 1
1. for i in range(0,5):
2. print(i)
3. else:print("for loop completely exhausted, since there is no break.");
In the above example, for loop is executed completely since there is no break statement
in the loop. The control comes out of the loop and hence the else block is executed.
Output:
0
1
2
3
4
Example 2
1. for i in range(0,5):
2. print(i)
3. break;
4. else:print("forloop is exhausted");
5. print("The loop is broken due to break statement...came out of loop")
In the above example, the loop is broken due to break statement therefore the else
statement will not be executed. The statement present immediate next to else block will
be executed.
Output:
PYTHON: 38
Python while loop
The while loop is also known as a pre-tested loop. In general, a while loop allows a part
of the code to be executed as long as the given condition is true.
It can be viewed as a repeating if statement. The while loop is mostly used in the case
where the number of iterations is not known in advance.
1. while expression:
2. statements
Here, the statements can be a single statement or the group of statements. The
expression should be any valid python expression resulting into true or false. The true is
any non-zero value.
Example 1
1. i=1;
2. while i<=10:
3. print(i);
4. i=i+1;
Output:
1
2
3
4
5
6
7
8
9
10
PYTHON: 39
Example 2
1. i=1
2. number=0
3. b=9
4. number = int(input("Enter the number?"))
5. while i<=10:
6. print("%d X %d = %d \n"%(number,i,number*i));
7. i = i+1;
Output:
10 X 1 = 10
10 X 2 = 20
10 X 3 = 30
10 X 4 = 40
10 X 5 = 50
10 X 6 = 60
10 X 7 = 70
10 X 8 = 80
10 X 9 = 90
10 X 10 = 100
Any non-zero value in the while loop indicates an always-true condition whereas 0
indicates the always-false condition. This type of approach is useful if we want our
program to run continuously in the loop without any disturbance.
Example 1
1. while (1):
2. print("Hi! we are inside the infinite while loop");
Output:
PYTHON: 40
Example 2
1. var = 1
2. while var != 2:
3. i = int(input("Enter the number?"))
4. print ("Entered value is %d"%(i))
Output:
1. i=1;
2. while i<=5:
3. print(i)
4. i=i+1;
5. else:print("The while loop exhausted");
Output:
1
2
3
4
5
The while loop exhausted
PYTHON: 41
Example 2
1. i=1;
2. while i<=5:
3. print(i)
4. i=i+1;
5. if(i==3):
6. break;
7. else:print("The while loop exhausted");
Output:
1
2
The break is commonly used in the cases where we need to break the loop for a given
condition.
1. #loop statements
2. break;
Example 1
1. list =[1,2,3,4]
2. count = 1;
3. for i in list:
4. if i == 4:
5. print("item matched")
6. count = count + 1;
7. break
8. print("found at",count,"location");
Output:
item matched
found at 2 location
PYTHON: 42
Example 2
1. str = "python"
2. for i in str:
3. if i == 'o':
4. break
5. print(i);
Output:
p
y
t
h
Output:
Example 3
1. n=2
2. while 1:
3. i=1;
4. while i<=10:
5. print("%d X %d = %d\n"%(n,i,n*i));
6. i = i+1;
7. choice = int(input("Do you want to continue printing the table, press 0 for no?"))
8. if choice == 0:
9. break;
10. n=n+1
PYTHON: 43
Output:
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
2 X 10 = 20
3 X 1 = 3
3 X 2 = 6
3 X 3 = 9
3 X 4 = 12
3 X 5 = 15
3 X 6 = 18
3 X 7 = 21
3 X 8 = 24
3 X 9 = 27
3 X 10 = 30
PYTHON: 44
Python continue Statement
The continue statement in python is used to bring the program control to the beginning
of the loop. The continue statement skips the remaining lines of code inside the loop and
start with the next iteration. It is mainly used for a particular condition inside the loop so
that we can skip some specific code for a particular condition.
1. #loop statements
2. continue;
3. #the code to be skipped
Example 1
1. i = 0;
2. while i!=10:
3. print("%d"%i);
4. continue;
5. i=i+1;
Output:
infinite loop
Example 2
1. i=1; #initializing a local variable
2. #starting a loop from 1 to 10
3. for i in range(1,11):
4. if i==5:
5. continue;
6. print("%d"%i);
Output:
1
2
3
4
6
7
8
9
10
PYTHON: 45
Pass Statement
The pass statement is a null operation since nothing happens when it is executed. It is
used in the cases where a statement is syntactically needed but we don't want to use
any executable statement at its place.
For example, it can be used while overriding a parent class method in the subclass but
don't want to give its specific implementation in the subclass.
Pass is also used where the code will be written somewhere but not yet written in the
program file.
Example
1. list = [1,2,3,4,5]
2. flag = 0
3. for i in list:
4. print("Current element:",i,end=" ");
5. if i==3:
6. pass;
7. print("\nWe are inside pass block\n");
8. flag = 1;
9. if flag==1:
10. print("\nCame out of pass\n");
11. flag=0;
Output:
PYTHON: 46
Python Pass
In Python, pass keyword is used to execute nothing; it means, when we don't want to
execute code, the pass can be used to execute empty. It is same as the name refers to.
It just makes the control to pass by without executing any code. If we want to bypass
any code pass statement can be used.
1. pass
1. for i in [1,2,3,4,5]:
2. if i==3:
3. pass
4. print "Pass when value is",i
5. print i,
Output:
1. >>>
2. 1 2 Pass when value is 3
3. 3 4 5
4. >>>
PYTHON: 47
Python String
Till now, we have discussed numbers as the standard data types in python. In this section of
the tutorial, we will discuss the most popular data type in python i.e., string.
In python, strings can be created by enclosing the character or the sequence of characters in
the quotes. Python allows us to use single quotes, double quotes, or triple quotes to create the
string.
Here, if we check the type of the variable str using a python script
In python, strings are treated as the sequence of strings which means that python doesn't
support the character data type instead a single character written as 'p' is treated as the string
of length 1.
As shown in python, the slice operator [] is used to access the individual characters of the
string. However, we can use the : (colon) operator in python to access the substring. Consider
the following example.
Here, we must notice that the upper range given in the slice operator is always exclusive i.e.,
if str = 'python' is given, then str[1:3] will always include str[1] = 'p', str[2] = 'y', str[3] = 't'
and nothing else.
Reassigning strings
Updating the content of the strings is as easy as assigning it to a new string. The string object
doesn't support item assignment i.e., A string can only be replaced with a new string since its
content can not be partially replaced. Strings are immutable in python.
Example 1
1. str = "HELLO"
2. str[0] = "h"
3. print(str)
PYTHON: 48
Output:
However, in example 1, the string str can be completely assigned to a new content as
specified in the following example.
Example 2
1. str = "HELLO"
2. print(str)
3. str = "hello"
4. print(str)
Output:
HELLO
hello
String Operators
Operator Description
not in It is also a membership operator and does the exact reverse of in. It
returns true if a particular substring is not present in the specified string.
r/R It is used to specify the raw string. Raw strings are used in the cases
PYTHON: 49
where we need to print the actual meaning of escape characters such as
"C://python". To define any string as a raw string, the character r or R is
followed by the string.
Example
Consider the following example to understand the real use of Python operators.
1. str = "Hello"
2. str1 = " world"
3. print(str*3) # prints HelloHelloHello
4. print(str+str1)# prints Hello world
5. print(str[4]) # prints o
6. print(str[2:4]); # prints ll
7. print('w' in str) # prints false as w is not present in str
8. print('wo' not in str1) # prints false as wo is present in str1.
9. print(r'C://python37') # prints C://python37 as it is written
10. print("The string str : %s"%(str)) # prints The string str : Hello
Output:
HelloHelloHello
Hello world
o
ll
False
False
C://python37
The string str : Hello
1. Integer = 10;
2. Float = 1.290
3. String = "Ayush"
PYTHON: 50
4. print("Hi I am Integer ... My value is %d\nHi I am float ... My value is %f
\nHi I am string ... My value is %s"%(Integer,Float,String));
Output:
Method Description
decode(encoding = 'UTF8', errors = Decodes the string using codec registered for
'strict') encoding.
PYTHON: 51
index.
PYTHON: 52
other characters are lower-case.
PYTHON: 53
can also be used to remove particular character
from trailing.
rpartition()
PYTHON: 54
Python List
List in python is implemented to store the sequence of various type of data. However,
python contains six data types that are capable to store the sequences but the most
common and reliable type is list.
A list can be defined as a collection of values or items of different types. The items in the
list are separated with the comma (,) and enclosed with the square brackets [].
If we try to print the type of L1, L2, and L3 then it will come out to be a list.
Lets consider a proper example to define a list and printing its values.
Output:
The index starts from 0 and goes to length - 1. The first element of the list is stored at
the 0th index, the second element of the list is stored at the 1st index, and so on.
Unlike other languages, python provides us the flexibility to use the negative indexing
also. The negative indices are counted from the right. The last element (right most) of
the list has the index -1, its adjacent left element is present at the index -2 and so on
until the left most element is encountered.
Python also provide us the append() method which can be used to add values to the
string.
PYTHON: 56
Consider the following example to update the values inside the list.
1. List = [1, 2, 3, 4, 5, 6]
2. print(List)
3. List[2] = 10;
4. print(List)
5. List[1:3] = [89, 78]
6. print(List)
Output:
[1, 2, 3, 4, 5, 6]
[1, 2, 10, 4, 5, 6]
[1, 89, 78, 4, 5, 6]
The list elements can also be deleted by using the del keyword. Python also provides us
the remove() method if we do not know which element is to be deleted from the list.
1. List = [0,1,2,3,4]
2. print(List)
3. del List[0]
4. print(List)
5. del List[3]
6. print(List)
Output:
[0, 1, 2, 3, 4]
[1, 2, 3, 4]
[1, 2, 3]
2.
PYTHON: 57
Concatenation It concatenates the list mentioned on l1+l2 = [1, 2, 3,
either side of the operator. 4, 5, 6, 7, 8]
Iteration The for loop is used to iterate over the for i in l1:
list elements. print(i)
Output
1
2
3
4
Iterating a List
A list can be iterated by using a for - in loop. A simple list containing four strings can be
iterated as follows.
Output:
John
David
James
Jonathan
PYTHON: 58
Adding elements to the list
Python provides append() function by using which we can add an element to the list.
However, the append() method can only add the value to the end of the list.
Consider the following example in which, we are taking the elements of the list from the
user and printing the list on the console.
1. l =[];
2. n = int(input("Enter the number of elements in the list")); #Number of elements will be
entered by the user
3. for i in range(0,n): # for loop to take the input
4. l.append(input("Enter the item?")); # The input is taken from the user and added to t
he list as the item
5. print("printing the list items....");
6. for i in l: # traversal loop to print the list items
7. print(i, end = " ");
Output:
Output:
PYTHON: 59
Python List Built-in functions
Python provides the following built-in functions which can be used with the lists.
SN Function Description
SN Function Description
PYTHON: 60
9 list.remove(obj) It removes the specified object from the list.
Python Tuple
Python Tuple is used to store the sequence of immutable python objects. Tuple is similar
to lists since the value of the items stored in the list can be changed whereas the tuple is
immutable and the value of the items stored in the tuple can not be changed.
A tuple can be written as the collection of comma-separated values enclosed with the
small brackets. A tuple can be defined as follows.
Example
1. tuple1 = (10, 20, 30, 40, 50, 60)
2. print(tuple1)
3. count = 0
4. for i in tuple1:
5. print("tuple1[%d] = %d"%(count, i));
Output:
Example 2
1. tuple1 = tuple(input("Enter the tuple elements ..."))
2. print(tuple1)
3. count = 0
4. for i in tuple1:
5. print("tuple1[%d] = %s"%(count, i));
PYTHON: 61
Output:
However, if we try to reassign the items of a tuple, we would get an error as the tuple
object doesn't support the item assignment.
1. T3 = ()
The tuple having a single value must include a comma as given below.
1. T4 = (90,)
A tuple is indexed in the same way as the lists. The items in the tuple can be accessed
by using their specific index value.
We will see all these aspects of tuple in this section of the tutorial.
The items in the tuple can be accessed by using the slice operator. Python also allows us
to use the colon operator to access multiple items in the tuple.
Consider the following image to understand the indexing and slicing in detail.
PYTHON: 62
Unlike lists, the tuple items can not be deleted by using the del keyword as tuples are
immutable. To delete an entire tuple, we can use the del keyword with the tuple name.
1. tuple1 = (1, 2, 3, 4, 5, 6)
2. print(tuple1)
3. del tuple1[0]
4. print(tuple1)
5. del tuple1
6. print(tuple1)
Output:
(1, 2, 3, 4, 5, 6)
Traceback (most recent call last):
File "tuple.py", line 4, in <module>
print(tuple1)
NameError: name 'tuple1' is not defined
Like lists, the tuple elements can be accessed in both the directions. The right most
element (last) of the tuple can be accessed by using the index -1. The elements from left
to right are traversed using the negative indexing.
1. tuple1 = (1, 2, 3, 4, 5)
2. print(tuple1[-1])
3. print(tuple1[-4])
Output:
5
2
PYTHON: 63
Concatenation It concatenates the tuple mentioned on T1+T2 = (1, 2, 3, 4, 5,
either side of the operator. 6, 7, 8, 9)
Iteration The for loop is used to iterate over the for i in T1:
tuple elements. print(i)
Output
1
2
3
4
5
SN Function Description
1. Using tuple instead of list gives us a clear idea that tuple data is constant and must
not be changed.
2. Tuple can simulate dictionary without keys. Consider the following nested structure
which can be used as a dictionary.
PYTHON: 64
3. Tuple can be used as the key inside dictionary due to its immutable nature.
List VS Tuple
SN List Tuple
1 The literal syntax of list is shown The literal syntax of the tuple is shown
by the []. by the ().
3 The List has the variable length. The tuple has the fixed length.
5 The list Is used in the scenario in The tuple is used in the cases where we
which we need to store the simple need to store the read-only collections
collections with no constraints i.e., the value of the items can not be
where the value of the items can changed. It can be used as the key
be changed. inside the dictionary.
Lets see an example of how can we store the tuple inside the list.
1. Employees = [(101, "Ayush", 22), (102, "john", 29), (103, "james", 45), (104, "Ben", 34
)]
2. print("----Printing list----");
3. for i in Employees:
4. print(i)
5. Employees[0] = (110, "David",22)
6. print();
7. print("----Printing list after modification----");
8. for i in Employees:
9. print(i)
PYTHON: 65
Output:
----Printing list----
(101, 'Ayush', 22)
(102, 'john', 29)
(103, 'james', 45)
(104, 'Ben', 34)
Python Set
The set in python can be defined as the unordered collection of various items enclosed
within the curly braces. The elements of the set can not be duplicate. The elements of
the python set must be immutable.
Unlike other collections in python, there is no index attached to the elements of the set,
i.e., we cannot directly access any element of the set by the index. However, we can
print them all together or we can get the list of elements by looping through the set.
Creating a set
The set can be created by enclosing the comma separated items with the curly braces.
Python also provides the set method which can be used to create the set by the passed
sequence.
Output:
PYTHON: 66
Thursday
Sunday
Wednesday
Output:
Example:
1. Months = set(["January","February", "March", "April", "May", "June"])
2. print("\nprinting the original set ... ")
3. print(Months)
4. print("\nAdding other months to the set...");
5. Months.add("July");
6. Months.add("August");
7. print("\nPrinting the modified set...");
8. print(Months)
PYTHON: 67
9. print("\nlooping through the set elements ... ")
10. for i in Months:
11. print(i)
Output:
To add more than one item in the set, Python provides the update() method.
Example
1. Months = set(["January","February", "March", "April", "May", "June"])
2. print("\nprinting the original set ... ")
3. print(Months)
4. print("\nupdating the original set ... ")
5. Months.update(["July","August","September","October"]);
6. print("\nprinting the modified set ... ")
7. print(Months);
Output:
PYTHON: 68
Consider the following example.
Example
1. Months = set(["January","February", "March", "April", "May", "June"])
2. print("\nprinting the original set ... ")
3. print(Months)
4. print("\nRemoving some months from the set...");
5. Months.discard("January");
6. Months.discard("May");
7. print("\nPrinting the modified set...");
8. print(Months)
9. print("\nlooping through the set elements ... ")
10. for i in Months:
11. print(i)
Output:
Python also provide the remove() method to remove the items from the set. Consider
the following example to remove the items using remove() method.
Example
1. Months = set(["January","February", "March", "April", "May", "June"])
2. print("\nprinting the original set ... ")
3. print(Months)
4. print("\nRemoving some months from the set...");
5. Months.remove("January");
6. Months.remove("May");
7. print("\nPrinting the modified set...");
8. print(Months)
Output:
PYTHON: 69
Removing some months from the set...
We can also use the pop() method to remove the item. However, this method will always
remove the last item.
Consider the following example to remove the last item from the set.
Output:
Python provides the clear() method to remove all the items from the set.
Output:
PYTHON: 70
Difference between discard() and remove()
Despite the fact that discard() and remove() method both perform the same task, There
is one main difference between discard() and remove().
If the key to be deleted from the set using discard() doesn't exist in the set, the python
will not give the error. The program maintains its control flow.
On the other hand, if the item to be deleted from the set using remove() doesn't exist in
the set, the python will give the error.
Example
1. Months = set(["January","February", "March", "April", "May", "June"])
2. print("\nprinting the original set ... ")
3. print(Months)
4. print("\nRemoving items through discard() method...");
5. Months.discard("Feb"); #will not give an error although the key feb is not available in th
e set
6. print("\nprinting the modified set...")
7. print(Months)
8. print("\nRemoving items through remove() method...");
9. Months.remove("Jan") #will give an error as the key jan is not available in the set.
10. print("\nPrinting the modified set...")
11. print(Months)
Output:
PYTHON: 71
Union of two Sets
The union of two sets are calculated by using the or (|) operator. The union of the two
sets contains the all the items that are present in both the sets.
Output:
Python also provides the union() method which can also be used to calculate the union
of two sets. Consider the following example.
Output:
Output:
{'Martin', 'David'}
PYTHON: 72
Example 2: using intersection() method
1. set1 = {"Ayush","John", "David", "Martin"}
2. set2 = {"Steave","Milan","David", "Martin"}
3. print(set1.intersection(set2)) #prints the intersection of the two sets
Output:
{'Martin', 'David'}
Output:
{'castle'}
PYTHON: 73
Output:
{'Thursday', 'Wednesday'}
Output:
{'Thursday', 'Wednesday'}
Set comparisons
Python allows us to use the comparison operators i.e., <, >, <=, >= , == with the sets
by using which we can check whether a set is subset, superset, or equivalent to other
set. The boolean true or false is returned depending upon the items present inside the
sets.
Output:
True
False
False
PYTHON: 74
FrozenSets
The frozen sets are the immutable form of the normal sets, i.e., the items of the frozen
set can not be changed and therefore it can be used as a key in dictionary.
The elements of the frozen set can not be changed after the creation. We cannot change
or append the content of the frozen sets by using the methods like add() or remove().
The frozenset() method is used to create the frozenset object. The iterable sequence is
passed into this method which is converted into the frozen set as a return type of the
method. Consider the following example to create the frozen set.
1. Frozenset = frozenset([1,2,3,4,5])
2. print(type(Frozenset))
3. print("\nprinting the content of frozen set...")
4. for i in Frozenset:
5. print(i);
6. Frozenset.add(6) #gives an error since we cannot change the content of Frozenset after
creation
Output:
<class 'frozenset'>
PYTHON: 75
Output:
<class 'dict'>
<class 'frozenset'>
Name
Country
ID
SN Method Description
PYTHON: 76
11 pop() Remove and return an arbitrary set
element that is the last element of the set.
Raises KeyError if the set is empty.
PYTHON: 77
Python Dictionary
Dictionary is used to implement the key-value pair in python. The dictionary is the data
type in python which can simulate the real-life data arrangement where some specific
value exists for some particular key.
In other words, we can say that a dictionary is the collection of key-value pairs where
the value can be any python object whereas the keys are the immutable python object,
i.e., Numbers, string or tuple.
In the above dictionary Dict, The keys Name, and Age are the string that is an
immutable object.
Output
<class 'dict'>
printing Employee data ....
{'Age': 29, 'salary': 25000, 'Name': 'John', 'Company': 'GOOGLE'}
However, the values can be accessed in the dictionary by using the keys as keys are
unique in the dictionary.
PYTHON: 78
3. print("printing Employee data .... ")
4. print("Name : %s" %Employee["Name"])
5. print("Age : %d" %Employee["Age"])
6. print("Salary : %d" %Employee["salary"])
7. print("Company : %s" %Employee["Company"])
Output:
<class 'dict'>
printing Employee data ....
Name : John
Age : 29
Salary : 25000
Company : GOOGLE
Python provides us with an alternative to use the get() method to access the dictionary
values. It would give the same result as given by the indexing.
Output:
<class 'dict'>
printing Employee data ....
{'Name': 'John', 'salary': 25000, 'Company': 'GOOGLE', 'Age': 29}
Enter the details of the new employee....
Name: David
Age: 19
Salary: 8900
Company:JTP
printing the new data
{'Name': 'David', 'salary': 8900, 'Company': 'JTP', 'Age': 19}
PYTHON: 79
Deleting elements using del keyword
The items of the dictionary can be deleted by using the del keyword as given below.
Output:
<class 'dict'>
printing Employee data ....
{'Age': 29, 'Company': 'GOOGLE', 'Name': 'John', 'salary': 25000}
Deleting some of the employee data
printing the modified information
{'Age': 29, 'salary': 25000}
Deleting the dictionary: Employee
Lets try to print it again
Traceback (most recent call last):
File "list.py", line 13, in <module>
print(Employee)
NameError: name 'Employee' is not defined
Iterating Dictionary
A dictionary can be iterated using the for loop as given below.
Example 1
# for loop to print all the keys of a dictionary
PYTHON: 80
Output:
Name
Company
salary
Age
Example 2
#for loop to print all the values of the dictionary
Output:
29
GOOGLE
John
25000
Example 3
#for loop to print the values of the dictionary by using values() method.
Output:
GOOGLE
25000
John
29
Example 4
#for loop to print the items of the dictionary by using items() method.
Output:
('Name', 'John')
('Age', 29)
('salary', 25000)
('Company', 'GOOGLE')
PYTHON: 81
Properties of Dictionary keys
1. In the dictionary, we can not store multiple values for the same keys. If we pass more
than one values for a single key, then the value which is last assigned is considered as
the value of the key.
Output:
Salary 25000
Company GOOGLE
Name Johnn
Age 29
2. In python, the key cannot be any mutable object. We can use numbers, strings, or
tuple as the key but we can not use any mutable object like the list as the key in the
dictionary.
Output:
SN Function Description
PYTHON: 82
2 len(dict) It is used to calculate the length of the dictionary.
SN Method Description
PYTHON: 83
11 len()
12 popItem()
13 pop()
14 count()
15 index()
Python Functions
Functions are the most important aspect of an application. A function can be defined as
the organized block of reusable code which can be called whenever required.
Python allows us to divide a large program into the basic building blocks known as
function. The function contains the set of programming statements enclosed by {}. A
function can be called multiple times to provide reusability and modularity to the python
program.
In other words, we can say that the collection of functions creates a program. The
function is also known as procedure or subroutine in other programming languages.
Python provide us various inbuilt functions like range() or print(). Although, the user can
create its functions which can be called user-defined functions.
o By using functions, we can avoid rewriting same logic/code again and again in a
program.
o We can call python functions any number of times in a program and from any
place in a program.
o We can track a large python program easily when it is divided into multiple
functions.
o Reusability is the main achievement of python functions.
o However, Function calling is always overhead in a python program.
PYTHON: 84
Creating a function
In python, we can use def keyword to define the function. The syntax to define a
function in python is given below.
1. def my_function():
2. function-suite
3. return <expression>
The function block is started with the colon (:) and all the same level block statements
remain at the same indentation.
A function can accept any number of parameters that must be the same in the definition
and function calling.
Function calling
In python, a function must be defined before the function calling otherwise the python
interpreter gives an error. Once the function is defined, we can call it from another
function or the python prompt. To call the function, use the function name followed by
the parentheses.
A simple function that prints the message "Hello Word" is given below.
1. def hello_world():
2. print("hello world")
3.
4. hello_world()
Output:
hello world
Parameters in function
The information into the functions can be passed as the parameters. The parameters are
specified in the parentheses. We can give any number of parameters, but we have to
separate them with a comma.
Consider the following example which contains a function that accepts a string as the
parameter and prints it.
PYTHON: 85
Example 1
1. #defining the function
2. def func (name):
3. print("Hi ",name);
4.
5. #calling the function
6. func("Ayush")
Example 2
1. #python function to calculate the sum of two variables
2. #defining the function
3. def sum (a,b):
4. return a+b;
5.
6. #taking values from the user
7. a = int(input("Enter a: "))
8. b = int(input("Enter b: "))
9.
10. #printing the sum of a and b
11. print("Sum = ",sum(a,b))
Output:
Enter a: 10
Enter b: 20
Sum = 30
However, there is an exception in the case of mutable objects since the changes made to
the mutable objects like string do not revert to the original string rather, a new string
object is made, and therefore the two different objects are printed.
PYTHON: 86
7. #defining the list
8. list1 = [10,30,40,50]
9.
10. #calling the function
11. change_list(list1);
12. print("list outside function = ",list1);
Output:
Output:
Types of arguments
There may be several types of arguments which can be passed at the time of function
calling.
1. Required arguments
2. Keyword arguments
3. Default arguments
4. Variable-length arguments
PYTHON: 87
Required Arguments
Till now, we have learned about function calling in python. However, we can provide the
arguments at the time of function calling. As far as the required arguments are
concerned, these are the arguments which are required to be passed at the time of
function calling with the exact match of their positions in the function call and function
definition. If either of the arguments is not provided in the function call, or the position
of the arguments is changed, then the python interpreter will show the error.
Example 1
1. #the argument name is the required argument to the function func
2. def func(name):
3. message = "Hi "+name;
4. return message;
5. name = input("Enter the name?")
6. print(func(name))
Output:
Example 2
1. #the function simple_interest accepts three arguments and returns the simple interest a
ccordingly
2. def simple_interest(p,t,r):
3. return (p*t*r)/100
4. p = float(input("Enter the principle amount? "))
5. r = float(input("Enter the rate of interest? "))
6. t = float(input("Enter the time in years? "))
7. print("Simple Interest: ",simple_interest(p,r,t))
Output:
PYTHON: 88
Example 3
1. #the function calculate returns the sum of two arguments a and b
2. def calculate(a,b):
3. return a+b
4. calculate(10) # this causes an error as we are missing a required arguments b.
Output:
Keyword arguments
Python allows us to call the function with the keyword arguments. This kind of function
call will enable us to pass the arguments in the random order.
The name of the arguments is treated as the keywords and matched in the function
calling and definition. If the same match is found, the values of the arguments are
copied in the function definition.
Example 1
1. #function func is called with the name and message as the keyword arguments
2. def func(name,message):
3. print("printing
the message with",name,"and ",message)
4. func(name = "John",message="hello") #name and message is copied with the values
John and hello respectively
Output:
Output:
If we provide the different name of arguments at the time of function call, an error will
be thrown.
PYTHON: 89
Consider the following example.
Example 3
1. #The function simple_interest(p, t, r) is called with the keyword arguments.
2. def simple_interest(p,t,r):
3. return (p*t*r)/100
4.
5. print("Simple Interest: ",simple_interest(time=10,rate=10,principle=1900)) # does
n't find the exact match of the name of the arguments (keywords)
Output:
The python allows us to provide the mix of the required arguments and keyword
arguments at the time of function call. However, the required argument must not be
given after the keyword argument, i.e., once the keyword argument is encountered in
the function call, the following arguments must also be the keyword arguments.
Example 4
1. def func(name1,message,name2):
2. print("printing
the message with",name1,",",message,",and",name2)
3. func("John",message="hello",name2="David") #the first argument is not the keywor
d argument
Output:
The following example will cause an error due to an in-proper mix of keyword and
required arguments being passed in the function call.
Example 5
1. def func(name1,message,name2):
2. print("printing
the message with",name1,",",message,",and",name2)
3. func("John",message="hello","David")
Output:
PYTHON: 90
Default Arguments
Python allows us to initialize the arguments at the function definition. If the value of any
of the argument is not provided at the time of function call, then that argument can be
initialized with the value given in the definition even if the argument is not specified at
the function call.
Example 1
1. def printme(name,age=22):
2. print("My
name is",name,"and age is",age)
3. printme(name = "john") #the variable age is not passed into the function however the
default value of age is considered in the function
Output:
Example 2
1. def printme(name,age=22):
2. print("My
name is",name,"and age is",age)
3. printme(name = "john") #the variable age is not passed into the function however the
default value of age is considered in the function
4. printme(age = 10,name="David") #the value of age is overwritten here, 10 will be prin
ted as age
Output:
However, at the function definition, we have to define the variable with * (star) as
*<variable - name >.
PYTHON: 91
Example
1. def printme(*names):
2. print("type of passed argument is ",type(names))
3. print("printing the passed arguments...")
4. for name in names:
5. print(name)
6. printme("john","David","smith","nick")
Output:
Scope of variables
The scopes of the variables depend upon the location where the variable is being
declared. The variable declared in one part of the program may not be accessible to the
other parts.
In python, the variables are defined with the two types of scopes.
1. Global variables
2. Local variables
The variable defined outside any function is known to have a global scope whereas the
variable defined inside a function is known to have a local scope.
Example 1
1. def print_message():
2. message = "hello !! I am going to print a message." # the variable message i
s local to the function itself
3. print(message)
4. print_message()
5. print(message) # this will cause an error since a local variable cannot be accessible her
e.
Output:
PYTHON: 92
File "/root/PycharmProjects/PythonTest/Test1.py", line 5, in
print(message)
NameError: name 'message' is not defined
Example 2
1. def calculate(*args):
2. sum=0
3. for arg in args:
4. sum = sum +arg
5. print("The sum is",sum)
6. sum=0
7. calculate(10,20,30) #60 will be printed as the sum
8. print("Value of sum outside the function:",sum) # 0 will be printed
Output:
The sum is 60
Value of sum outside the function: 0
1. # integer number
2. integer = -20
3. print('Absolute value of -40 is:', abs(integer))
4.
5. # floating number
6. floating = -20.83
7. print('Absolute value of -40.83 is:', abs(floating))
Output:
PYTHON: 93
Absolute value of -20 is: 20
Absolute value of -20.83 is: 20.83
Output:
True
False
False
False
True
PYTHON: 94
Python bin() Function
The python bin() function is used to return the binary representation of a specified
integer. A result always starts with the prefix 0b.
1. x = 10
2. y = bin(x)
3. print (y)
Output:
0b1010
Python bool()
The python bool() converts a value to boolean(True or False) using the standard truth
testing procedure.
1. test1 = []
2. print(test1,'is',bool(test1))
3. test1 = [0]
4. print(test1,'is',bool(test1))
5. test1 = 0.0
6. print(test1,'is',bool(test1))
7. test1 = None
8. print(test1,'is',bool(test1))
9. test1 = True
10. print(test1,'is',bool(test1))
11. test1 = 'Easy string'
12. print(test1,'is',bool(test1))
Output:
[] is False
[0] is True
0.0 is False
None is False
True is True
Easy string is True
PYTHON: 95
Python bytes()
The python bytes() in Python is used for returning a bytes object. It is an immutable
version of the bytearray() function.
Output:
1. x = 8
2. print(callable(x))
Output:
False
Output:
PYTHON: 96
<class 'code'>
sum = 15
1. x = 8
2. exec('print(x==8)')
3. exec('print(x+4)')
Output:
True
12
1. s = sum([1, 2,4 ])
2. print(s)
3.
4. s = sum([1, 2, 4], 10)
5. print(s)
Output:
7
17
1. l = [4, 3, 2, 0]
PYTHON: 97
2. print(any(l))
3.
4. l = [0, False]
5. print(any(l))
6.
7. l = [0, False, 5]
8. print(any(l))
9.
10. l = []
11. print(any(l))
Output:
True
False
True
False
Output:
'Python is interesting'
'Pyth\xf6n is interesting'
Pythön is interesting
Python bytearray()
The python bytearray() returns a bytearray object and can convert objects into
bytearray objects, or create an empty bytearray object of the specified size.
PYTHON: 98
1. string = "Python is a programming language."
2.
3. # string with encoding 'utf-8'
4. arr = bytearray(string, 'utf-8')
5. print(arr)
Output:
1. x = 8
2. print(eval('x + 1'))
Output:
Python float()
The python float() function returns a floating-point number from a number or string.
1. # for integers
2. print(float(9))
3.
4. # for floats
5. print(float(8.19))
6.
7. # for string floats
8. print(float("-24.27"))
9.
10. # for string floats with whitespaces
11. print(float(" -17.19\n"))
12.
13. # string float error
14. print(float("xyz"))
PYTHON: 99
Output:
9.0
8.19
-24.27
-17.19
ValueError: could not convert string to float: 'xyz'
Output:
123
123.456790
1100
Python frozenset()
The python frozenset() function returns an immutable frozenset object initialized with
elements from the given iterable.
1. # tuple of letters
2. letters = ('m', 'r', 'o', 't', 's')
3.
4. fSet = frozenset(letters)
5. print('Frozen set is:', fSet)
6. print('Empty frozen set is:', frozenset())
Output:
PYTHON: 100
Frozen set is: frozenset({'o', 'm', 's', 'r', 't'})
Empty frozen set is: frozenset()
1. class Details:
2. age = 22
3. name = "Phill"
4.
5. details = Details()
6. print('The age is:', getattr(details, "age"))
7. print('The age is:', details.age)
Output:
A Symbol table is defined as a data structure which contains all the necessary
information about the program. It includes variable names, methods, classes, etc.
1. age = 22
2.
3. globals()['age'] = 22
4. print('The age is:', age)
Output:
PYTHON: 101
Python hasattr() Function Example
1. l = [4, 3, 2, 0]
2. print(any(l))
3.
4. l = [0, False]
5. print(any(l))
6.
7. l = [0, False, 5]
8. print(any(l))
9.
10. l = []
11. print(any(l))
Output:
True
False
True
False
1. # list of numbers
2. list = [1,2,3,4,5]
3.
4. listIter = iter(list)
5.
6. # prints '1'
7. print(next(listIter))
8.
9. # prints '2'
10. print(next(listIter))
11.
12. # prints '3'
13. print(next(listIter))
14.
15. # prints '4'
16. print(next(listIter))
17.
18. # prints '5'
PYTHON: 102
19. print(next(listIter))
Output:
1
2
3
4
5
1. strA = 'Python'
2. print(len(strA))
Output:
Python list()
The python list() creates a list in python.
1. # empty list
2. print(list())
3.
4. # string
5. String = 'abcde'
6. print(list(String))
7.
8. # tuple
9. Tuple = (1,2,3,4,5)
10. print(list(Tuple))
11. # list
12. List = [1,2,3,4,5]
13. print(list(List))
Output:
[]
['a', 'b', 'c', 'd', 'e']
PYTHON: 103
[1,2,3,4,5]
[1,2,3,4,5]
A Symbol table is defined as a data structure which contains all the necessary
information about the program. It includes variable names, methods, classes, etc.
1. def localsAbsent():
2. return locals()
3.
4. def localsPresent():
5. present = True
6. return locals()
7.
8. print('localsNotPresent:', localsAbsent())
9. print('localsPresent:', localsPresent())
Output:
localsAbsent: {}
localsPresent: {'present': True}
1. def calculateAddition(n):
2. return n+n
3.
4. numbers = (1, 2, 3, 4)
5. result = map(calculateAddition, numbers)
6. print(result)
7.
8. # converting map object to set
9. numbersAddition = set(result)
10. print(numbersAddition)
PYTHON: 104
Output:
1. #A random bytearray
2. randomByteArray = bytearray('ABC', 'utf-8')
3.
4. mv = memoryview(randomByteArray)
5.
6. # access the memory view's zeroth index
7. print(mv[0])
8.
9. # It create byte from memory view
10. print(bytes(mv[0:2]))
11.
12. # It create list from memory view
13. print(list(mv[0:3]))
Output:
65
b'AB'
[65, 66, 67]
Python object()
The python object() returns an empty object. It is a base for all the classes and holds
the built-in properties and methods which are default for all the classes.
1. python = object()
2.
3. print(type(python))
4. print(dir(python))
Output:
PYTHON: 105
<class 'object'>
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__',
'__ge__',
'__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__',
'__ne__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
'__sizeof__',
'__str__', '__subclasshook__']
Output:
Since the mode is omitted, the file is opened in 'r' mode; opens for
reading.
1. # Calling function
2. result = chr(102) # It returns string representation of a char
3. result2 = chr(112)
4. # Displaying result
5. print(result)
6. print(result2)
7. # Verify, is it string type?
8. print("is it string type:", type(result) is str)
Output:
PYTHON: 106
Python complex()
Python complex() function is used to convert numbers or string into a complex number.
This method takes two optional parameters and returns a complex number. The first
parameter is called a real and second as imaginary parts.
Output:
(1.5+0j)
(1.5+2.2j)
1. class Student:
2. id = 101
3. name = "Pranshu"
4. email = "[email protected]"
5. # Declaring function
6. def getinfo(self):
7. print(self.id, self.name, self.email)
8. s = Student()
9. s.getinfo()
10. delattr(Student,'course') # Removing attribute which is not available
11. s.getinfo() # error: throws an error
Output:
PYTHON: 107
Python dir() Function
Python dir() function returns the list of names in the current local scope. If the object
on which method is called has a method named __dir__(), this method will be called and
must return the list of attributes. It takes a single object type argument.
1. # Calling function
2. att = dir()
3. # Displaying result
4. print(att)
Output:
Output:
(5, 0)
1. # Calling function
2. result = enumerate([1,2,3])
PYTHON: 108
3. # Displaying result
4. print(result)
5. print(list(result))
Output:
Python dict()
Python dict() function is a constructor which creates a dictionary. Python dictionary
provides three different constructors to create a dictionary:
1. # Calling function
2. result = dict() # returns an empty dictionary
3. result2 = dict(a=1,b=2)
4. # Displaying result
5. print(result)
6. print(result2)
Output:
{}
{'a': 1, 'b': 2}
The first argument can be none, if the function is not available and returns only
elements that are true.
PYTHON: 109
2. def filterdata(x):
3. if x>5:
4. return x
5. # Calling function
6. result = filter(filterdata,(1,2,6))
7. # Displaying result
8. print(list(result))
Output:
[6]
Hashable types: * bool * int * long * float * string * Unicode * tuple * code object.
1. # Calling function
2. result = hash(21) # integer value
3. result2 = hash(22.2) # decimal value
4. # Displaying result
5. print(result)
6. print(result2)
Output:
21
461168601842737174
1. # Calling function
2. info = help() # No argument
3. # Displaying result
PYTHON: 110
4. print(info)
Output:
1. # Calling function
2. small = min(2225,325,2025) # returns smallest element
3. small2 = min(1000.25,2025.35,5625.36,10052.50)
4. # Displaying result
5. print(small)
6. print(small2)
Output:
325
1000.25
1. # Calling function
2. result = set() # empty set
3. result2 = set('12')
4. result3 = set('javatpoint')
5. # Displaying result
6. print(result)
7. print(result2)
8. print(result3)
PYTHON: 111
Output:
set()
{'1', '2'}
{'a', 'n', 'v', 't', 'j', 'p', 'i', 'o'}
1. # Calling function
2. result = hex(1)
3. # integer value
4. result2 = hex(342)
5. # Displaying result
6. print(result)
7. print(result2)
Output:
0x1
0x156
1. # Calling function
2. val = id("Javatpoint") # string object
3. val2 = id(1200) # integer object
4. val3 = id([25,336,95,236,92,3225]) # List object
5. # Displaying result
6. print(val)
7. print(val2)
8. print(val3)
PYTHON: 112
Output:
139963782059696
139963805666864
139963781994504
1. class Student:
2. id = 0
3. name = ""
4.
5. def __init__(self, id, name):
6. self.id = id
7. self.name = name
8.
9. student = Student(102,"Sohan")
10. print(student.id)
11. print(student.name)
12. #print(student.email) product error
13. setattr(student, 'email','[email protected]') # adding new attribute
14. print(student.email)
Output:
102
Sohan
[email protected]
PYTHON: 113
Python slice() Function Example
1. # Calling function
2. result = slice(5) # returns slice object
3. result2 = slice(0,5,3) # returns slice object
4. # Displaying result
5. print(result)
6. print(result2)
Output:
slice(None, 5, None)
slice(0, 5, 3)
Output:
['a', 'a', 'i', 'j', 'n', 'o', 'p', 't', 't', 'v']
This method calls on iterator and throws an error if no item is present. To avoid the
error, we can set a default value.
PYTHON: 114
Python next() Function Example
Output:
256
32
82
1. # Calling function
2. val = input("Enter a value: ")
3. # Displaying result
4. print("You entered:",val)
Output:
Enter a value: 45
You entered: 45
If the number is not a number or if a base is given, the number must be a string.
PYTHON: 115
Python int() Function Example
1. # Calling function
2. val = int(10) # integer value
3. val2 = int(10.52) # float value
4. val3 = int('10') # string value
5. # Displaying result
6. print("integer values :",val, val2, val3)
Output:
integer values : 10 10 10
The isinstance() function takes two arguments, i.e., object and classinfo, and then it
returns either True or False.
1. class Student:
2. id = 101
3. name = "John"
4. def __init__(self, id, name):
5. self.id=id
6. self.name=name
7.
8. student = Student(1010,"John")
9. lst = [12,34,5,6,767]
10. # Calling function
11. print(isinstance(student, Student)) # isinstance of Student class
12. print(isinstance(lst, Student))
Output:
True
False
PYTHON: 116
Python oct() Function
Python oct() function is used to get an octal value of an integer number. This method
takes an argument and returns an integer converted into an octal string. It throws an
error TypeError, if argument type is other than an integer.
1. # Calling function
2. val = oct(10)
3. # Displaying result
4. print("Octal value of 10:",val)
Output:
Output:
56
82
38
PYTHON: 117
Python pow() Function
The python pow() function is used to compute the power of a number. It returns x to
the power of y. If the third argument(z) is given, it returns x to the power of y modulus
z, i.e. (x, y) % z.
Output:
16
16
0.0625
0.0625
Output:
PYTHON: 118
x = 7
x = 7 = y
1. # empty range
2. print(list(range(0)))
3.
4. # using the range(stop)
5. print(list(range(4)))
6.
7. # using the range(start, stop)
8. print(list(range(1,7 )))
Output:
[]
[0, 1, 2, 3]
[1, 2, 3, 4, 5, 6]
1. # for string
2. String = 'Java'
3. print(list(reversed(String)))
4.
5. # for tuple
6. Tuple = ('J', 'a', 'v', 'a')
7. print(list(reversed(Tuple)))
8.
9. # for range
10. Range = range(8, 12)
11. print(list(reversed(Range)))
12.
13. # for list
14. List = [1, 2, 7, 5]
PYTHON: 119
15. print(list(reversed(List)))
Output:
1. # for integers
2. print(round(10))
3.
4. # for floating point
5. print(round(10.8))
6.
7. # even choice
8. print(round(6.6))
Output:
10
11
7
1. class Rectangle:
2. def __init__(rectangleType):
3. print('Rectangle is a ', rectangleType)
4.
5. class Square(Rectangle):
6. def __init__(self):
7. Rectangle.__init__('square')
8.
PYTHON: 120
9. print(issubclass(Square, Rectangle))
10. print(issubclass(Square, list))
11. print(issubclass(Square, (list, Rectangle)))
12. print(issubclass(Rectangle, (list, Rectangle)))
Output:
True
False
True
True
Python str
The python str() converts a specified value into a string.
1. str('4')
Output:
'4'
1. t1 = tuple()
2. print('t1=', t1)
3.
4. # creating a tuple from a list
5. t2 = tuple([1, 6, 9])
6. print('t2=', t2)
7.
8. # creating a tuple from a string
9. t1 = tuple('Java')
10. print('t1=',t1)
11.
12. # creating a tuple from a dictionary
13. t1 = tuple({4: 'four', 5: 'five'})
14. print('t1=',t1)
PYTHON: 121
Output:
t1= ()
t2= (1, 6, 9)
t1= ('J', 'a', 'v', 'a')
t1= (4, 5)
Python type()
The python type() returns the type of the specified object if a single argument is passed
to the type() built in function. If three arguments are passed, then it returns a new type
object.
1. List = [4, 5]
2. print(type(List))
3.
4. Dict = {4: 'four', 5: 'five'}
5. print(type(Dict))
6.
7. class Python:
8. a=0
9.
10. InstanceOfPython = Python()
11. print(type(InstanceOfPython))
Output:
<class 'list'>
<class 'dict'>
<class '__main__.Python'>
1. class Python:
2. def __init__(self, x = 7, y = 9):
3. self.x = x
4. self.y = y
5.
6. InstanceOfPython = Python()
7. print(vars(InstanceOfPython))
PYTHON: 122
Output:
{'y': 9, 'x': 7}
1. numList = [4,5, 6]
2. strList = ['four', 'five', 'six']
3.
4. # No iterables are passed
5. result = zip()
6.
7. # Converting itertor to list
8. resultList = list(result)
9. print(resultList)
10.
11. # Two iterables are passed
12. result = zip(numList, strList)
13.
14. # Converting itertor to set
15. resultSet = set(result)
16. print(resultSet)
Output:
[]
{(5, 'five'), (4, 'four'), (6, 'six')}
PYTHON: 123
Python Lambda Functions
Python allows us to not declare the function in the standard manner, i.e., by using the
def keyword. Rather, the anonymous functions are declared by using lambda keyword.
However, Lambda functions can accept any number of arguments, but they can return
only one value in the form of expression.
The anonymous function contains a small piece of code. It simulates inline functions of C
and C++, but it is not exactly an inline function.
Example 1
1. x = lambda a:a+10 # a is an argument and a+10 is an expression which got evaluated
and returned.
2. print("sum = ",x(20))
Output:
sum = 30
Example 2
Multiple arguments to Lambda function
1. x = lambda a,b:a+b # a and b are the arguments and a+b is the expression which gets
evaluated and returned.
2. print("sum = ",x(20,10))
Output:
sum = 30
PYTHON: 124
Why use lambda functions?
The main role of the lambda function is better described in the scenarios when we use
them anonymously inside another function. In python, the lambda function can be used
as an argument to the higher order functions as arguments. Lambda functions are also
used in the scenario where we need a Consider the following example.
Example 1
1. #the function table(n) prints the table of n
2. def table(n):
3. return lambda a:a*n; # a will contain the iteration variable i and a multiple of n is r
eturned at each function call
4. n = int(input("Enter the number?"))
5. b = table(n) #the entered number is passed into the function table. b will contain a lamb
da function which is called again and again with the iteration variable i
6. for i in range(1,11):
7. print(n,"X",i,"=",b(i)); #the lambda function b is called with the iteration variable i,
Output:
Example 2
Use of lambda function with filter
Output:
[3, 123]
PYTHON: 125
Example 3
Use of lambda function with map
Output:
Sometimes, it is not enough to only display the data on the console. The data to be
displayed may be very large, and only a limited amount of data can be displayed on the
console, and since the memory is volatile, it is impossible to recover the
programmatically generated data again and again.
However, if we need to do so, we may store it onto the local file system which is volatile
and can be accessed every time. Here, comes the need of file handling.
In this section of the tutorial, we will learn all about file handling in python including,
creating a file, opening a file, closing a file, writing and appending the file, etc.
Opening a file
Python provides the open() function which accepts two arguments, file name and access
mode in which the file is accessed. The function returns a file object which can be used
to perform various operations like reading, writing, etc.
The files can be accessed using various modes like read, write, or append. The following
are the details about the access mode to open a file.
SN Access Description
mode
PYTHON: 126
beginning. The file is by default open in this mode if no access
mode is passed.
2 rb It opens the file to read only in binary format. The file pointer
exists at the beginning of the file.
3 r+ It opens the file to read and write both. The file pointer exists at
the beginning of the file.
4 rb+ It opens the file to read and write both in binary format. The file
pointer exists at the beginning of the file.
8 wb+ It opens the file to write and read both in binary format. The file
pointer exists at the beginning of the file.
9 a It opens the file in the append mode. The file pointer exists at the
end of the previously written file if exists any. It creates a new file
if no file exists with the same name.
10 ab It opens the file in the append mode in binary format. The pointer
exists at the end of the previously written file. It creates a new file
in binary format if no file exists with the same name.
11 a+ It opens a file to append and read both. The file pointer remains at
the end of the file if a file exists. It creates a new file if no file
exists with the same name.
12 ab+ It opens a file to append and read both in binary format. The file
PYTHON: 127
pointer remains at the end of the file.
Let's look at the simple example to open a file named "file.txt" (stored in the same directory)
in read mode and printing its content on the console.
Example
1. #opens the file file.txt in read mode
2. fileptr = open("file.txt","r")
3.
4. if fileptr:
5. print("file is opened successfully")
Output:
<class '_io.TextIOWrapper'>
file is opened successfully
We can perform any operation on the file externally in the file system is the file is opened in
python, hence it is good practice to close the file once all the operations are done.
1. fileobject.close()
Example
1. # opens the file file.txt in read mode
2. fileptr = open("file.txt","r")
3.
4. if fileptr:
5. print("file is opened successfully")
6.
7. #closes the opened file
8. fileptr.close()
PYTHON: 128
Reading the file
To read a file using the python script, the python provides us the read() method. The read()
method reads a string from the file. It can read the data in the text as well as binary format.
1. fileobj.read(<count>)
Here, the count is the number of bytes to be read from the file starting from the beginning of
the file. If the count is not specified, then it may read the content of the file until the end.
Example
1. #open the file.txt in read mode. causes error if no such file exists.
2. fileptr = open("file.txt","r");
3.
4. #stores all the data of the file into the variable content
5. content = fileptr.read(9);
6.
7. # prints the type of the data stored in the file
8. print(type(content))
9.
10. #prints the content of the file
11. print(content)
12.
13. #closes the opened file
14. fileptr.close()
Output:
<class 'str'>
Hi, I am
Consider the following example which contains a function readline() that reads the first line
of our file "file.txt" containing three lines.
PYTHON: 129
Example
1. #open the file.txt in read mode. causes error if no such file exists.
2. fileptr = open("file.txt","r");
3.
4. #stores all the data of the file into the variable content
5. content = fileptr.readline();
6.
7. # prints the type of the data stored in the file
8. print(type(content))
9.
10. #prints the content of the file
11. print(content)
12.
13. #closes the opened file
14. fileptr.close()
Output:
<class 'str'>
Hi, I am the file and being used as
Example
1. #open the file.txt in read mode. causes an error if no such file exists.
2.
3.
4. fileptr = open("file.txt","r");
5.
6. #running a for loop
7. for i in fileptr:
8. print(i) # i contains each line of the file
Output:
PYTHON: 130
Writing the file
To write some text to a file, we need to open the file using the open method with one of the
following access modes.
a: It will append the existing file. The file pointer is at the end of the file. It creates a new file
if no file exists.
w: It will overwrite the file if any file exists. The file pointer is at the beginning of the file.
Example 1
1. #open the file.txt in append mode. Creates a new file if no such file exists
.
2. fileptr = open("file.txt","a");
3.
4. #appending the content to the file
5. fileptr.write("Python is the modern day language. It makes things so simp
le.")
6.
7.
8. #closing the opened file
9. fileptr.close();
File.txt:
Example 2
1. #open the file.txt in write mode.
2. fileptr = open("file.txt","w");
3.
4. #overwriting the content of the file
5. fileptr.write("Python is the modern day language. It makes things so simp
le.")
6.
7.
PYTHON: 131
8. #closing the opened file
9. fileptr.close();
Now, we can check that all the previously written content of the file is overwritten with the
new text we have passed.
File.txt:
a: It creates a new file with the specified name if no such file exists. It appends the content to
the file if the file already exists with the specified name.
w: It creates a new file with the specified name if no such file exists. It overwrites the
existing file.
Example
1. #open the file.txt in read mode. causes error if no such file exists.
2. fileptr = open("file2.txt","x");
3.
4. print(fileptr)
5.
6. if fileptr:
7. print("File created successfully");
Output:
PYTHON: 132
Using with statement with files
The with statement was introduced in python 2.5. The with statement is useful in the case of
manipulating the files. The with statement is used in the scenario where a pair of statements
is to be executed with a block of code in between.
The advantage of using with statement is that it provides the guarantee to close the file
regardless of how the nested block exits.
It is always suggestible to use the with statement in the case of file s because, if the break,
return, or exception occurs in the nested block of code then it automatically closes the file. It
doesn't let the file to be corrupted.
Example
1. with open("file.txt",'r') as f:
2. content = f.read();
3. print(content)
Output:
Example
1. # open the file file2.txt in read mode
2. fileptr = open("file2.txt","r")
3.
4. #initially the filepointer is at 0
5. print("The filepointer is at byte :",fileptr.tell())
6.
7. #reading the content of the file
8. content = fileptr.read();
9.
PYTHON: 133
10. #after the read operation file pointer modifies. tell() returns the loc
ation of the fileptr.
11.
12. print("After reading, the filepointer is at:",fileptr.tell())
Output:
For this purpose, the python provides us the seek() method which enables us to modify the
file pointer position externally.
1. <file-ptr>.seek(offset[, from)
offset: It refers to the new position of the file pointer within the file.
from: It indicates the reference position from where the bytes are to be moved. If it is set to
0, the beginning of the file is used as the reference position. If it is set to 1, the current
position of the file pointer is used as the reference position. If it is set to 2, the end of the file
pointer is used as the reference position.
Example
1. # open the file file2.txt in read mode
2. fileptr = open("file2.txt","r")
3.
4. #initially the filepointer is at 0
5. print("The filepointer is at byte :",fileptr.tell())
6.
7. #changing the file pointer location to 10.
8. fileptr.seek(10);
9.
10. #tell() returns the location of the fileptr.
11. print("After reading, the filepointer is at:",fileptr.tell())
PYTHON: 134
Output:
Python os module
The os module provides us the functions that are involved in file processing operations like
renaming, deleting, etc.
1. rename(?current-name?, ?new-name?)
Example
1. import os;
2.
3. #rename file2.txt to file3.txt
4. os.rename("file2.txt","file3.txt")
1. remove(?file-name?)
Example
1. import os;
2.
3. #deleting the file named file3.txt
4. os.remove("file3.txt")
PYTHON: 135
Creating the new directory
The mkdir() method is used to create the directories in the current working directory. The
syntax to create the new directory is given below.
1. mkdir(?directory name?)
Example
1. import os;
2.
3. #creating a new directory with the name new
4. os.mkdir("new")
1. chdir("new-directory")
Example
1. import os;
2.
3. #changing the current working directory to new
4.
5. os.chdir("new")
1. os.getcwd()
Example
1. import os;
2.
3. #printing the current working directory
4. print(os.getcwd())
PYTHON: 136
Deleting directory
The rmdir() method is used to delete the specified directory.
1. os.rmdir(?directory name?)
Example
1. import os;
2.
3. #removing the new directory
4. os.rmdir("new")
The check_call() method of module subprocess is used to execute a python script and write
the output of that script to a file.
The following example contains two python scripts. The script file1.py executes the script
file.py and writes its output to the text file output.txt
file.py:
1. temperatures=[10,-20,-289,100]
2. def c_to_f(c):
3. if c< -273.15:
4. return "That temperature doesn't make sense!"
5. else:
6. f=c*9/5+32
7. return f
8. for t in temperatures:
9. print(c_to_f(t))
file.py:
1. import subprocess
2.
3. with open("output.txt", "wb") as f:
4. subprocess.check_call(["python", "file.py"], stdout=f)
Output:
PYTHON: 137
50
-4
That temperature doesn't make sense!
212
SN Method Description
7 File.readline([size]) It reads one line from the file and places the file
pointer to the beginning of the new line.
PYTHON: 138
13 File.writelines(seq) It writes a sequence of the strings to a file.
Python Modules
A python module can be defined as a python program file which contains a python code
including python functions, class, or variables. In other words, we can say that our
python code file saved with the extension (.py) is treated as the module. We may have a
runnable code inside the python module.
Modules in Python provides us the flexibility to organize the code in a logical way.
To use the functionality of one module into another, we must have to import the specific
module.
Example
In this example, we will create a module named as file.py which contains a function func
that contains a code to print some message on the console.
Here, we need to include this module into our main module to call the method
displayMsg() defined in the module named file.
We can import multiple modules with a single import statement, but a module is loaded
once regardless of the number of times, it has been imported into our file.
PYTHON: 139
The syntax to use the import statement is given below.
Hence, if we need to call the function displayMsg() defined in the file file.py, we have to
import that file as a module into our module as shown in the example below.
Example:
1. import file;
2. name = input("Enter the name?")
3. file.displayMsg(name)
Output:
Consider the following module named as calculation which contains three functions as
summation, multiplication, and divide.
calculation.py:
Main.py:
PYTHON: 140
Output:
Renaming a module
Python provides us the flexibility to import some module with a specific name so that we
can use this name to use that module in our python source file.
Example
1. #the module calculation of previous example is imported in this example as cal.
2. import calculation as cal;
3. a = int(input("Enter a?"));
4. b = int(input("Enter b?"));
5. print("Sum = ",cal.summation(a,b))
Output:
Enter a?10
Enter b?20
Sum = 30
Example
1. import json
2.
3. List = dir(json)
PYTHON: 141
4.
5. print(List)
Output:
1. reload(<module-name>)
for example, to reload the module calculation defined in the previous example, we must
use the following line of code.
1. reload(calculation)
Scope of variables
In Python, variables are associated with two types of scopes. All the variables defined in
a module contain the global scope unless or until it is defined within a function.
All the variables defined inside a function contain a local scope that is limited to this
function itself. We can not access a local variable globally.
If two variables are defined with the same name with the two different scopes, i.e., local
and global, then the priority will always be given to the local variable.
Example
1. name = "john"
2. def print_name(name):
3. print("Hi",name) #prints the name that is local to this function only.
4. name = input("Enter the name?")
5. print_name(name)
Output:
Hi David
PYTHON: 142
Python packages
The packages in python facilitate the developer with the application development
environment by providing a hierarchical directory structure where a package contains
sub-packages, modules, and sub-modules. The packages are used to categorize the
application level code efficiently.
Let's create a package named Employees in your home directory. Consider the following
steps.
ITEmployees.py
1. def getITNames():
2. List = ["John", "David", "Nick", "Martin"]
3. return List;
3. Similarly, create one more python file with name BPOEmployees.py and create a
function getBPONames().
4. Now, the directory Employees which we have created in the first step contains two
python modules. To make this directory a package, we need to include one more file
here, that is __init__.py which contains the import statements of the modules defined in
this directory.
__init__.py
5. Now, the directory Employees has become the package containing two python
modules. Here we must notice that we must have to create __init__.py inside a directory
to convert this directory to a package.
6. To use the modules defined inside the package Employees, we must have to import
this in our python source file. Let's create a simple python source file at our home
directory (/home) which uses the modules defined in this package.
Test.py
1. import Employees
2. print(Employees.getNames())
Output:
PYTHON: 143
['John', 'David', 'Nick', 'Martin']
We can have sub-packages inside the packages. We can nest the packages up to any
level depending upon the application requirements.
The following image shows the directory structure of an application Library management
system which contains three sub-packages as Admin, Librarian, and Student. The sub-
packages contain the python modules.
Python Exceptions
An exception can be defined as an abnormal condition in a program resulting in the
disruption in the flow of the program.
Whenever an exception occurs, the program halts the execution, and thus the further
code is not executed. Therefore, an exception is the error which python script is unable
to tackle with.
Python provides us with the way to handle the Exception so that the other part of the
code can be executed without any disruption. However, if we do not handle the
exception, the interpreter doesn't execute all the code that exists after the that.
Common Exceptions
A list of common exceptions that can be thrown from a normal python program is given
below.
PYTHON: 144
Problem without handling exceptions
As we have already discussed, the exception is an abnormal condition that halts the
execution of the program. Consider the following example.
Example
1. a = int(input("Enter a:"))
2. b = int(input("Enter b:"))
3. c = a/b;
4. print("a/b = %d"%c)
5.
6. #other code:
7. print("Hi I am other part of the program")
Output:
Enter a:10
Enter b:0
Traceback (most recent call last):
File "exception-test.py", line 3, in <module>
c = a/b;
ZeroDivisionError: division by zero
Syntax
1. try:
2. #block of code
3.
4. except Exception1:
PYTHON: 145
5. #block of code
6.
7. except Exception2:
8. #block of code
9.
10. #other code
We can also use the else statement with the try-except statement in which, we can place
the code which will be executed in the scenario if no exception occurs in the try block.
The syntax to use the else statement with the try-except statement is given below.
1. try:
2. #block of code
3.
4. except Exception1:
5. #block of code
6.
7. else:
8. #this code executes if no except block is executed
Example
1. try:
2. a = int(input("Enter a:"))
3. b = int(input("Enter b:"))
4. c = a/b;
5. print("a/b = %d"%c)
6. except Exception:
7. print("can't divide by zero")
8. else:
9. print("Hi I am else block")
PYTHON: 146
Output:
Enter a:10
Enter b:2
a/b = 5
Hi I am else block
Example
1. try:
2. a = int(input("Enter a:"))
3. b = int(input("Enter b:"))
4. c = a/b;
5. print("a/b = %d"%c)
6. except:
7. print("can't divide by zero")
8. else:
9. print("Hi I am else block")
Output:
Enter a:10
Enter b:0
can't divide by zero
Points to remember
1. Python facilitates us to not specify the exception with the except statement.
2. We can declare multiple exceptions in the except statement since the try block
may contain the statements which throw the different type of exceptions.
3. We can also specify an else block along with the try-except statement which will
be executed if no exception is raised in the try block.
4. The statements that don't throw the exception should be placed inside the else
block.
PYTHON: 147
Example
1. try:
2. #this will throw an exception if the file doesn't exist.
3. fileptr = open("file.txt","r")
4. except IOError:
5. print("File not found")
6. else:
7. print("The file opened successfully")
8. fileptr.close()
Output:
Syntax
1. try:
2. #block of code
3.
4. except (<Exception 1>,<Exception 2>,<Exception 3>,...<Exception n>)
5. #block of code
6.
7. else:
8. #block of code
Example
1. try:
2. a=10/0;
3. except ArithmeticError,StandardError:
4. print "Arithmetic Exception"
5. else:
6. print "Successfully Done"
Output:
Arithmetic Exception
PYTHON: 148
The finally block
We can use the finally block with the try block in which, we can pace the important code
which must be executed before the try statement throws an exception.
syntax
1. try:
2. # block of code
3. # this may throw an exception
4. finally:
5. # block of code
6. # this will always be executed
Example
1. try:
2. fileptr = open("file.txt","r")
3. try:
4. fileptr.write("Hi I am good")
5. finally:
6. fileptr.close()
7. print("file closed")
8. except:
9. print("Error")
Output:
file closed
Error
PYTHON: 149
Raising exceptions
An exception can be raised by using the raise clause in python. The syntax to use the
raise statement is given below.
syntax
1. raise Exception_class,<value>
Points to remember
1. To raise an exception, raise statement is used. The exception class name follows
it.
2. An exception can be provided with a value that can be given in the parenthesis.
3. To access the value "as" keyword is used. "e" is used as a reference variable
which stores the value of the exception.
Example
1. try:
2. age = int(input("Enter the age?"))
3. if age<18:
4. raise ValueError;
5. else:
6. print("the age is valid")
7. except ValueError:
8. print("The age is not valid")
Output:
Example
1. try:
2. a = int(input("Enter a?"))
3. b = int(input("Enter b?"))
4. if b is 0:
5. raise ArithmeticError;
6. else:
7. print("a/b = ",a/b)
8. except ArithmeticError:
9. print("The value of b can't be 0")
Output:
Enter a?10
PYTHON: 150
Enter b?0
The value of b can't be 0
Custom Exception
The python allows us to create our exceptions that can be raised from the program and
caught using the except clause. However, we suggest you read this section after visiting
the Python object and classes.
Example
1. class ErrorInCode(Exception):
2. def __init__(self, data):
3. self.data = data
4. def __str__(self):
5. return repr(self.data)
6.
7. try:
8. raise ErrorInCode(2000)
9. except ErrorInCode as ae:
10. print("Received error:", ae.data)
Output:
In python, the date is not a data type, but we can work with the date objects by
importing the module named with datetime, time, and calendar.
In this section of the tutorial, we will discuss how to work with the date and time objects
in python.
Tick
In python, the time instants are counted since 12 AM, 1st January 1970. The function
time() of the module time returns the total number of ticks spent since 12 AM, 1st
January 1970. A tick can be seen as the smallest unit to measure the time.
PYTHON: 151
Consider the following example.
Example
1. import time;
2.
3. #prints the number of ticks spent since 12 AM, 1st January 1970
4.
5. print(time.time())
Output:
1545124460.9151757
Example
1. import time;
2.
3. #returns a time tuple
4.
5. print(time.localtime(time.time()))
Output:
PYTHON: 152
Time tuple
The time is treated as the tuple of 9 numbers. Let's look at the members of the time
tuple.
1 Month 1 to 12
2 Day 1 to 31
3 Hour 0 to 23
4 Minute 0 to 59
5 Second 0 to 60
6 Day of weak 0 to 6
Example
1. import time;
2.
3. #returns the formatted time
4.
5. print(time.asctime(time.localtime(time.time())))
Output:
PYTHON: 153
Python sleep time
The sleep() method of time module is used to stop the execution of the script for a given
amount of time. The output will be delayed for the number of seconds given as float.
Example
1. import time
2. for i in range(0,5):
3. print(i)
4. #Each element will be printed after 1 second
5. time.sleep(1)
Output:
0
1
2
3
4
To work with dates as date objects, we have to import datetime module into the python
source code.
Consider the following example to get the datetime object representation for the current
time.
Example
1. import datetime;
2.
3. #returns the current datetime object
4.
5. print(datetime.datetime.now())
Output:
2018-12-18 16:16:45.462778
PYTHON: 154
Creating date objects
We can create the date objects by passing the desired date in the datetime constructor
for which the date objects are to be created.
Example
1. import datetime;
2.
3. #returns the datetime object for the specified date
4.
5. print(datetime.datetime(2018,12,10))
Output:
2018-12-10 00:00:00
We can also specify the time along with the date to create the datetime object. Consider
the following example.
Example
1. import datetime;
2.
3. #returns the datetime object for the specified time
4.
5. print(datetime.datetime(2018,12,10,14,15,10))
Output:
2018-12-10 14:15:10
Example
1. from datetime import datetime as dt
2. #Compares the time. If the time is in between 8AM and 4PM, then it prints working hour
s otherwise it prints fun hours
PYTHON: 155
3. if dt(dt.now().year,dt.now().month,dt.now().day,8)<dt.now()<dt(dt.now().year,dt.now(
).month,dt.now().day,16):
4. print("Working hours....")
5. else:
6. print("fun hours")
Output:
fun hours
Consider the following example to print the Calendar of the last month of 2018.
Example
1. import calendar;
2. cal = calendar.month(2018,12)
3. #printing the calendar of December 2018
4. print(cal)
Output:
PYTHON: 156
Example
1. import calendar
2.
3. #printing the calendar of the year 2019
4. calendar.prcal(2019)
Output:
PYTHON: 157
Python Regular Expressions
The regular expressions can be defined as the sequence of characters which are used
to search for a pattern in a string. The module re provides the support to use regex in
the python program. The re module throws an exception if there is some error while
using the regular expression.
1. import re
Regex Functions
The following regex functions are used in the python.
SN Function Description
1 match This method matches the regex pattern in the string with the
optional flag. It returns true if a match is found in the string
otherwise it returns false.
2 search This method returns the match object if there is a match found
in the string.
3 findall It returns a list that contains all the matches of a pattern in the
string.
4 split Returns a list in which the string has been split in each match.
PYTHON: 158
Meta-Characters
Metacharacter Description
PYTHON: 159
Special Sequences
Special sequences are the sequences containing \ followed by one of the characters.
Character Description
\A It returns a match if the specified characters are present at the beginning of the
\b It returns a match if the specified characters are present at the beginning or the
\B It returns a match if the specified characters are present at the beginning of the
\S It returns a match if the string doesn't contain any white space character.
\Z Returns a match if the specified characters are at the end of the string.
PYTHON: 160
Sets
A set is a group of characters given inside a pair of square brackets. It represents the
special meaning.
SN Set Description
1 [arn] Returns a match if the string contains any of the specified charac
2 [a-n] Returns a match if the string contains any of the characters betw
4 [0123] Returns a match if the string contains any of the specified digits.
5 [0-9] Returns a match if the string contains any digit between 0 and 9.
6 [0-5][0-9] Returns a match if the string contains any digit between 00 and 5
This method returns a list containing a list of all matches of a pattern within the
string. It returns the patterns in the order they are found. If there are no matches,
then an empty list is returned.
Example
1. import re
2.
3. str = "How are you. How is everything"
4.
5. matches = re.findall("How", str)
6.
PYTHON: 161
7. print(matches)
8.
9. print(matches)
Output:
['How', 'How']
Example
1. import re
2.
3. str = "How are you. How is everything"
4.
5. matches = re.search("How", str)
6.
7. print(type(matches))
8.
9. print(matches) #matches is the search object
Output:
<class '_sre.SRE_Match'>
<_sre.SRE_Match object; span=(0, 3), match='How'>
There are the following methods associated with the Match object.
1. span(): It returns the tuple containing the starting and end position of the
match.
2. string(): It returns a string passed into the function.
3. group(): The part of the string is returned where the match is found.
PYTHON: 162
Example
1. import re
2.
3. str = "How are you. How is everything"
4.
5. matches = re.search("How", str)
6.
7. print(matches.span())
8.
9. print(matches.group())
10.
11. print(matches.string)
Output:
(0, 3)
How
How are you. How is everything
o Object
o Class
o Method
o Inheritance
o Polymorphism
o Data Abstraction
o Encapsulation
PYTHON: 163
Object
The object is an entity that has state and behavior. It may be any real-world object like
the mouse, keyboard, chair, table, pen, etc.
Everything in Python is an object, and almost everything has attributes and methods. All
functions have a built-in attribute __doc__, which returns the doc string defined in the
function source code.
Class
The class can be defined as a collection of objects. It is a logical entity that has some
specific attributes and methods. For example: if you have an employee class then it
should contain an attribute and method, i.e. an email id, name, age, salary, etc.
Syntax
1. class ClassName:
2. <statement-1>
3. .
4. .
5. <statement-N>
Method
The method is a function that is associated with an object. In Python, a method is not
unique to class instances. Any object type can have methods.
Inheritance
Inheritance is the most important aspect of object-oriented programming which
simulates the real world concept of inheritance. It specifies that the child object acquires
all the properties and behaviors of the parent object.
By using inheritance, we can create a class which uses all the properties and behavior of
another class. The new class is known as a derived class or child class, and the one
whose properties are acquired is known as a base class or parent class.
Polymorphism
Polymorphism contains two words "poly" and "morphs". Poly means many and Morphs
means form, shape. By polymorphism, we understand that one task can be performed in
different ways. For example You have a class animal, and all animals speak. But they
speak differently. Here, the "speak" behavior is polymorphic in the sense and depends
on the animal. So, the abstract "animal" concept does not actually "speak", but specific
animals (like dogs and cats) have a concrete implementation of the action "speak".
PYTHON: 164
Encapsulation
Encapsulation is also an important aspect of object-oriented programming. It is used to
restrict access to methods and variables. In encapsulation, code and data are wrapped
together within a single unit from being modified by accident.
Data Abstraction
Data abstraction and encapsulation both are often used as synonyms. Both are nearly
synonym because data abstraction is achieved through encapsulation.
Abstraction is used to hide internal details and show only functionalities. Abstracting
something means to give names to things so that the name captures the core of what a
function or a whole program does.
3. It simulates the real world entity. So It doesn't simulate the real world.
real-world problems can be easily It works on step by step
solved through oops. instructions divided into small parts
called functions.
PYTHON: 165
5. Example of object-oriented Example of procedural languages
programming languages is C++, are: C, Fortran, Pascal, VB etc.
Java, .Net, Python, C#, etc.
Suppose a class is a prototype of a building. A building contains all the details about the
floor, doors, windows, etc. we can make as many buildings as we want, based on these
details. Hence, the building can be seen as a class, and we can create as many objects
of this class.
On the other hand, the object is the instance of a class. The process of creating an
object can be called as instantiation.
In this section of the tutorial, we will discuss creating classes and objects in python. We
will also talk about how an attribute is accessed by using the class object.
Syntax
1. class ClassName:
2. #statement_suite
In python, we must notice that each class is associated with a documentation string
which can be accessed by using <class-name>.__doc__. A class contains a statement
suite including fields, constructor, function, etc. definition.
Consider the following example to create a class Employee which contains two fields as
Employee id, and name.
The class also contains a function display() which is used to display the information of
the Employee.
PYTHON: 166
Example
1. class Employee:
2. id = 10;
3. name = "ayush"
4. def display (self):
5. print(self.id,self.name)
Here, the self is used as a reference variable which refers to the current class object. It
is always the first argument in the function definition. However, using self is optional in
the function call.
1. <object-name> = <class-name>(<arguments>)
The following example creates the instance of the class Employee defined in the above
example.
Example
1. class Employee:
2. id = 10;
3. name = "John"
4. def display (self):
5. print("ID: %d \nName: %s"%(self.id,self.name))
6. emp = Employee()
7. emp.display()
Output:
ID: 10
Name: ayush
PYTHON: 167
Python Constructor
A constructor is a special type of method (function) which is used to initialize the
instance members of the class.
1. Parameterized Constructor
2. Non-parameterized Constructor
Constructor definition is executed when we create the object of this class. Constructors
also verify that there are enough resources for the object to perform any start-up task.
Example
1. class Employee:
2. def __init__(self,name,id):
3. self.id = id;
4. self.name = name;
5. def display (self):
6. print("ID: %d \nName: %s"%(self.id,self.name))
7. emp1 = Employee("John",101)
8. emp2 = Employee("David",102)
9.
10. #accessing display() method to print employee 1 information
11.
12. emp1.display();
13.
14. #accessing display() method to print employee 2 information
15. emp2.display();
Output:
ID: 101
Name: John
ID: 102
Name: David
PYTHON: 168
Example: Counting the number of objects of a class
1. class Student:
2. count = 0
3. def __init__(self):
4. Student.count = Student.count + 1
5. s1=Student()
6. s2=Student()
7. s3=Student()
8. print("The number of students:",Student.count)
Output:
Output:
PYTHON: 169
Output:
SN Function Description
Example
1. class Student:
2. def __init__(self,name,id,age):
3. self.name = name;
4. self.id = id;
5. self.age = age
6.
7. #creates the object of the class Student
8. s = Student("John",101,22)
9.
10. #prints the attribute name of the object s
11. print(getattr(s,'name'))
12.
13. # reset the value of attribute age to 23
14. setattr(s,"age",23)
15.
16. # prints the modified value of age
17. print(getattr(s,'age'))
PYTHON: 170
18.
19. # prints true if the student contains the attribute with name id
20.
21. print(hasattr(s,'id'))
22. # deletes the attribute age
23. delattr(s,'age')
24.
25. # this will give an error since the attribute age has been deleted
26. print(s.age)
Output:
John
23
True
AttributeError: 'Student' object has no attribute 'age'
SN Attribute Description
PYTHON: 171
Example
1. class Student:
2. def __init__(self,name,id,age):
3. self.name = name;
4. self.id = id;
5. self.age = age
6. def display_details(self):
7. print("Name:%s, ID:%d, age:%d"%(self.name,self.id))
8. s = Student("John",101,22)
9. print(s.__doc__)
10. print(s.__dict__)
11. print(s.__module__)
Output:
None
{'name': 'John', 'id': 101, 'age': 22}
__main__
Python Inheritance
Inheritance is an important aspect of the object-oriented paradigm. Inheritance provides
code reusability to the program because we can use an existing class to create a new
class instead of creating it from scratch.
In inheritance, the child class acquires the properties and can access all the data
members and functions defined in the parent class. A child class can also provide its
specific implementation to the functions of the parent class. In this section of the
tutorial, we will discuss inheritance in detail.
In python, a derived class can inherit base class by just mentioning the base in the
bracket after the derived class name. Consider the following syntax to inherit a base
class into the derived class.
PYTHON: 172
Syntax
1. class derived-class(base class):
2. <class-suite>
A class can inherit multiple classes by mentioning all of them inside the bracket.
Consider the following syntax.
Syntax
1. class derive-class(<base class 1>, <base class 2>, ..... <base class n>):
2. <class - suite>
Example 1
1. class Animal:
2. def speak(self):
3. print("Animal Speaking")
4. #child class Dog inherits the base class Animal
5. class Dog(Animal):
6. def bark(self):
7. print("dog barking")
8. d = Dog()
9. d.bark()
10. d.speak()
Output:
dog barking
Animal Speaking
PYTHON: 173
The syntax of multi-level inheritance is given below.
Syntax
1. class class1:
2. <class-suite>
3. class class2(class1):
4. <class suite>
5. class class3(class2):
6. <class suite>
7. .
8. .
Example
1. class Animal:
2. def speak(self):
3. print("Animal Speaking")
4. #The child class Dog inherits the base class Animal
5. class Dog(Animal):
6. def bark(self):
7. print("dog barking")
8. #The child class Dogchild inherits another child class Dog
9. class DogChild(Dog):
10. def eat(self):
11. print("Eating bread...")
12. d = DogChild()
13. d.bark()
14. d.speak()
15. d.eat()
Output:
dog barking
Animal Speaking
Eating bread...
PYTHON: 174
Python Multiple inheritance
Python provides us the flexibility to inherit multiple base classes in the child class.
Syntax
1. class Base1:
2. <class-suite>
3.
4. class Base2:
5. <class-suite>
6. .
7. .
8. .
9. class BaseN:
10. <class-suite>
11.
12. class Derived(Base1, Base2, ...... BaseN):
13. <class-suite>
Example
1. class Calculation1:
2. def Summation(self,a,b):
3. return a+b;
4. class Calculation2:
5. def Multiplication(self,a,b):
6. return a*b;
7. class Derived(Calculation1,Calculation2):
8. def Divide(self,a,b):
9. return a/b;
10. d = Derived()
11. print(d.Summation(10,20))
12. print(d.Multiplication(10,20))
13. print(d.Divide(10,20))
PYTHON: 175
Output:
30
200
0.5
Example
1. class Calculation1:
2. def Summation(self,a,b):
3. return a+b;
4. class Calculation2:
5. def Multiplication(self,a,b):
6. return a*b;
7. class Derived(Calculation1,Calculation2):
8. def Divide(self,a,b):
9. return a/b;
10. d = Derived()
11. print(issubclass(Derived,Calculation2))
12. print(issubclass(Calculation1,Calculation2))
Output:
True
False
PYTHON: 176
Example
1. class Calculation1:
2. def Summation(self,a,b):
3. return a+b;
4. class Calculation2:
5. def Multiplication(self,a,b):
6. return a*b;
7. class Derived(Calculation1,Calculation2):
8. def Divide(self,a,b):
9. return a/b;
10. d = Derived()
11. print(isinstance(d,Derived))
Output:
True
Method Overriding
We can provide some specific implementation of the parent class method in our child
class. When the parent class method is defined in the child class with some specific
implementation, then the concept is called method overriding. We may need to perform
method overriding in the scenario where the different definition of a parent class method
is needed in the child class.
Example
1. class Animal:
2. def speak(self):
3. print("speaking")
4. class Dog(Animal):
5. def speak(self):
6. print("Barking")
7. d = Dog()
8. d.speak()
Output:
Barking
PYTHON: 177
Real Life Example of method overriding
1. class Bank:
2. def getroi(self):
3. return 10;
4. class SBI(Bank):
5. def getroi(self):
6. return 7;
7.
8. class ICICI(Bank):
9. def getroi(self):
10. return 8;
11. b1 = Bank()
12. b2 = SBI()
13. b3 = ICICI()
14. print("Bank Rate of interest:",b1.getroi());
15. print("SBI Rate of interest:",b2.getroi());
16. print("ICICI Rate of interest:",b3.getroi());
Output:
Example
1. class Employee:
2. __count = 0;
3. def __init__(self):
4. Employee.__count = Employee.__count+1
5. def display(self):
6. print("The number of employees",Employee.__count)
7. emp = Employee()
8. emp2 = Employee()
9. try:
10. print(emp.__count)
11. finally:
12. emp.display()
PYTHON: 178
Output:
PYTHON: 179
Python program to do arithmetical operations
The arithmetic operations are performed by calculator where we can perform addition,
subtraction, multiplication and division. This example shows the basic arithmetic
operations i.e.
o Addition
o Subtraction
o Multiplication
o Division
PYTHON: 180
Python program to solve quadratic equation
Quadratic equation:
Quadratic equation is made from a Latin term "quadrates" which means square. It is a
special type of equation having the form of:
ax2+bx+c=0
Here, "x" is unknown which you have to find and "a", "b", "c" specifies the numbers such
that "a" is not equal to 0. If a = 0 then the equation becomes liner not quadratic
anymore.
Output:
PYTHON: 181
Python program to swap two variables
Variable swapping:
For example:
1. data_item x := 1
2. data_item y := 0
3. swap (x, y)
After swapping:
1. data_item x := 0
2. data_item y := 1
Output:
PYTHON: 182
Python program to generate a random
number
In Python programming, you can generate a random integer, doubles, longs etc . in
various ranges by importing a "random" class.
Syntax:
First you have to import the random module and then apply the syntax:
1. import random
2. random.randint(a,b)
1. import random
2. print(random.randint(100,500))
Output:
Kilometer:
The kilometer is a unit of length in the metric system. It is equivalent to 1000 meters.
Miles:
PYTHON: 183
Conversion formula:
Output:
Fahrenheit:
Conversion formula:
PYTHON: 184
T(℉) = T(℃) x 9/5 + 32
Or,
Output:
1. import calendar
2. And then apply the syntax
3. (calendar.month(yy,mm))
1. import calendar
2. # Enter the month and year
3. yy = int(input("Enter year: "))
4. mm = int(input("Enter month: "))
5.
6. # display the calendar
7. print(calendar.month(yy,mm))
Output:
PYTHON: 185
Python Program to Add Two Matrices
What is Matrix?
1. 2 3 5
2. 8 12 7
Image representation:
In Python, matrices can be implemented as nested list. Each element of the matrix is
treated as a row. For example X = [[1, 2], [3, 4], [5, 6]] would represent a 3x2 matrix.
First row can be selected as X[0] and the element in first row, first column can be
selected as X[0][0].
PYTHON: 186
Let's take two matrices X and Y, having the following value:
1. X = [[1,2,3],
2. [4,5,6],
3. [7,8,9]]
4.
5. Y = [[10,11,12],
6. [13,14,15],
7. [16,17,18]]
1. X = [[1,2,3],
2. [4,5,6],
3. [7,8,9]]
4.
5. Y = [[10,11,12],
6. [13,14,15],
7. [16,17,18]]
8.
9. Result = [[0,0,0],
10. [0,0,0],
11. [0,0,0]]
12. # iterate through rows
13. for i in range(len(X)):
14. # iterate through columns
15. for j in range(len(X[0])):
16. result[i][j] = X[i][j] + Y[i][j]
17. for r in result:
18. print(r)
Output:
PYTHON: 187
Python Program to Multiply Two Matrices
This Python program specifies how to multiply two matrices, having some certain values.
Matrix multiplication:
Matrix multiplication is a binary operation that uses a pair of matrices to produce another
matrix. The elements within the matrix are multiplied according to elementary
arithmetic.
1.
2. X = [[1,2,3],
3. [4,5,6],
4. [7,8,9]]
5.
6. Y = [[10,11,12],
7. [13,14,15],
8. [16,17,18]]
9.
10. Result = [[0,0,0],
11. [0,0,0],
12. [0,0,0]]
13.
14. # iterate through rows of X
15. for i in range(len(X)):
16. for j in range(len(Y[0])):
17. for k in range(len(Y)):
18. result[i][j] += X[i][k] * Y[k][j]
19. for r in result:
20. print(r)
Output:
PYTHON: 188
Python Program to Transpose a Matrix
Transpose Matrix:
If you change the rows of a matrix with the column of the same matrix, it is known as
transpose of a matrix. It is denoted as X'. For example: The element at i th row and
jth column in X will be placed at jth row and ith column in X'.
1. X = [[1,2],
2. [4,5],
3. [7,8]]
1. X = [[1,2],
2. [4,5],
3. [7,8]]
4.
5. Result = [[0,0,0],
6. [0,0,0]]
7.
8. # iterate through rows
9. for i in range(len(X)):
10. for j in range(len(X[0])):
11. result[j][i] = X[i][j]
12.
13. for r in result:
14. print(r)
PYTHON: 189
Output:
PYTHON: 190
Output:
The practice, action, or system of inserting points or other small marks into texts, in
order to aid interpretation; division of text into sentences, clauses, etc., is called
punctuation. -Wikipedia
Punctuation are very powerful. They can change the entire meaning of a sentence.
o "Woman, without her man, is nothing" (the sentence boasting about men's
importance.)
o "Woman: without her, man is nothing" (the sentence boasting about women's
importance.)
1. # define punctuation
2. punctuation = '''''!()-[]{};:'"\,<>./?@#$%^&*_~'''
3. # take input from the user
4. my_str = input("Enter a string: ")
5. # remove punctuation from the string
PYTHON: 191
6. no_punct = ""
7. for char in my_str:
8. if char not in punctuation:
9. no_punct = no_punct + char
10. # display the unpunctuated string
11. print(no_punct)
Output:
PYTHON: 192
5. elif num == 0:
6. print("{0} is zero".format(num))
7. else:
8. print("{0} is negative number".format(num))
Output:
Note:In the above example, elif statement is used. The elif statement is used to check
multiple expressions for TRUE and executes a block of code when one of the conditions
becomes TRUE.
PYTHON: 193
Even number examples: 2, 4, 6, 8, 10, etc.
Output:
A year is called a leap year if it contains an additional day which makes the number of
the days in that year is 366. This additional day is added in February which makes it 29
days long.
You should follow the following steps to determine whether a year is a leap year or not.
PYTHON: 194
1. If a year is evenly divisible by 4 means having no remainder then go to next step.
If it is not divisible by 4. It is not a leap year. For example: 1997 is not a leap
year.
2. If a year is divisible by 4, but not by 100. For example: 2012, it is a leap year. If
a year is divisible by both 4 and 100, go to next step.
3. If a year is divisible by 100, but not by 400. For example: 1900, then it is not a
leap year. If a year is divisible by both, then it is a leap year. So 2000 is a leap
year.
Output:
PYTHON: 195
Python Program to Check Prime Number
Prime numbers:
A prime number is a natural number greater than 1 and having no positive divisor other
than 1 and itself.
Composite number:
Other natural numbers that are not prime numbers are called composite numbers.
Output:
PYTHON: 196
Python Program to Print all Prime Numbers
between an Interval
We have already read the concept of prime numbers in the previous program. Here, we
are going to print the prime numbers between given interval.
This example will show the prime numbers between 10 and 50.
PYTHON: 197
Output:
Output:
PYTHON: 198
Python Program to Print the Fibonacci
sequence
Fibonacci sequence:
The Fibonacci sequence specifies a series of numbers where the next number is found by
adding up the two numbers just before it.
For example:
1.
2. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, and so on....
PYTHON: 199
16. nth = n1 + n2
17. print(nth,end=' , ')
18. # update values
19. n1 = n2
20. n2 = nth
21. count += 1
Output:
A number is called Armstrong number if it is equal to the sum of the cubes of its own
digits.
For example: 153 is an Armstrong number since 153 = 1*1*1 + 5*5*5 + 3*3*3.
PYTHON: 200
6. digit = temp % 10
7. sum += digit ** 3
8. temp //= 10
9.
10. if num == sum:
11. print(num,"is an Armstrong number")
12. else:
13. print(num,"is not an Armstrong number")
Output:
PYTHON: 201
8. digit = temp % 10
9. sum += digit ** 3
10. temp //= 10
11. if num == sum:
12. print(num)
This example shows all Armstrong numbers between 100 and 500.
Output:
As the name specifies, a natural number is the number that occurs commonly and
obviously in the nature. It is a whole, non-negative number.
Some mathematicians think that a natural number must contain 0 and some don't
believe this theory. So, a list of natural number can be defined as:
1.
2. N= {0, 1, 2, 3, 4, .... and so on}
3. N= {1, 2, 3, 4, .... and so on}
PYTHON: 202
See this example:
This example shows the sum of the first 100 positive numbers (0-100)
Output:
LCM stands for Least Common Multiple. It is a concept of arithmetic and number system.
The LCM of two integers a and b is denoted by LCM (a,b). It is the smallest positive
integer that is divisible by both "a" and "b".
Multiples of 4 are:
PYTHON: 203
Multiples of 6 are:
Common multiples of 4 and 6 are simply the numbers that are in both lists:
The following example will show the LCM of 12 and 20 (according to the user input)
Output:
PYTHON: 204
Python Program to Find HCF
HCF: Highest Common Factor
Highest Common Factor or Greatest Common Divisor of two or more integers when at
least one of them is not zero is the largest positive integer that evenly divides the
numbers without a remainder. For example, the GCD of 8 and 12 is 4.
For example:
1. 1, 2, 4, 8
1. 1, 2, 3, 4, 6, 12
The following example shows the HCF of 24 and 54. (according to user input)
Output:
PYTHON: 205
Python Program to Convert Decimal to Binary,
Octal and Hexadecimal
Decimal System: The most widely used number system is decimal system. This system
is base 10 number system. In this system, ten numbers (0-9) are used to represent a
number.
Binary System: Binary system is base 2 number system. Binary system is used
because computers only understand binary numbers (0 and 1).
Output:
PYTHON: 206
Python Program To Find ASCII value of a
character
ASCII: ASCII is an acronym stands for American Standard Code for Information
Interchange. In ASCII, a specific numerical value is given to different characters and
symbols, for computers to store and manipulate.
It is case sensitive. Same character, having different format (upper case and lower case)
has different value. For example: The ASCII value of "A" is 65 while the ASCII value of
"a" is 97.
Output:
PYTHON: 207
Python Program to Make a Simple Calculator
In Python, you can create a simple calculator, displaying the different arithmetical
operations i.e. addition, subtraction, multiplication and division.
1. # define functions
2. def add(x, y):
3. """This function adds two numbers""
4. return x + y
5. def subtract(x, y):
6. """This function subtracts two numbers"""
7. return x - y
8. def multiply(x, y):
9. """This function multiplies two numbers"""
10. return x * y
11. def divide(x, y):
12. """This function divides two numbers"""
13. return x / y
14. # take input from the user
15. print("Select operation.")
16. print("1.Add")
17. print("2.Subtract")
18. print("3.Multiply")
19. print("4.Divide")
20.
21. choice = input("Enter choice(1/2/3/4):")
22.
23. num1 = int(input("Enter first number: "))
24. num2 = int(input("Enter second number: "))
25.
26. if choice == '1':
27. print(num1,"+",num2,"=", add(num1,num2))
28.
29. elif choice == '2':
30. print(num1,"-",num2,"=", subtract(num1,num2))
31.
32. elif choice == '3':
33. print(num1,"*",num2,"=", multiply(num1,num2))
34. elif choice == '4':
35. print(num1,"/",num2,"=", divide(num1,num2))
36. else:
PYTHON: 208
37. print("Invalid input")
Output:
PYTHON: 209
Python Function to Display Calendar
In Python, we can display the calendar of any month of any year by importing the
calendar module.
Output:
A Fibonacci sequence is a sequence of integers which first two terms are 0 and 1 and all
other terms of the sequence are obtained by adding their preceding two numbers.
PYTHON: 210
See this example:
1. def recur_fibo(n):
2. if n <= 1:
3. return n
4. else:
5. return(recur_fibo(n-1) + recur_fibo(n-2))
6. # take input from the user
7. nterms = int(input("How many terms? "))
8. # check if the number of terms is valid
9. if nterms <= 0:
10. print("Plese enter a positive integer")
11. else:
12. print("Fibonacci sequence:")
13. for i in range(nterms):
14. print(recur_fibo(i))
Output:
PYTHON: 211
Python Program to Find Factorial of Number
Using Recursion
Factorial: Factorial of a number specifies a product of all integers from 1 to that
number. It is defined by the symbol explanation mark (!).
1. def recur_factorial(n):
2. if n == 1:
3. return n
4. else:
5. return n*recur_factorial(n-1)
6. # take input from the user
7. num = int(input("Enter a number: "))
8. # check is the number is negative
9. if num < 0:
10. print("Sorry, factorial does not exist for negative numbers")
11. elif num == 0:
12. print("The factorial of 0 is 1")
13. else:
14. print("The factorial of",num,"is",recur_factorial(num))
Output:
PYTHON: 212