Python Tutorial

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 181
At a glance
Powered by AI
Python is a simple, general purpose, high level, and object-oriented programming language. It supports features like modules, exceptions, file I/O and is easy to learn. Guido Van Rossum created Python.

Some differences include print being a function in Python 3 vs statement in Python 2, input() automatically interpreting type in Python 3 vs raw_input() returning string in Python 2, implicit string type being Unicode in Python 3 vs ASCII in Python 2.

Features include being easy to learn and use, being an interpreted language making debugging easy, being cross-platform, being object-oriented, and being extensible by using other languages like C/C++.

Python Tutorial

Python tutorial provides basic and advanced concepts of Python. Our Python tutorial is
designed for beginners and professionals.

Python is a simple, general purpose, high level, and object-oriented programming language.

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 supports multiple programming pattern, including object-oriented, imperative, and


functional or procedural programming styles.

Python is not intended to work in a particular area, such as web programming. That is why
it is known as multipurposeprogramming 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 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.

A list of differences between Python 2 and Python 3 are given below:

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 Features
Python provides lots of features that are listed below.

1) Easy to Learn and Use

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.

5) Free and Open Source

Python language is freely available at offical web address.The source-code is also available.
Therefore it is open source.

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.

8) Large Standard Library

Python has a large and broad library and prvides rich set of module and functions for rapid
application development.

9) GUI Programming Support

Graphical user interfaces can be developed using Python.


10) Integrated

It can be easily integrated with languages like C, C++, JAVA etc.

Python History and Versions


o Python laid its foundation in the late 1980s.
o The implementation of Python was started in the December 1989 by Guido Van
Rossum at CWI in Netherland.
o In February 1991, van Rossum published the code (labeled version 0.9.0) to
alt.sources.
o In 1994, Python 1.0 was released with new features like: lambda, map, filter, and
reduce.
o Python 2.0 added new features like: list comprehensions, garbage collection system.
o On December 3, 2008, Python 3.0 (also called "Py3K") was released. It was designed
to rectify fundamental flaw of the language.
o ABC programming language is said to be the predecessor of Python language which
was capable of Exception Handling and interfacing with Amoeba Operating System.
o Python is influenced by following programming languages:
o ABC language.
o Modula-3

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 Released Date


Version

Python 1.0 January 1994

Python 1.5 December 31, 1997

Python 1.6 September 5, 2000


Python 2.0 October 16, 2000

Python 2.1 April 17, 2001

Python 2.2 December 21, 2001

Python 2.3 July 29, 2003

Python 2.4 November 30, 2004

Python 2.5 September 19, 2006

Python 2.6 October 1, 2008

Python 2.7 July 3, 2010

Python 3.0 December 3, 2008

Python 3.1 June 27, 2009

Python 3.2 February 20, 2011

Python 3.3 September 29, 2012

Python 3.4 March 16, 2014

Python 3.5 September 13, 2015

Python 3.6 December 23, 2016

Python 3.7 June 27, 2018

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.

Here, we are specifing applications areas where python can be applied.


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.

2) Desktop GUI Applications

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.

4) Scientific and Numeric

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.

6) Console Based Application

We can use Python to develop console based applications. For example: IPython.

7) Audio or Video based Applications

Python is awesome to perform multiple tasks and can be used to develop multimedia
applications. Some of real applications are: TimPlayer, cplay etc.

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.
10) Applications for Images

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

First Python Program


In this Section, we will discuss the basic syntax of python by using which, we will run a
simple program to print hello world on the console.

Python provides us the two ways to run a program:

o Using Interactive interpreter prompt


o Using a script file

Let's discuss each one of them in detail.

Interactive interpreter prompt


Python provides us the feature to execute the python statement one by one at the
interactive prompt. It is preferable in the case where we are concerned about the output of
each line of our python program.

To open the interactive mode, open the terminal (or command prompt) and type python
(python3 in case if you have python2 and python3 both installed on your system).

It will open the following prompt where we can execute the python statement and check
their impact on the console.

Let's run a python statement to print the traditional hello world on the console. Python3
provides print() function to print some message on the console. We can pass the message
as a string into this function. Consider the following image.
Here, we get the message "Hello World !" printed on the console.

Using a script file


Interpreter prompt is good to run the individual statements of the code. However, we can
not write the code every-time on the terminal.

We need to write our code into a file which can be executed later. For this purpose, open an
editor like notepad, create a file named first.py (python used .py extension) and write the
following code in it.

1. Print ("hello world"); #here, we have used print() function to print the message on the cons
ole.

To run this file named as first.py, we need to run the following command on the terminal.

$ python3 first.py

Hence, we get our output as the message Hello World ! is printed on the console.
Get Started with PyCharm
In our first program, we have used gedit on our CentOS as an editor. On Windows, we have
an alternative like notepad or notepad++ to edit the code. However, these editors are not
used as IDE for python since they are unable to show the syntax related suggestions.

JetBrains provides the most popular and a widely used cross-platform IDE PyCharm to run
the python programs.

PyCharm installation
As we have already stated, PyCharm is a cross-platform IDE, and hence it can be installed
on a variety of the operating systems. In this section of the tutorial, we will cover the
installation process of PyCharm on Windows, MacOS, CentOS, and Ubuntu.

Windows
Installing PyCharm on Windows is very simple. To install PyCharm on Windows operating
system, visit the link https://www.jetbrains.com/pycharm/download/download-
thanks.html?platform=windows to download the executable installer. Double click the
installer (.exe) file and install PyCharm by clicking next at each step.

CentOS
To install PyCharm on CentOS, visit the link https://www.javatpoint.com/how-to-install-
pycharm-on-centos. The link will guide you to install PyCharm on the CentOS.

MacOS
To install PyCharm on MacOS, visit the link https://www.javatpoint.com/how-to-install-
pycharm-on-mac. The link will guide you to install PyCharm on the MacOS.

Ubuntu
To install PyCharm on Ubuntu, visit the link https://www.javatpoint.com/how-to-install-
pycharm-in-ubuntu. The link will guide you to install PyCharm on Ubuntu.

In the upcoming section of the tutorial, we will use PyCharm to edit the python code.
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.

o The first character of the variable must be an alphabet or underscore ( _ ).


o All the characters except the first character may be an alphabet of lower-case(a-z),
upper-case (A-Z), underscore or digit (0-9).
o Identifier name must not contain any white-space, or special character (!, @, #, %,
^, &, *).
o Identifier name must not be similar to any keyword defined in the language.
o Identifier names are case sensitive for example my name, and MyName is not the
same.
o Examples of valid identifiers : a123, _n, n_9, etc.
o Examples of invalid identifiers: 1a, n%4, n 9, etc.

Declaring Variable and Assigning Values


Python does not bound us to declare variable before using in the application. It allows us to
create variable at required time.

We don't need to declare explicitly variable in Python. When we assign any value to the
variable that variable is declared automatically.

The equal (=) operator is used to assign value to a variable.

Eg:
Output:

1. >>>
2. 10
3. ravi
4. 20000.67
5. >>>

Multiple Assignment
Python allows us to assign a value to multiple variables in a single statement which is also
known as multiple assignment.

We can apply multiple assignments in two ways either by assigning a single value to
multiple variables or assigning multiple values to multiple variables. Lets see given
examples.

1. Assigning single value to multiple variables

Eg:

1. x=y=z=50
2. print iple
3. print y
4. print z

Output:

1. >>>
2. 50
3. 50
4. 50
5. >>>

2.Assigning multiple values to multiple variables:


Eg:

1. a,b,c=5,10,15
2. print a
3. print b
4. print c

Output:

1. >>>
2. 5
3. 10
4. 15
5. >>>

The values will be assigned in the order in which variables appears.

Basic Fundamentals:
This section contains the basic fundamentals of Python like :

i)Tokens and their types.

ii) Comments

a)Tokens:

o Tokens can be defined as a punctuator mark, reserved words and each individual
word in a statement.
o Token is the smallest unit inside the given program.

There are following tokens in Python:

o Keywords.
o Identifiers.
o Literals.
o Operators.

Tuples:
o Tuple is another form of collection where different type of data can be stored.
o It is similar to list where data is separated by commas. Only the difference is that list
uses square bracket and tuple uses parenthesis.
o Tuples are enclosed in parenthesis and cannot be changed.

Eg:

1. >>> tuple=('rahul',100,60.4,'deepak')
2. >>> tuple1=('sanjay',10)
3. >>> tuple
4. ('rahul', 100, 60.4, 'deepak')
5. >>> tuple[2:]
6. (60.4, 'deepak')
7. >>> tuple1[0]
8. 'sanjay'
9. >>> tuple+tuple1
10. ('rahul', 100, 60.4, 'deepak', 'sanjay', 10)
11. >>>

Dictionary:
o Dictionary is a collection which works on a key-value pair.
o It works like an associated array where no two keys can be same.
o Dictionaries are enclosed by curly braces ({}) and values can be retrieved by square
bracket([]).

Eg:

1. >>> dictionary={'name':'charlie','id':100,'dept':'it'}
2. >>> dictionary
3. {'dept': 'it', 'name': 'charlie', 'id': 100}
4. >>> dictionary.keys()
5. ['dept', 'name', 'id']
6. >>> dictionary.values()
7. ['it', 'charlie', 100]
8. >>>

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'>

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;

1. a = 3 , b = 5 #a and b are number objects

Python supports 4 types of numeric data.

1. int (signed integers like 10, 2, 29, etc.)


2. long (long integers used for a higher range of values like 908090800L, -0x1929292L,
etc.)
3. float (float is used to store floating point numbers like 1.9, 9.902, 15.2, etc.)
4. complex (complex numbers like 2.14j, 2.0 + 2.3j, etc.)

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.

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.

1. str1 = 'hello javatpoint' #string str1


2. str2 = ' how are you' #string str2
3. print (str1[0:2]) #printing first two character using slice operator
4. print (str1[4]) #printing 4th character of the string
5. print (str1*2) #printing the string twice
6. print (str1 + str2) #printing the concatenation of str1 and str2

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.

Consider the following example.

1. l = [1, "hi", "python", 2]


2. print (l[3:]);
3. print (l[0:2]);
4. print (l);
5. print (l + l);
6. print (l * 3);

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]

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.

Let's see a simple example of the 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

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
{}.

Consider the following example.

1. d = {1:'Jimmy', 2:'Alex', 3:'john', 4:'mike'};


2. print("1st name is "+d[1]);
3. print("2nd name is "+ d[4]);
4. print (d);
5. print (d.keys());
6. print (d.values());

Output:

1st name is Jimmy


2nd name is mike
{1: 'Jimmy', 2: 'Alex', 3: 'john', 4: 'mike'}
[1, 2, 3, 4]
['Jimmy', 'Alex', 'john', 'mike']

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.
True False None and as

asset def class continue break

else finally elif del except

global for if from import

raise try or return pass

nonlocal in not is lambda

Python Literals
Literals can be defined as a data that is given in a variable or constant.

Python support the following literals:

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:

There are two types of Strings supported in Python:

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.
There are two ways to create Multiline Strings:

1). Adding black slash at the end of each line.

Eg:

1. >>> text1='hello\
2. user'
3. >>> text1
4. 'hellouser'
5. >>>

2).Using triple quotation marks:-

Eg:

1. >>> str2='''''welcome
2. to
3. SSSIT'''
4. >>> print str2
5. welcome
6. to
7. SSSIT
8. >>>

II.Numeric literals:

Numeric Literals are immutable. Numeric literals can belong to following four different
numerical types.

Int(signed integers) Long(long integers) float(floating point) Complex(complex)

Numbers( can be Integers of unlimited Real numbers with In the form of a+bj where a forms the
both positive and size followed by both integer and forms the imaginary part of complex nu
negative) with no lowercase or fractional part eg: -
fractional part.eg: uppercase L eg: 26.2
100 87032845L

III. Boolean literals:

A Boolean literal can have any of the two values: True or False.

IV. Special literals.


Python contains one special literal i.e., None.

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. >>>

V.Literal Collections.

Collections such as tuples, lists and Dictionary are used in Python.

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 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 (**).

Consider the following table for a detailed explanation of arithmetic operators.

Operator Description

+ (Addition) It is used to add two operands. For example, if a = 20, b = 10 => a+b = 30

- (Subtraction) It is used to subtract the second operand from the first operand. If the first operand is less t
operand, the value result negative. For example, if a = 20, b = 10 => a ? b = 10

/ (divide) It returns the quotient after dividing the first operand by the second operand. For example, i
=> a/b = 2

* It is used to multiply one operand with the other. For example, if a = 20, b = 10 => a * b =
(Multiplication)

% (reminder) It returns the reminder after dividing the first operand by the second operand. For example,
=> a%b = 0
** (Exponent) It is an exponent operator represented as it calculates the first operand power to second ope

// (Floor It gives the floor value of the quotient produced by dividing the two operands.
division)

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 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 va
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 va
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 va
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
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.

//= A//=b will be equal to a = a// b, for example, if a = 4, b = 3, a//=b will assign 4//3 = 1 to a.

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 copied to the result. Otherwise, 0
and)

| (binary The resulting bit will be 0 if both the bits are zero otherwise the resulting bit will be 1.
or)
^ (binary The resulting bit will be 1 if both the bits are different otherwise the resulting bit will be 0.
xor)

~ It calculates the negation of each bit of the operand, i.e., if the bit is 0, the resulting bit will be 1 and
(negation)

<< (left The left operand value is moved left by the number of bits present in the right operand.
shift)

>> (right The left operand is moved right by the number of bits present in the right operand.
shift)

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 →
=> 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
=> 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

in It is evaluated to be true if the first operand is found in the second operand (list, tuple, or dictionary).
not in It is evaluated to be true if the first operand is not found in the second operand (list, tuple, or dictiona

Identity Operators

Operator Description

is It is evaluated to be true if the reference present at both sides point to the same object.

is not It is evaluated to be true if the reference present at both side do not point to the same object.

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.

~+- The negation, unary plus and minus.

* / % // The multiplication, divide, modules, reminder, and floor division.

+- Binary plus and minus

>> << Left shift and right shift

& Binary and.

^| Binary xor and or

<= < > Comparison operators (less then, less then equal to, greater then, greater then equal to).
>=

<> == Equality operators.


!=
= %= Assignment operators
/= //= -
= +=
*= **=

is is not Identity operators

in not in Membership operators

not or Logical operators


and

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.

Python supports two types of comments:

1) Single Line Comment:

In case user wants to specify a single line comment, then comment must start with ?#?

Eg:

1. # This is single line comment.


2. print "Hello Python"

Output:

Hello Python

2) Multi Line Comment:

Multi lined comment can be given inside triple quotes.


eg:

1. ''''' This
2. Is
3. Multipline comment'''

eg:

1. #single line comment


2. print "Hello Python"
3. '''''This is
4. multiline comment'''

Output:

Hello Python

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.

In python, decision making is performed by the following statements.

Statement Description

If The if statement is used to test a specific condition. If the condition is true, a block of code (if-block)
Statement

If - else The if-else statement is similar to if statement except the fact that, it also provides the block of the c
Statement case of the condition to be checked. If the condition provided in the if statement is false, then the els
be executed.

Nested if Nested if statements enable us to use if ? else statement inside an outer if statement.
Statement
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.

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:

enter the number?10


Number is even

Example 2 : Program to print the largest of the three numbers.


1. a = int(input("Enter a? "));
2. b = int(input("Enter b? "));
3. c = int(input("Enter c? "));
4. if a>b and a>c:
5. print("a is largest");
6. if b>a and b>c:
7. print("b is largest");
8. if c>a and c>b:
9. print("c is largest");

Output:

Enter a? 100
Enter b? 120
Enter c? 130
c is largest

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.
The syntax of the if-else statement is given below.

1. if condition:
2. #block of statements
3. else:
4. #another block of statements (else-block)

Example 1 : Program to check whether a person is eligible to vote


or not.
1. age = int (input("Enter your age? "))
2. if age>=18:
3. print("You are eligible to vote !!");
4. else:
5. print("Sorry! you have to wait !!");

Output:

Enter your age? 90


You are eligible to vote !!

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:

enter the number?10


Number is even

The elif statement


The elif statement enables us to check multiple conditions and execute the specific block of
statements depending upon the true condition among them. We can have any number of
elif statements in our program depending upon our need. However, using elif is optional.

The elif statement works like an if-else-if ladder statement in C. It must be succeeded by an
if statement.

The syntax of the elif statement is given below.

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

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:

Enter the number?15


number is not equal to 10, 50 or 100
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 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.

Why we use loops in python?


The looping simplifies the complex problems into the easy ones. It enables us to alter the
flow of the program so that instead of writing the same code again and again, we can
repeat the same code for a finite number of times. For example, if we need to print the first
10 natural numbers then, instead of using the print statement 10 times, we can print inside
a loop which runs up to 10 iterations.
Advantages of loops
There are the following advantages of loops in Python.

1. It provides code re-usability.


2. Using loops, we do not need to write the same code again and again.
3. Using loops, we can traverse over the elements of data structures (array or linked
lists).

There are the following loop statements in Python.

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 condi
The for loop is also called as a per-tested loop. It is better to use for loop if the number of iteration is
advance.

while The while loop is to be used in the scenario where we don't know the number of iterations in advance.
loop statements is executed in the while loop until the condition specified in the while loop is satisfied. It is
tested loop.

do-while The do-while loop continues until a given condition satisfies. It is also called post tested loop. It is use
loop necessary to execute the loop at least once (mostly menu driven programs).

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.

The syntax of for loop in python is given below.

1. for iterating_var in sequence:


2. statement(s)
Example
1. i=1
2. n=int(input("Enter the number up to which you want to print the natural numb
ers?"))
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));

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

Nested for loop in python


Python allows us to nest any number of for loops inside a for loop. The inner loop is
executed n number of times for every iteration of the outer loop. The syntax of the nested
for loop in python is given below.

1. for iterating_var1 in sequence:


2. for iterating_var2 in sequence:
3. #block of statements
4. #Other statements

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:

Enter the number of rows you want to print?5


*
**
***
****
*****

Using else statement with for loop


Unlike other languages like C, C++, or Java, python allows us to use the else statement
with the for loop which can be executed only when all the iterations are exhausted. Here,
we must notice that if the loop contains any of the break statement then the else statement
will not be executed.

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

for loop completely exhausted, since there is no break.

Example 2
1. for i in range(0,5):
2. print(i)
3. break;
4. else:print("for
loop 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:

The loop is broken due to break statement...came out of loop

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.

The syntax is given below.

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

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:

Enter the 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

Infinite while loop


If the condition given in the while loop never becomes false then the while loop will never
terminate and result into the infinite while loop.

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:

Hi! we are inside the infinite while loop


(infinite times)
Example 2
1. var = 1
2. while var != 2:
3. i = int(input("Enter the number?"))
4. print ("Entered value is %d"%(i))

Output:

Enter the number?102


Entered value is 102
Enter the number?102
Entered value is 102
Enter the number?103
Entered value is 103
Enter the number?103
(infinite loop)

Using else with Python while loop


Python enables us to use the while loop with the while loop also. The else block is executed
when the condition given in the while statement becomes false. Like for loop, if the while
loop is broken using break statement, then the else block will not be executed and the
statement present after else block will be executed.

Consider the following example.

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

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

Python break statement


The break is a keyword in python which is used to bring the program control out of the loop.
The break statement breaks the loops one by one, i.e., in the case of nested loops, it breaks
the inner loop first and then proceeds to outer loops. In other words, we can say that break
is used to abort the current execution of the program and the control goes to the next line
after the loop.

The break is commonly used in the cases where we need to break the loop for a given
condition.

The syntax of the break is given below.

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
Example 2
1. str = "python"
2. for i in str:
3. if i == 'o':
4. break
5. print(i);

Output:

p
y
t
h

Example 3: break statement with while loop


1. i = 0;
2. while 1:
3. print(i," ",end=""),
4. i=i+1;
5. if i == 10:
6. break;
7. print("came out of while loop");

Output:

0 1 2 3 4 5 6 7 8 9 came out of while loop

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

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

Do you want to continue printing the table, press 0 for no?1

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

Do you want to continue printing the table, press 0 for no?0

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.

The syntax of Python continue statement is given below.


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

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.

The syntax of the pass statement is given below.

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:

Current element: 1 Current element: 2 Current element: 3


We are inside pass block

Came out of pass

Current element: 4 Current element: 5

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.

Python Pass Syntax

1. pass

Python Pass Example


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 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.

Consider the following example in python to create a string.

1. str = "Hi Python !"

Here, if we check the type of the variable str using a python script

1. print(type(str)), then it will print string (str).

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.

Strings indexing and splitting


Like other languages, the indexing of the python strings starts from 0. For example, The string
"HELLO" is indexed as given in the below figure.
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.

Consider the following example.

Example 1
1. str = "HELLO"
2. str[0] = "h"
3. print(str)

Output:

Traceback (most recent call last):


File "12.py", line 2, in <module>
str[0] = "h";
TypeError: 'str' object does not support item assignment

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

+ It is known as concatenation operator used to join the strings given either side of the operator.

* It is known as repetition operator. It concatenates the multiple copies of the same string.

[] It is known as slice operator. It is used to access the sub-strings of a particular string.

[:] It is known as range slice operator. It is used to access the characters from the specified range.

in It is known as membership operator. It returns if a particular sub-string is present in the specified stri

not in It is also a membership operator and does the exact reverse of in. It returns true if a particular substr
in the specified string.
r/R It is used to specify the raw string. Raw strings are used in the cases where we need to print the actua
escape characters such as "C://python". To define any string as a raw string, the character r or R is fo
string.

% It is used to perform string formatting. It makes use of the format specifiers used in C programming li
map their values in python. We will discuss how formatting is done in python.

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

Python Formatting operator


Python allows us to use the format specifiers used in C's printf statement. The format specifiers
in python are treated in the same way as they are treated in C. However, Python provides an
additional operator % which is used as an interface between the format specifiers and their
values. In other words, we can say that it binds the format specifiers to the values.

Consider the following example.

1. Integer = 10;
2. Float = 1.290
3. String = "Ayush"
4. print("Hi I am Integer ... My value is %d\nHi I am float ... My value is %f\n
Hi I am string ... My value is %s"%(Integer,Float,String));

Output:

Hi I am Integer ... My value is 10


Hi I am float ... My value is 1.290000
Hi I am string ... My value is Ayush

Built-in String functions


Python provides various in-built functions that are used for string handling. Many String fun

Method Description

capitalize() It capitalizes the first character of the String. This function is deprecated in python3

casefold() It returns a version of s suitable for case-less comparisons.

center(width ,fillchar) It returns a space padded string with the original string centred with equal number o
spaces.

count(string,begin,end) It counts the number of occurrences of a substring in a String between begin and en

decode(encoding = Decodes the string using codec registered for encoding.


'UTF8', errors = 'strict')

encode() Encode S using the codec registered for encoding. Default encoding is 'utf-8'.

endswith(suffix It returns a Boolean value if the string terminates with given suffix between begin an
,begin=0,end=len(string))

expandtabs(tabsize = 8) It defines tabs in string to multiple spaces. The default space value is 8.

find(substring It returns the index value of the string where substring is found between begin index
,beginIndex, endIndex)

format(value) It returns a formatted version of S, using the passed value.


index(subsring, It throws an exception if string is not found. It works same as find() method.
beginIndex, endIndex)

isalnum() It returns true if the characters in the string are alphanumeric i.e., alphabets or num
at least 1 character. Otherwise, it returns false.

isalpha() It returns true if all the characters are alphabets and there is at least one character,

isdecimal() It returns true if all the characters of the string are decimals.

isdigit() It returns true if all the characters are digits and there is at least one character, othe

isidentifier() It returns true if the string is the valid identifier.

islower() It returns true if the characters of a string are in lower case, otherwise false.

isnumeric() It returns true if the string contains only numeric characters.

isprintable() It returns true if all the characters of s are printable or s is empty, false otherwise.

isupper() It returns false if characters of a string are in Upper case, otherwise False.

isspace() It returns true if the characters of a string are white-space, otherwise false.

istitle() It returns true if the string is titled properly and false otherwise. A title string is the o
first character is upper-case whereas the other characters are lower-case.

isupper() It returns true if all the characters of the string(if exists) is true otherwise it returns

join(seq) It merges the strings representation of the given sequence.

len(string) It returns the length of a string.

ljust(width[,fillchar]) It returns the space padded strings with the original string left justified to the given

lower() It converts all the characters of a string to Lower case.

lstrip() It removes all leading whitespaces of a string and can also be used to remove partic
from leading.

partition() It searches for the separator sep in S, and returns the part before it, the separator it
after it. If the separator is not found, return S and two empty strings.

maketrans() It returns a translation table to be used in translate function.

replace(old,new[,count]) It replaces the old sequence of characters with the new sequence. The max characte
max is given.

rfind(str,beg=0,end=len(s It is similar to find but it traverses the string in backward direction.


tr))

rindex(str,beg=0,end=len It is same as index but it traverses the string in backward direction.


(str))

rjust(width,[,fillchar]) Returns a space padded string having original string right justified to the number of
specified.

rstrip() It removes all trailing whitespace of a string and can also be used to remove particu
trailing.

rsplit(sep=None, maxsplit It is same as split() but it processes the string from the backward direction. It return
= -1) in the string. If Separator is not specified then the string splits according to the whit

split(str,num=string.count Splits the string according to the delimiter str. The string splits according to the spac
(str)) is not provided. It returns the list of substring concatenated with the delimiter.

splitlines(num=string.cou It returns the list of strings at each line with newline removed.
nt('\n'))

startswith(str,beg=0,end= It returns a Boolean value if the string starts with given str between begin and end.
len(str))

strip([chars]) It is used to perform lstrip() and rstrip() on the string.

swapcase() It inverts case of all characters in a string.

title() It is used to convert the string into the title-case i.e., The string meEruT will be con

translate(table,deletechar It translates the string according to the translation table passed in the function .
s = '')
upper() It converts all the characters of a string to Upper Case.

zfill(width) Returns original string leftpadded with zeros to a total of width characters; intended
zfill() retains any sign given (less one zero).

rpartition()

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 [].

A list can be defined as follows.

1. L1 = ["John", 102, "USA"]


2. L2 = [1, 2, 3, 4, 5, 6]
3. L3 = [1, "Ryan"]

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.

1. emp = ["John", 102, "USA"]


2. Dep1 = ["CS",10];
3. Dep2 = ["IT",11];
4. HOD_CS = [10,"Mr. Holding"]
5. HOD_IT = [11, "Mr. Bewon"]
6. print("printing employee data...");
7. print("Name : %s, ID: %d, Country: %s"%(emp[0],emp[1],emp[2]))
8. print("printing departments...");
9. print("Department 1:\nName: %s, ID: %d\nDepartment 2:\nName: %s, ID: %s"%(Dep1[
0],Dep2[1],Dep2[0],Dep2[1]));
10. print("HOD Details ....");
11. print("CS HOD Name: %s, Id: %d"%(HOD_CS[1],HOD_CS[0]));
12. print("IT HOD Name: %s, Id: %d"%(HOD_IT[1],HOD_IT[0]));
13. print(type(emp),type(Dep1),type(Dep2),type(HOD_CS),type(HOD_IT));
Output:

printing employee data...


Name : John, ID: 102, Country: USA
printing departments...
Department 1:
Name: CS, ID: 11
Department 2:
Name: IT, ID: 11
HOD Details ....
CS HOD Name: Mr. Holding, Id: 10
IT HOD Name: Mr. Bewon, Id: 11
<class 'list'> <class 'list'> <class 'list'> <class 'list'> <class 'list'>

List indexing and splitting


The indexing are processed in the same way as it happens with the strings. The elements of
the list can be accessed by using the slice operator [].

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.

Consider the following example.

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.
Updating List values
Lists are the most versatile data structures in python since they are immutable and their
values can be updated by using the slice and assignment operator.

Python also provide us the append() method which can be used to add values to the string.

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.

Consider the following example to delete the list elements.

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]
Python List Operations
The concatenation (+) and repetition (*) operator work in the same way as they were
working with the strings.

Lets see how the list responds to various operators.

1. Consider a List l1 = [1, 2, 3, 4], and l2 = [5, 6, 7, 8]

Operator Description Example

Repetition The repetition operator enables the list L1*2 = [1, 2, 3, 4, 1, 2, 3, 4]


elements to be repeated multiple times.

Concatenation It concatenates the list mentioned on l1+l2 = [1, 2, 3, 4, 5, 6, 7, 8]


either side of the operator.

Membership It returns true if a particular item exists in print(2 in l1) prints True.
a particular list otherwise false.

Iteration The for loop is used to iterate over the list for i in l1:
elements. print(i)
Output
1
2
3
4

Length It is used to get the length of the list len(l1) = 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.

1. List = ["John", "David", "James", "Jonathan"]


2. for i in List: #i will iterate over the elements of the List and contains each element in each i
teration.
3. print(i);

Output:

John
David
James
Jonathan

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 ent
ered 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 the l
ist 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:

Enter the number of elements in the list 5


Enter the item?1
Enter the item?2
Enter the item?3
Enter the item?4
Enter the item?5
printing the list items....
1 2 3 4 5

Removing elements from the list


1. List = [0,1,2,3,4]
2. print("printing original list: ");
3. for i in List:
4. print(i,end=" ")
5. List.remove(0)
6. print("\nprinting the list after the removal of first element...")
7. for i in List:
8. print(i,end=" ")

Output:

printing original list:


0 1 2 3 4
printing the list after the removal of first element...
1 2 3 4

Python List Built-in functions


Python provides the following built-in functions which can be used with the lists.

SN Function Description

1 cmp(list1, list2) It compares the elements of both the lists.

2 len(list) It is used to calculate the length of the list.

3 max(list) It returns the maximum element of the list.

4 min(list) It returns the minimum element of the list.

5 list(seq) It converts any sequence to the list.

Python List built-in methods

SN Function Description

1 list.append(obj) The element represented by the object obj is added to the list.

2 list.clear() It removes all the elements from the list.

3 List.copy() It returns a shallow copy of the list.


4 list.count(obj) It returns the number of occurrences of the specified object in the list.

5 list.extend(seq) The sequence represented by the object seq is extended to the list.

6 list.index(obj) It returns the lowest index in the list that object appears.

7 list.insert(index, The object is inserted into the list at the specified index.
obj)

8 list.pop(obj=list[- It removes and returns the last object of the list.


1])

9 list.remove(obj) It removes the specified object from the list.

10 list.reverse() It reverses the list.

11 list.sort([func]) It sorts the list by using the specified compare function if given.

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.

1. T1 = (101, "Ayush", 22)


2. T2 = ("Apple", "Banana", "Orange")

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:

(10, 20, 30, 40, 50, 60)


tuple1[0] = 10
tuple1[0] = 20
tuple1[0] = 30
tuple1[0] = 40
tuple1[0] = 50
tuple1[0] = 60

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));

Output:

Enter the tuple elements ...12345


('1', '2', '3', '4', '5')
tuple1[0] = 1
tuple1[0] = 2
tuple1[0] = 3
tuple1[0] = 4
tuple1[0] = 5

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.

An empty tuple can be written as follows.

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.

Tuple indexing and splitting


The indexing and slicing in tuple are similar to lists. The indexing in the tuple starts from 0
and goes to length(tuple) - 1.

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.

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.

Consider the following example.

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.

Consider the following example.

1. tuple1 = (1, 2, 3, 4, 5)
2. print(tuple1[-1])
3. print(tuple1[-4])

Output:

5
2
Basic Tuple operations
The operators like concatenation (+), repetition (*), Membership (in) works in the same
way as they work with the list. Consider the following table for more detail.

Let's say Tuple t = (1, 2, 3, 4, 5) and Tuple t1 = (6, 7, 8, 9) are declared.

Operator Description Example

Repetition The repetition operator enables the T1*2 = (1, 2, 3, 4, 5, 1, 2, 3, 4, 5)


tuple elements to be repeated multiple
times.

Concatenation It concatenates the tuple mentioned on T1+T2 = (1, 2, 3, 4, 5, 6, 7, 8, 9)


either side of the operator.

Membership It returns true if a particular item exists print (2 in T1) prints True.
in the tuple otherwise false.

Iteration The for loop is used to iterate over the for i in T1:
tuple elements. print(i)
Output
1
2
3
4
5

Length It is used to get the length of the tuple. len(T1) = 5

Python Tuple inbuilt functions

SN Function Description

1 cmp(tuple1, It compares two tuples and returns true if tuple1 is greater than tuple2 otherwise false.
tuple2)

2 len(tuple) It calculates the length of the tuple.


3 max(tuple) It returns the maximum element of the tuple.

4 min(tuple) It returns the minimum element of the tuple.

5 tuple(seq) It converts the specified sequence to the tuple.

Where use tuple


Using tuple instead of list is used in the following scenario.

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.

1. [(101, "John", 22), (102, "Mike", 28), (103, "Dustin", 30)]

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 by the []. The literal syntax of the tuple is shown by the ().

2 The List is mutable. The tuple is immutable.

3 The List has the variable length. The tuple has the fixed length.

4 The list provides more functionality than The tuple provides less functionality than the list.
tuple.

5 The list Is used in the scenario in which we The tuple is used in the cases where we need to store the re
need to store the simple collections with no i.e., the value of the items can not be changed. It can be us
constraints where the value of the items inside the dictionary.
can be changed.

Nesting List and tuple


We can store list inside tuple or tuple inside the list up to any number of level.

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)

Output:

----Printing list----
(101, 'Ayush', 22)
(102, 'john', 29)
(103, 'james', 45)
(104, 'Ben', 34)

----Printing list after modification----

(110, 'David', 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.

Example 1: using curly braces


1. Days = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}
2. print(Days)
3. print(type(Days))
4. print("looping through the set elements ... ")
5. for i in Days:
6. print(i)

Output:

{'Friday', 'Tuesday', 'Monday', 'Saturday', 'Thursday', 'Sunday',


'Wednesday'}
<class 'set'>
looping through the set elements ...
Friday
Tuesday
Monday
Saturday
Thursday
Sunday
Wednesday

Example 2: using set() method


1. Days = set(["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday
"])
2. print(Days)
3. print(type(Days))
4. print("looping through the set elements ... ")
5. for i in Days:
6. print(i)

Output:

{'Friday', 'Wednesday', 'Thursday', 'Saturday', 'Monday', 'Tuesday',


'Sunday'}
<class 'set'>
looping through the set elements ...
Friday
Wednesday
Thursday
Saturday
Monday
Tuesday
Sunday

Python Set operations


In the previous example, we have discussed about how the set is created in python.
However, we can perform various mathematical operations on python sets like union,
intersection, difference, etc.

Adding items to the set


Python provides the add() method which can be used to add some particular item to the
set. 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("\nAdding other months to the set...");
5. Months.add("July");
6. Months.add("August");
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:

printing the original set ...


{'February', 'May', 'April', 'March', 'June', 'January'}

Adding other months to the set...

Printing the modified set...


{'February', 'July', 'May', 'April', 'March', 'August', 'June', 'January'}

looping through the set elements ...


February
July
May
April
March
August
June
January

To add more than one item in the set, Python provides the update() method.

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("\nupdating the original set ... ")
5. Months.update(["July","August","September","October"]);
6. print("\nprinting the modified set ... ")
7. print(Months);

Output:

printing the original set ...


{'January', 'February', 'April', 'May', 'June', 'March'}

updating the original set ...

printing the modified set ...


{'January', 'February', 'April', 'August', 'October', 'May', 'June', 'July',
'September', 'March'}

Removing items from the set


Python provides discard() method which can be used to remove the items from the set.

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:

printing the original set ...


{'February', 'January', 'March', 'April', 'June', 'May'}

Removing some months from the set...


Printing the modified set...
{'February', 'March', 'April', 'June'}

looping through the set elements ...


February
March
April
June

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:

printing the original set ...


{'February', 'June', 'April', 'May', 'January', 'March'}

Removing some months from the set...

Printing the modified set...


{'February', 'June', 'April', 'March'}

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.

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.pop();
6. Months.pop();
7. print("\nPrinting the modified set...");
8. print(Months)
Output:

printing the original set ...


{'June', 'January', 'May', 'April', 'February', 'March'}

Removing some months from the set...

Printing the modified set...


{'May', 'April', 'February', 'March'}

Python provides the clear() method to remove all the items from the set.

Consider the following example.

1. Months = set(["January","February", "March", "April", "May", "June"])


2. print("\nprinting the original set ... ")
3. print(Months)
4. print("\nRemoving all the items from the set...");
5. Months.clear()
6. print("\nPrinting the modified set...")
7. print(Months)

Output:

printing the original set ...


{'January', 'May', 'June', 'April', 'March', 'February'}

Removing all the items from the set...

Printing the modified set...


set()

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.

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 items through discard() method...");
5. Months.discard("Feb"); #will not give an error although the key feb is not available in the se
t
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:

printing the original set ...


{'March', 'January', 'April', 'June', 'February', 'May'}

Removing items through discard() method...

printing the modified set...


{'March', 'January', 'April', 'June', 'February', 'May'}

Removing items through remove() method...


Traceback (most recent call last):
File "set.py", line 9, in
Months.remove("Jan")
KeyError: 'Jan'

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.

Consider the following example to calculate the union of two sets.

Example 1 : using union | operator


1. Days1 = {"Monday","Tuesday","Wednesday","Thursday"}
2. Days2 = {"Friday","Saturday","Sunday"}
3. print(Days1|Days2) #printing the union of the sets

Output:

{'Friday', 'Sunday', 'Saturday', 'Tuesday', 'Wednesday', 'Monday',


'Thursday'}
Python also provides the union() method which can also be used to calculate the union of
two sets. Consider the following example.

Example 2: using union() method


1. Days1 = {"Monday","Tuesday","Wednesday","Thursday"}
2. Days2 = {"Friday","Saturday","Sunday"}
3. print(Days1.union(Days2)) #printing the union of the sets

Output:

{'Friday', 'Monday', 'Tuesday', 'Thursday', 'Wednesday', 'Sunday',


'Saturday'}

Intersection of two sets


The & (intersection) operator is used to calculate the intersection of the two sets in python.
The intersection of the two sets are given as the set of the elements that common in both
sets.

Consider the following example.

Example 1: using & operator


1. set1 = {"Ayush","John", "David", "Martin"}
2. set2 = {"Steve","Milan","David", "Martin"}
3. print(set1&set2) #prints the intersection of the two sets

Output:

{'Martin', 'David'}

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'}

The intersection_update() method


The intersection_update() method removes the items from the original set that are not
present in both the sets (all the sets if more than one are specified).

The Intersection_update() method is different from intersection() method since it modifies


the original set by removing the unwanted items, on the other hand, intersection() method
returns a new set.

Consider the following example.

1. a = {"ayush", "bob", "castle"}


2. b = {"castle", "dude", "emyway"}
3. c = {"fuson", "gaurav", "castle"}
4.
5. a.intersection_update(b, c)
6.
7. print(a)

Output:

{'castle'}

Difference of two sets


The difference of two sets can be calculated by using the subtraction (-) operator. The
resulting set will be obtained by removing all the elements from set 1 that are present in set
2.

Consider the following example.

Example 1 : using subtraction ( - ) operator


1. Days1 = {"Monday", "Tuesday", "Wednesday", "Thursday"}
2. Days2 = {"Monday", "Tuesday", "Sunday"}
3. print(Days1-Days2) #{"Wednesday", "Thursday" will be printed}

Output:

{'Thursday', 'Wednesday'}

Example 2 : using difference() method


1. Days1 = {"Monday", "Tuesday", "Wednesday", "Thursday"}
2. Days2 = {"Monday", "Tuesday", "Sunday"}
3. print(Days1.difference(Days2)) # prints the difference of the two sets Days1 and Days2
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.

Consider the following example.

1. Days1 = {"Monday", "Tuesday", "Wednesday", "Thursday"}


2. Days2 = {"Monday", "Tuesday"}
3. Days3 = {"Monday", "Tuesday", "Friday"}
4.
5. #Days1 is the superset of Days2 hence it will print true.
6. print (Days1>Days2)
7.
8. #prints false since Days1 is not the subset of Days2
9. print (Days1<Days2)
10.
11. #prints false since Days2 and Days3 are not equivalent
12. print (Days2 == Days3)

Output:

True
False
False

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 cre
ation

Output:

<class 'frozenset'>

printing the content of frozen set...


1
2
3
4
5
Traceback (most recent call last):
File "set.py", line 6, in <module>
Frozenset.add(6) #gives an error since we can change the content of
Frozenset after creation
AttributeError: 'frozenset' object has no attribute 'add'

Frozenset for the dictionary


If we pass the dictionary as the sequence inside the frozenset() method, it will take only the
keys from the dictionary and returns a frozenset that contains the key of the dictionary as
its elements.

Consider the following example.

1. Dictionary = {"Name":"John", "Country":"USA", "ID":101}


2. print(type(Dictionary))
3. Frozenset = frozenset(Dictionary); #Frozenset will contain the keys of the dictionary
4. print(type(Frozenset))
5. for i in Frozenset:
6. print(i)

Output:

<class 'dict'>
<class 'frozenset'>
Name
Country
ID
Python Built-in set methods
Python contains the following methods to be used with the sets.

SN Method Description

1 add(item) It adds an item to the set. It has no effect if the item is already present in the set.

2 clear() It deletes all the items from the set.

3 copy() It returns a shallow copy of the set.

4 difference_upda It modifies this set by removing all the items that are also present in the specified sets
te(....)

5 discard(item) It removes the specified item from the set.

6 intersection() It returns a new set that contains only the common elements of both the sets. (all the
two are specified).

7 intersection_up It removes the items from the original set that are not present in both the sets (all the
date(....) one are specified).

8 Isdisjoint(....) Return True if two sets have a null intersection.

9 Issubset(....) Report whether another set contains this set.

10 Issuperset(....) Report whether this set contains another set.

11 pop() Remove and return an arbitrary set element that is the last element of the set. Raises K
is empty.

12 remove(item) Remove an element from a set; it must be a member. If the element is not a member,

13 symmetric_diff Remove an element from a set; it must be a member. If the element is not a member,
erence(....)

14 symmetric_diff Update a set with the symmetric difference of itself and another.
erence_update(
....)
15 union(....) Return the union of sets as a new set.
(i.e. all elements that are in either set.)

16 update() Update a set with the union of itself and others.

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.

Dictionary simulates Java hash-map in python.

Creating the dictionary


The dictionary can be created by using multiple key-value pairs enclosed with the small brackets
() and separated by the colon (:). The collections of the key-value pairs are enclosed within the
curly braces {}.

The syntax to define the dictionary is given below.

1. Dict = {"Name": "Ayush","Age": 22}

In the above dictionary Dict, The keys Name, and Age are the string that is an immutable object.

Let's see an example to create a dictionary and printing its content.

1. Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOG


LE"}
2. print(type(Employee))
3. print("printing Employee data .... ")
4. print(Employee)

Output

<class 'dict'>
printing Employee data ....
{'Age': 29, 'salary': 25000, 'Name': 'John', 'Company': 'GOOGLE'}
Accessing the dictionary values
We have discussed how the data can be accessed in the list and tuple by using the indexing.

However, the values can be accessed in the dictionary by using the keys as keys are unique in the
dictionary.

The dictionary values can be accessed in the following way.

1. Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOG


LE"}
2. print(type(Employee))
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.

Updating dictionary values


The dictionary is a mutable data type, and its values can be updated by using the specific keys.

Let's see an example to update the dictionary values.

1. Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOG


LE"}
2. print(type(Employee))
3. print("printing Employee data .... ")
4. print(Employee)
5. print("Enter the details of the new employee....");
6. Employee["Name"] = input("Name: ");
7. Employee["Age"] = int(input("Age: "));
8. Employee["salary"] = int(input("Salary: "));
9. Employee["Company"] = input("Company:");
10. print("printing the new data");
11. print(Employee)

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}

Deleting elements using del keyword


The items of the dictionary can be deleted by using the del keyword as given below.

1. Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOG


LE"}
2. print(type(Employee))
3. print("printing Employee data .... ")
4. print(Employee)
5. print("Deleting some of the employee data")
6. del Employee["Name"]
7. del Employee["Company"]
8. print("printing the modified information ")
9. print(Employee)
10. print("Deleting the dictionary: Employee");
11. del Employee
12. print("Lets try to print it again ");
13. print(Employee)

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

1. Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOG


LE"}
2. for x in Employee:
3. print(x);

Output:

Name
Company
salary
Age

Example 2
#for loop to print all the values of the dictionary

1. Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOG


LE"}
2. for x in Employee:
3. print(Employee[x]);

Output:

29
GOOGLE
John
25000

Example 3
#for loop to print the values of the dictionary by using values() method.
1. Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOG
LE"}
2. for x in Employee.values():
3. print(x);

Output:

GOOGLE
25000
John
29

Example 4
#for loop to print the items of the dictionary by using items() method.

1. Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOG


LE"}
2. for x in Employee.items():
3. print(x);

Output:

('Name', 'John')
('Age', 29)
('salary', 25000)
('Company', 'GOOGLE')

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.

Consider the following example.

1. Employee = {"Name": "John", "Age": 29, "Salary":25000,"Company":"GOO


GLE","Name":"Johnn"}
2. for x,y in Employee.items():
3. print(x,y)

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.

Consider the following example.

1. Employee = {"Name": "John", "Age": 29, "salary":25000,"Company":"GOOG


LE",[100,201,301]:"Department ID"}
2. for x,y in Employee.items():
3. print(x,y)

Output:

Traceback (most recent call last):


File "list.py", line 1, in
Employee = {"Name": "John", "Age": 29,
"salary":25000,"Company":"GOOGLE",[100,201,301]:"Department ID"}
TypeError: unhashable type: 'list'

Built-in Dictionary functions


The built-in python dictionary methods along with the description are given below.

SN Function Description

1 cmp(dict1, It compares the items of both the dictionary and returns true if the first dictio
dict2) greater than the second dictionary, otherwise it returns false.

2 len(dict) It is used to calculate the length of the dictionary.

3 str(dict) It converts the dictionary into the printable string representation.

4 type(variable) It is used to print the type of the passed variable.

Built-in Dictionary methods


The built-in python dictionary methods along with the description are given below.

SN Method Description

1 dic.clear() It is used to delete all the items of the dictionary.


2 dict.copy() It returns a shallow copy of the dictionary.

3 dict.fromkeys(iter Create a new dictionary from the iterable with the values equal to value.
able, value =
None, /)

4 dict.get(key, It is used to get the value specified for the passed key.
default = "None")

5 dict.has_key(key) It returns true if the dictionary contains the specified key.

6 dict.items() It returns all the key-value pairs as a tuple.

7 dict.keys() It returns all the keys of the dictionary.

8 dict.setdefault(key It is used to set the key to the default value if the key is not specified in the dictiona
,default= "None")

9 dict.update(dict2) It updates the dictionary by adding the key-value pair of dict2 to this dictionary.

10 dict.values() It returns all the values of the dictionary.

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.

Advantage of functions in python


There are the following advantages of C 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.

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.

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

Call by reference in Python


In python, all the functions are called by reference, i.e., all the changes made to the
reference inside the function revert back to the original value referred by the reference.

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.

Example 1 Passing Immutable Object (List)


1. #defining the function
2. def change_list(list1):
3. list1.append(20);
4. list1.append(30);
5. print("list inside function = ",list1)
6.
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:

list inside function = [10, 30, 40, 50, 20, 30]


list outside function = [10, 30, 40, 50, 20, 30]

Example 2 Passing Mutable Object (String)


1. #defining the function
2. def change_string (str):
3. str = str +" Hows you";
4. print("printing the string inside function :",str);
5.
6. string1 = "Hi I am there"
7.
8. #calling the function
9. change_string(string1)
10.
11. print("printing the string outside function :",string1)

Output:

printing the string inside function : Hi I am there Hows you


printing the string outside function : Hi I am there

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

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.

Consider the following example.

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:

Enter the name?John


Hi John

Example 2
1. #the function simple_interest accepts three arguments and returns the simple interest accor
dingly
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:

Enter the principle amount? 10000


Enter the rate of interest? 5
Enter the time in years? 2
Simple Interest: 1000.0

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:

TypeError: calculate() missing 1 required positional argument: 'b'

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.

Consider the following example.

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 Joh
n and hello respectively

Output:

printing the message with John and hello

Example 2 providing the values in different order at the calling


1. #The function simple_interest(p, t, r) is called with the keyword arguments the order of arg
uments doesn't matter in this case
2. def simple_interest(p,t,r):
3. return (p*t*r)/100
4. print("Simple Interest: ",simple_interest(t=10,r=10,p=1900))

Output:

Simple Interest: 1900.0

If we provide the different name of arguments at the time of function call, an error will be
thrown.

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)) # doesn't f
ind the exact match of the name of the arguments (keywords)

Output:

TypeError: simple_interest() got an unexpected keyword argument 'time'

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.

Consider the following example.

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 keyword a
rgument

Output:

printing the message with John , hello ,and David

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:

SyntaxError: positional argument follows keyword argument

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 def
ault value of age is considered in the function

Output:

My name is john and age is 22

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 def
ault value of age is considered in the function
4. printme(age = 10,name="David") #the value of age is overwritten here, 10 will be printed
as age

Output:

My name is john and age is 22


My name is David and age is 10

Variable length Arguments


In the large projects, sometimes we may not know the number of arguments to be passed
in advance. In such cases, Python provides us the flexibility to provide the comma
separated values which are internally treated as tuples at the function call.

However, at the function definition, we have to define the variable with * (star) as
*<variable - name >.

Consider the following example.

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:

type of passed argument is <class 'tuple'>


printing the passed arguments...
john
David
smith
nick

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.

Consider the following example.

Example 1
1. def print_message():
2. message = "hello !! I am going to print a message." # the variable message is lo
cal 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 here.

Output:

hello !! I am going to print a message.


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

Python Built-in Functions


The Python built-in functions are defined as the functions whose functionality is pre-defined
in Python. The python interpreter has several functions that are always present for use.
These functions are known as Built-in Functions. There are several built-in functions in
Python which are listed below:

Python abs() Function


The python abs() function is used to return the absolute value of a number. It takes only
one argument, a number whose absolute value is to be returned. The argument can be an
integer and floating-point number. If the argument is a complex number, then, abs()
returns its magnitude.

Python abs() Function Example

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:

Absolute value of -20 is: 20


Absolute value of -20.83 is: 20.83

Python all() Function


The python all() function accepts an iterable object (such as list, dictionary, etc.). It returns
true if all items in passed iterable are true. Otherwise, it returns False. If the iterable object
is empty, the all() function returns True.

Python all() Function Example

1. # all values true


2. k = [1, 3, 4, 6]
3. print(all(k))
4.
5. # all values false
6. k = [0, False]
7. print(all(k))
8.
9. # one false value
10. k = [1, 3, 7, 0]
11. print(all(k))
12.
13. # one true value
14. k = [0, False, 5]
15. print(all(k))
16.
17. # empty iterable
18. k = []
19. print(all(k))

Output:

True
False
False
False
True

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.

Python bin() Function Example

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.

Python bool() Example

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 bytes()
The python bytes() in Python is used for returning a bytes object. It is an immutable
version of the bytearray() function.

It can create empty bytes object of the specified size.

Python bytes() Example

1. string = "Hello World."


2. array = bytes(string, 'utf-8')
3. print(array)

Output:

b ' Hello World.'

Python callable() Function


A python callable() function in Python is something that can be called. This built-in
function checks and returns true if the object passed appears to be callable, otherwise false.

Python callable() Function Example


1. x = 8
2. print(callable(x))

Output:

False

Python compile() Function


The python compile() function takes source code as input and returns a code object which
can later be executed by exec() function.

Python compile() Function Example

1. # compile string source to code


2. code_str = 'x=5\ny=10\nprint("sum =",x+y)'
3. code = compile(code_str, 'sum.py', 'exec')
4. print(type(code))
5. exec(code)
6. exec(x)

Output:

<class 'code'>
sum = 15

Python exec() Function


The python exec() function is used for the dynamic execution of Python program which can
either be a string or object code and it accepts large blocks of code, unlike the eval()
function which only accepts a single expression.

Python exec() Function Example

1. x = 8
2. exec('print(x==8)')
3. exec('print(x+4)')

Output:

True
12
Python sum() Function
As the name says, python sum() function is used to get the sum of numbers of an iterable,
i.e., list.

Python sum() Function Example

1. s = sum([1, 2,4 ])
2. print(s)
3.
4. s = sum([1, 2, 4], 10)
5. print(s)

Output:

7
17

Python any() Function


The python any() function returns true if any item in an iterable is true. Otherwise, it
returns False.

Python any() 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
Python ascii() Function
The python ascii() function returns a string containing a printable representation of an
object and escapes the non-ASCII characters in the string using \x, \u or \U escapes.

Python ascii() Function Example

1. normalText = 'Python is interesting'


2. print(ascii(normalText))
3.
4. otherText = 'Pythön is interesting'
5. print(ascii(otherText))
6.
7. print('Pyth\xf6n is interesting')

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 bytearray() Example

1. string = "Python is a programming language."


2.
3. # string with encoding 'utf-8'
4. arr = bytearray(string, 'utf-8')
5. print(arr)

Output:

bytearray(b'Python is a programming language.')

Python eval() Function


The python eval() function parses the expression passed to it and runs python
expression(code) within the program.
Python eval() Function Example

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.

Python float() Example

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"))

Output:

9.0
8.19
-24.27
-17.19
ValueError: could not convert string to float: 'xyz'

Python format() Function


The python format() function returns a formatted representation of the given value.

Python format() Function Example


1. # d, f and b are a type
2.
3. # integer
4. print(format(123, "d"))
5.
6. # float arguments
7. print(format(123.4567898, "f"))
8.
9. # binary format
10. print(format(12, "b"))

Output:

123
123.456790
1100

Python frozenset()
The python frozenset() function returns an immutable frozenset object initialized with
elements from the given iterable.

Python frozenset() Example

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:

Frozen set is: frozenset({'o', 'm', 's', 'r', 't'})


Empty frozen set is: frozenset()

Python getattr() Function


The python getattr() function returns the value of a named attribute of an object. If it is
not found, it returns the default value.

Python getattr() Function Example


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:

The age is: 22


The age is: 22

Python globals() Function


The python globals() function returns the dictionary of the current global symbol table.

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.

Python globals() Function Example

1. age = 22
2.
3. globals()['age'] = 22
4. print('The age is:', age)

Output:

The age is: 22

Python hasattr() Function


The python any() function returns true if any item in an iterable is true, otherwise it returns
False.

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

Python iter() Function


The python iter() function is used to return an iterator object. It creates an object which
can be iterated one element at a time.

Python iter() Function Example

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'
19. print(next(listIter))
Output:

1
2
3
4
5

Python len() Function


The python len() function is used to return the length (the number of items) of an object.

Python len() Function Example

1. strA = 'Python'
2. print(len(strA))

Output:

Python list()
The python list() creates a list in python.

Python list() Example

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']
[1,2,3,4,5]
[1,2,3,4,5]

Python locals() Function


The python locals() method updates and returns the dictionary of the current local symbol
table.

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.

Python locals() Function Example

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}

Python map() Function


The python map() function is used to return a list of results after applying a given function
to each item of an iterable(list, tuple etc.).

Python map() Function Example

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)

Output:

<map object at 0x7fb04a6bec18>


{8, 2, 4, 6}

Python memoryview() Function


The python memoryview() function returns a memoryview object of the given argument.

Python memoryview () Function Example

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.

Python object() Example


1. python = object()
2.
3. print(type(python))
4. print(dir(python))

Output:

<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__']

Python open() Function


The python open() function opens the file and returns a corresponding file object.

Python open() Function Example

1. # opens python.text file of the current directory


2. f = open("python.txt")
3. # specifying full path
4. f = open("C:/Python33/README.txt")

Output:

Since the mode is omitted, the file is opened in 'r' mode; opens for reading.

Python chr() Function


Python chr() function is used to get a string representing a character which points to a
Unicode code integer. For example, chr(97) returns the string 'a'. This function takes an
integer argument and throws an error if it exceeds the specified range. The standard range
of the argument is from 0 to 1,114,111.

Python chr() Function Example

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:

ValueError: chr() arg not in range(0x110000)

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.

Python complex() Example

1. # Python complex() function example


2. # Calling function
3. a = complex(1) # Passing single parameter
4. b = complex(1,2) # Passing both parameters
5. # Displaying result
6. print(a)
7. print(b)

Output:

(1.5+0j)
(1.5+2.2j)

Python delattr() Function


Python delattr() function is used to delete an attribute from a class. It takes two
parameters, first is an object of the class and second is an attribute which we want to
delete. After deleting the attribute, it no longer available in the class and throws an error if
try to call it using the class object.

Python delattr() Function Example

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:

101 Pranshu [email protected]


AttributeError: course

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.

Python dir() Function Example

1. # Calling function
2. att = dir()
3. # Displaying result
4. print(att)

Output:

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__',


'__loader__',
'__name__', '__package__', '__spec__']

Python divmod() Function


Python divmod() function is used to get remainder and quotient of two numbers. This
function takes two numeric arguments and returns a tuple. Both arguments are required
and numeric

Python divmod() Function Example

1. # Python divmod() function example


2. # Calling function
3. result = divmod(10,2)
4. # Displaying result
5. print(result)

Output:

(5, 0)

Python enumerate() Function


Python enumerate() function returns an enumerated object. It takes two parameters, first
is a sequence of elements and the second is the start index of the sequence. We can get the
elements in sequence either through a loop or next() method.

Python enumerate() Function Example

1. # Calling function
2. result = enumerate([1,2,3])
3. # Displaying result
4. print(result)
5. print(list(result))

Output:

<enumerate object at 0x7ff641093d80>


[(0, 1), (1, 2), (2, 3)]

Python dict()
Python dict() function is a constructor which creates a dictionary. Python dictionary
provides three different constructors to create a dictionary:

o If no argument is passed, it creates an empty dictionary.


o If a positional argument is given, a dictionary is created with the same key-value
pairs. Otherwise, pass an iterable object.
o If keyword arguments are given, the keyword arguments and their values are added
to the dictionary created from the positional argument.

Python dict() Example

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}

Python filter() Function


Python filter() function is used to get filtered elements. This function takes two arguments,
first is a function and the second is iterable. The filter function returns a sequence of those
elements of iterable object for which function returns true value.

The first argument can be none, if the function is not available and returns only elements
that are true.

Python filter() Function Example

1. # Python filter() function example


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]

Python hash() Function


Python hash() function is used to get the hash value of an object. Python calculates the
hash value by using the hash algorithm. The hash values are integers and used to compare
dictionary keys during a dictionary lookup. We can hash only the types which are given
below:

Hashable types: * bool * int * long * float * string * Unicode * tuple * code object.

Python hash() Function Example


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

Python help() Function


Python help() function is used to get help related to the object passed during the call. It
takes an optional parameter and returns help information. If no argument is given, it shows
the Python help console. It internally calls python's help function.

Python help() Function Example

1. # Calling function
2. info = help() # No argument
3. # Displaying result
4. print(info)

Output:

Welcome to Python 3.5's help utility!

Python min() Function


Python min() function is used to get the smallest element from the collection. This function
takes two arguments, first is a collection of elements and second is key, and returns the
smallest element from the collection.

Python min() Function Example

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

Python set() Function


In python, a set is a built-in class, and this function is a constructor of this class. It is used
to create a new set using elements passed during the call. It takes an iterable object as an
argument and returns a new set object.

Python set() Function Example

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)

Output:

set()
{'1', '2'}
{'a', 'n', 'v', 't', 'j', 'p', 'i', 'o'}

Python hex() Function


Python hex() function is used to generate hex value of an integer argument. It takes an
integer argument and returns an integer converted into a hexadecimal string. In case, we
want to get a hexadecimal value of a float, then use float.hex() function.

Python hex() Function Example

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

Python id() Function


Python id() function returns the identity of an object. This is an integer which is guaranteed
to be unique. This function takes an argument as an object and returns a unique integer
number which represents identity. Two objects with non-overlapping lifetimes may have the
same id() value.

Python id() Function Example

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)

Output:

139963782059696
139963805666864
139963781994504

Python setattr() Function


Python setattr() function is used to set a value to the object's attribute. It takes three
arguments, i.e., an object, a string, and an arbitrary value, and returns none. It is helpful
when we want to add a new attribute to an object and set a value to it.

Python setattr() Function Example

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 slice() Function


Python slice() function is used to get a slice of elements from the collection of elements.
Python provides two overloaded slice functions. The first function takes a single argument
while the second function takes three arguments and returns a slice object. This slice object
can be used to get a subsection of the collection.

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)

Python sorted() Function


Python sorted() function is used to sort elements. By default, it sorts elements in an
ascending order but can be sorted in descending also. It takes four arguments and returns a
collection in sorted order. In the case of a dictionary, it sorts only keys, not values.

Python sorted() Function Example


1. str = "javatpoint" # declaring string
2. # Calling function
3. sorted1 = sorted(str) # sorting string
4. # Displaying result
5. print(sorted1)

Output:

['a', 'a', 'i', 'j', 'n', 'o', 'p', 't', 't', 'v']

Python next() Function


Python next() function is used to fetch next item from the collection. It takes two
arguments, i.e., an iterator and a default value, and returns an element.

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 next() Function Example

1. number = iter([256, 32, 82]) # Creating iterator


2. # Calling function
3. item = next(number)
4. # Displaying result
5. print(item)
6. # second item
7. item = next(number)
8. print(item)
9. # third item
10. item = next(number)
11. print(item)

Output:

256
32
82

Python input() Function


Python input() function is used to get an input from the user. It prompts for the user input
and reads a line. After reading data, it converts it into a string and returns it. It throws an
error EOFError if EOF is read.
Python input() Function Example

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

Python int() Function


Python int() function is used to get an integer value. It returns an expression converted
into an integer number. If the argument is a floating-point, the conversion truncates the
number. If the argument is outside the integer range, then it converts the number into a
long type.

If the number is not a number or if a base is given, the number must be a string.

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

Python isinstance() Function


Python isinstance() function is used to check whether the given object is an instance of
that class. If the object belongs to the class, it returns true. Otherwise returns False. It also
returns true if the class is a subclass.

The isinstance() function takes two arguments, i.e., object and classinfo, and then it
returns either True or False.

Python isinstance() function Example


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 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.

Python oct() function Example

1. # Calling function
2. val = oct(10)
3. # Displaying result
4. print("Octal value of 10:",val)

Output:

Octal value of 10: 0o12

Python ord() Function


The python ord() function returns an integer representing Unicode code point for the given
Unicode character.

Python ord() function Example


1. # Code point of an integer
2. print(ord('8'))
3.
4. # Code point of an alphabet
5. print(ord('R'))
6.
7. # Code point of a character
8. print(ord('&'))

Output:

56
82
38

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.

Python pow() function Example

1. # positive x, positive y (x**y)


2. print(pow(4, 2))
3.
4. # negative x, positive y
5. print(pow(-4, 2))
6.
7. # positive x, negative y (x**-y)
8. print(pow(4, -2))
9.
10. # negative x, negative y
11. print(pow(-4, -2))

Output:

16
16
0.0625
0.0625
Python print() Function
The python print() function prints the given object to the screen or other standard output
devices.

Python print() function Example

1. print("Python is programming language.")


2.
3. x = 7
4. # Two objects passed
5. print("x =", x)
6.
7. y = x
8. # Three objects passed
9. print('x =', x, '= y')

Output:

Python is programming language.


x = 7
x = 7 = y

Python range() Function


The python range() function returns an immutable sequence of numbers starting from 0 by
default, increments by 1 (by default) and ends at a specified number.

Python range() function Example

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]
Python reversed() Function
The python reversed() function returns the reversed iterator of the given sequence.

Python reversed() function Example

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]
15. print(list(reversed(List)))

Output:

['a', 'v', 'a', 'J']


['a', 'v', 'a', 'J']
[11, 10, 9, 8]
[5, 7, 2, 1]

Python round() Function


The python round() function rounds off the digits of a number and returns the floating
point number.

Python round() Function Example

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

Python issubclass() Function


The python issubclass() function returns true if object argument(first argument) is a
subclass of second class(second argument).

Python issubclass() Function Example

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.
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.

Python str() Function Example


1. str('4')

Output:

'4'

Python tuple() Function


The python tuple() function is used to create a tuple object.

Python tuple() Function Example

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)

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.

Python type() Function Example

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'>

Python vars() function


The python vars() function returns the __dict__ attribute of the given object.

Python vars() Function Example

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))

Output:

{'y': 9, 'x': 7}

Python zip() Function


The python zip() Function returns a zip object, which maps a similar index of multiple
containers. It takes iterables (can be zero or more), makes it an iterator that aggregates
the elements based on iterables passed, and returns an iterator of tuples.

Python zip() Function Example


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 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.

The syntax to define an Anonymous function is given below.

1. lambda arguments : expression

Example 1
1. x = lambda a:a+10 # a is an argument and a+10 is an expression which got evaluated an
d 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 ev
aluated and returned.
2. print("sum = ",x(20,10))

Output:

sum = 30

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 retur
ned 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 lambda
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:

Enter the 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 2
Use of lambda function with filter

1. #program to filter out the list which contains odd numbers


2. List = {1,2,3,4,10,123,22}
3. Oddlist = list(filter(lambda x:(x%3 == 0),List)) # the list contains all the items of the list f
or which the lambda function evaluates to true
4. print(Oddlist)

Output:

[3, 123]

Example 3
Use of lambda function with map

1. #program to triple each number of the list using map


2. List = {1,2,3,4,10,123,22}
3. new_list = list(map(lambda x:x*3,List)) # this will return the triple of each item of the list
and add it to new_list
4. print(new_list)

Output:

[3, 6, 9, 12, 30, 66, 369]

Python File Handling


Till now, we were taking the input from the console and writing it back to the console to
interact with the user.

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 syntax to use the open() function is given below.

1. file object = open(<file-name>, <access-mode>, <buffering>)

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

1 r It opens the file to read-only. The file pointer exists at the beginning. The file is by default open in
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 o

5 w It opens the file to write only. It overwrites the file if previously exists or creates a new one if no f
same name. The file pointer exists at the beginning of the file.

6 wb It opens the file to write only in binary format. It overwrites the file if it exists previously or create
file exists with the same name. The file pointer exists at the beginning of the file.

7 w+ It opens the file to write and read both. It is different from r+ in the sense that it overwrites the p
exists whereas r+ doesn't overwrite the previously written file. It creates a new file if no file exist
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 o

9 a It opens the file in the append mode. The file pointer exists at the end of the previously written fi
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 previou
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 exis
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 pointer remains at the end of the
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

The close() method


Once all the operations are done on the file, we must close it through our python script using the
close() method. Any unwritten information gets destroyed once the close() method is called on a
file object.

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.

The syntax to use the close() method is given below.

1. fileobject.close()

Consider the following example.

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()

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.

The syntax of the read() method is given below.

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.

Consider the following example.

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
Read Lines of the file
Python facilitates us to read the file line by line by using a function readline(). The readline()
method reads the lines of the file from the beginning, i.e., if we use the readline() method two
times, then we can get the first two lines of the file.

Consider the following example which contains a function readline() that reads the first line of
our file "file.txt" containing three lines.

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

Looping through the file


By looping through the lines of the file, we can read the whole file.

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:

Hi, I am the file and being used as


an example to read a
file in python.

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.

Consider the following example.

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 simple.
")
6.
7.
8. #closing the opened file
9. fileptr.close();

Now, we can see that the content of the file is modified.

File.txt:

1. Hi, I am the file and being used as


2. an example to read a
3. file in python.
4. Python is the modern day language. It makes things so simple.
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 simple.
")
6.
7.
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:

1. Python is the modern day language. It makes things so simple.

Creating a new file


The new file can be created by using one of the following access modes with the function
open(). x: it creates a new file with the specified name. It causes an error a file exists with the
same name.

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.

Consider the following example.

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:

File created successfully

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 syntax to open a file using with statement is given below.

1. with open(<file name>, <access mode>) as <file-pointer>:


2. #statement suite

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.

Consider the following example.

Example
1. with open("file.txt",'r') as f:
2. content = f.read();
3. print(content)

Output:

Python is the modern day language. It makes things so simple.

File Pointer positions


Python provides the tell() method which is used to print the byte number at which the file pointer
exists. Consider the following example.

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.
10. #after the read operation file pointer modifies. tell() returns the locatio
n of the fileptr.
11.
12. print("After reading, the filepointer is at:",fileptr.tell())

Output:

The filepointer is at byte : 0


After reading, the filepointer is at 26

Modifying file pointer position


In the real world applications, sometimes we need to change the file pointer location externally
since we may need to read or write the content at various locations.

For this purpose, the python provides us the seek() method which enables us to modify the file
pointer position externally.

The syntax to use the seek() method is given below.

1. <file-ptr>.seek(offset[, from)

The seek() method accepts two parameters:

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.

Consider the following example.

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())

Output:

The filepointer is at byte : 0


After reading, the filepointer is at 10

Python os module
The os module provides us the functions that are involved in file processing operations like
renaming, deleting, etc.

Let's look at some of the os module functions.

Renaming the file


The os module provides us the rename() method which is used to rename the specified file to a
new name. The syntax to use the rename() method is given below.

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")

Removing the file


The os module provides us the remove() method which is used to remove the specified file. The
syntax to use the remove() method is given below.

1. remove(?file-name?)
Example
1. import os;
2.
3. #deleting the file named file3.txt
4. os.remove("file3.txt")

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")

Changing the current working directory


The chdir() method is used to change the current working directory to a specified directory.

The syntax to use the chdir() method is given below.

1. chdir("new-directory")

Example
1. import os;
2.
3. #changing the current working directory to new
4.
5. os.chdir("new")

The getcwd() method


This method returns the current working directory.
The syntax to use the getcwd() method is given below.

1. os.getcwd()

Example
1. import os;
2.
3. #printing the current working directory
4. print(os.getcwd())

Deleting directory
The rmdir() method is used to delete the specified directory.

The syntax to use the rmdir() method is given below.

1. os.rmdir(?directory name?)

Example
1. import os;
2.
3. #removing the new directory
4. os.rmdir("new")

Writing python output to the files


In python, there are the requirements to write the output of a python script to a file.

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:

50
-4
That temperature doesn't make sense!
212

The file related methods


The file object provides the following methods to manipulate the files on various operating
systems.

SN Method Description

1 file.close() It closes the opened file. The file once closed, it can't be read or write any more.

2 File.fush() It flushes the internal buffer.

3 File.fileno() It returns the file descriptor used by the underlying implementation to request I/O from th

4 File.isatty() It returns true if the file is connected to a TTY device, otherwise returns false.

5 File.next() It returns the next line from the file.

6 File.read([si It reads the file for the specified size.


ze])

7 File.readline It reads one line from the file and places the file pointer to the beginning of the new line.
([size])

8 File.readline It returns a list containing all the lines of the file. It reads the file until the EOF occurs usin
s([sizehint]) function.

9 File.seek(off It modifies the position of the file pointer to a specified offset with the specified reference.
set[,from)

10 File.tell() It returns the current position of the file pointer within the file.

11 File.truncate It truncates the file to the optional specified size.


([size])

12 File.write(st It writes the specified string to a file


r)

13 File.writelin It writes a sequence of the strings to a file.


es(seq)

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.

Let's create the module named as file.py.

1. #displayMsg prints a message to the name being passed.


2. def displayMsg(name)
3. print("Hi "+name);
Here, we need to include this module into our main module to call the method displayMsg()
defined in the module named file.

Loading the module in our python code


We need to load the module in our python code to use its functionality. Python provides two
types of statements as defined below.

1. The import statement


2. The from-import statement

The import statement


The import statement is used to import all the functionality of one module into another.
Here, we must notice that we can use the functionality of any python source file by
importing that file as the module into another python source 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.

The syntax to use the import statement is given below.

1. import module1,module2,........ module n

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:

Enter the name?John


Hi John

The from-import statement


Instead of importing the whole module into the namespace, python provides the flexibility
to import only the specific attributes of a module. This can be done by using from? import
statement. The syntax to use the from-import statement is given below.

1. from < module-name> import <name 1>, <name 2>..,<name n>


Consider the following module named as calculation which contains three functions as
summation, multiplication, and divide.

calculation.py:

1. #place the code in the calculation.py


2. def summation(a,b):
3. return a+b
4. def multiplication(a,b):
5. return a*b;
6. def divide(a,b):
7. return a/b;

Main.py:

1. from calculation import summation


2. #it will import only the summation() from calculation.py
3. a = int(input("Enter the first number"))
4. b = int(input("Enter the second number"))
5. print("Sum = ",summation(a,b)) #we do not need to specify the module name while acce
ssing summation()

Output:

Enter the first number10


Enter the second number20
Sum = 30

The from...import statement is always better to use if we know the attributes to be


imported from the module in advance. It doesn't let our code to be heavier. We can also
import all the attributes from a module by using *.

Consider the following syntax.

1. from <module> import *

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.

The syntax to rename a module is given below.

1. import <module-name> as <specific-name>


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

Using dir() function


The dir() function returns a sorted list of names defined in the passed module. This list
contains all the sub-modules, variables and functions defined in this module.

Consider the following example.

Example
1. import json
2.
3. List = dir(json)
4.
5. print(List)

Output:

['JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__builtins__',


'__cached__', '__doc__',
'__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__',
'__version__',
'_default_decoder', '_default_encoder', 'decoder', 'dump', 'dumps',
'encoder', 'load', 'loads', 'scanner']

The reload() function


As we have already stated that, a module is loaded once regardless of the number of times
it is imported into the python source file. However, if you want to reload the already
imported module to re-execute the top-level code, python provides us the reload() function.
The syntax to use the reload() function is given below.

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.

Consider the following example.

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 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.

1. Create a directory with name Employees on path /home.

2. Create a python source file with name ITEmployees.py on the path /home/Employees.

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

1. from ITEmployees import getITNames


2. from BPOEmployees import getBPONames

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:

['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.

1. ZeroDivisionError: Occurs when a number is divided by zero.


2. NameError: It occurs when a name is not found. It may be local or global.
3. IndentationError: If incorrect indentation is given.
4. IOError: It occurs when Input Output operation fails.
5. EOFError: It occurs when the end of the file is reached, and yet operations are
being performed.

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

Exception handling in python


If the python program contains suspicious code that may throw the exception, we must
place that code in the try block. The try block must be followed with the except statement
which contains a block of code that will be executed if there is some exception in the try
block.

Syntax
1. try:
2. #block of code
3.
4. except Exception1:
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")

Output:

Enter a:10
Enter b:2
a/b = 5
Hi I am else block

The except statement with no exception


Python provides the flexibility not to specify the name of exception with the except
statement.

Consider the following example.

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.

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:

File not found

Declaring multiple exceptions


The python allows us to declare the multiple exceptions with the except clause. Declaring
multiple exceptions is useful in the cases where a try block throws multiple exceptions.

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

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.

The syntax to use the finally block is given below.


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

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:

Enter the age?17


The age is not valid

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
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.

Consider the following example.

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:

Received error: 2000

Python Date and time


In the real world applications, there are the scenarios where we need to work with the date
and time. There are the examples in python where we have to schedule the script to run at
some particular timings.

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.

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

How to get the current time?


The localtime() functions of the time module are used to get the current time tuple.
Consider the following example.

Example
1. import time;
2.
3. #returns a time tuple
4.
5. print(time.localtime(time.time()))

Output:

time.struct_time(tm_year=2018, tm_mon=12, tm_mday=18, tm_hour=15, tm_min=1,


tm_sec=32, tm_wday=1, tm_yday=352, tm_isdst=0)

Time tuple
The time is treated as the tuple of 9 numbers. Let's look at the members of the time tuple.

Index Attribute Values

0 Year 4 digit (for example 2018)

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

7 Day of year 1 to 366

8 Daylight -1, 0, 1 , or -1
savings

Getting formatted time


The time can be formatted by using the asctime() function of time module. It returns the
formatted time for the time tuple being passed.

Example
1. import time;
2.
3. #returns the formatted time
4.
5. print(time.asctime(time.localtime(time.time())))

Output:

Tue Dec 18 15:31:39 2018

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.

Consider the following example.

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

The datetime Module


The datetime module enables us to create the custom date objects, perform various
operations on dates like the comparison, etc.

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

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.

Consider the following example.


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

Comparison of two dates


We can compare two dates by using the comparison operators like >, >=, <, and <=.

Consider the following example.

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 hours ot
herwise it prints fun hours
3. if dt(dt.now().year,dt.now().month,dt.now().day,8)<dt.now()<dt(dt.now().year,dt.now().m
onth,dt.now().day,16):
4. print("Working hours....")
5. else:
6. print("fun hours")

Output:

fun hours

The calendar module


Python provides a calendar object that contains various methods to work with the
calendars.

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:

Printing the calendar of whole year


The prcal() method of calendar module is used to print the calendar of the whole year. The
year of which the calendar is to be printed must be passed into this method.

Example
1. import calendar
2.
3. #printing the calendar of the year 2019
4. calendar.prcal(2019)
Output:

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.

The re module must be imported to use the regex functionalities in python.

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 ma
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.

5 sub Replace one or many matches in the string.

Forming a regular expression


A regular expression can be formed by using the mix of meta-characters, special sequences,
and sets.

Meta-Characters
Metacharacter is a character with the specified meaning.

Metacharacter Description

[] It represents the set of characters.

\ It represents the special sequence.

. It signals that any character is present at some specific place.

^ It represents the pattern present at the beginning of the string.

$ It represents the pattern present at the end of the string.

* It represents zero or more occurrences of a pattern in the string.

+ It represents one or more occurrences of a pattern in the string.

{} The specified number of occurrences of a pattern the string.

| It represents either this or that character is present.


() Capture and group

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 string.

\b It returns a match if the specified characters are present at the beginning or the end of the string.

\B It returns a match if the specified characters are present at the beginning of the string but not at the e

\d It returns a match if the string contains digits [0-9].

\D It returns a match if the string doesn't contain the digits [0-9].

\s It returns a match if the string contains any white space character.

\S It returns a match if the string doesn't contain any white space character.

\w It returns a match if the string contains any word characters.

\W It returns a match if the string doesn't contain any word.

\Z Returns a match if the specified characters are at the end of the string.

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 characters in the set.

2 [a-n] Returns a match if the string contains any of the characters between a to n.

3 [^arn] Returns a match if the string contains the characters except a, r, and n.

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 59.

10 [a-zA-Z] Returns a match if the string contains any alphabet (lower-case or upper-case).

The findall() function


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.

Consider the following example.

Example

1. import re
2.
3. str = "How are you. How is everything"
4.
5. matches = re.findall("How", str)
6.
7. print(matches)
8.
9. print(matches)

Output:
['How', 'How']

The match object


The match object contains the information about the search and the output. If there is no
match found, the None object is returned.

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'>

The Match object methods


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.

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

Python List Comprehension


List Comprehension is defined as an elegant way to define, create a list in Python and
consists of brackets that contains an expression followed by for clause. It is efficient in both
computationally and in terms of coding space and time.

Signature
The list comprehension starts with '[' and ']'.

[ expression for item in list if conditional ]

Example
1. letters = []
2. for letter in 'Python':
3. letters.append(letter)
4. print(letters)

Output:

['P', 'y', 't', 'h', 'o', 'n']

Example
1. letters = [ letter for letter in 'Python' ]
2. print( letters)

Output:

['P', 'y', 't', 'h', 'o', 'n']

Example
1. x = {'chrome': 'browser', 'Windows': 'OS', 'C': 'language'}
2. x['mouse'] = 'hardware'
3. print(x['Windows'])

Output:
OS

Python Collection Module


The Python collection module is defined as a container that is used to store collections of
data, for example, list, dict, set, and tuple, etc. It was introduced to improve the
functionalities of the built-in collection containers.

Python collection module was first introduced in its 2.4 release.

There are different types of collection modules which are as follows:

namedtuple()
The python namedtuple() function returns a tuple-like object with names for each position
in the tuple. It was used to eliminate the problem of remembering the index of each field of
a tuple object in ordinary tuples.

Examples

1. pranshu = ('Pranshu', 24, 'M')


2. print(pranshu)

Output:

('Pranshu', 24, 'M')

OrderedDict()
The Python OrderedDict() is similar to a dictionary object where keys maintain the order of
insertion. If we try to insert key again, the previous value will be overwritten for that key.

Example

1. import collections
2. d1=collections.OrderedDict()
3. d1['A']=10
4. d1['C']=12
5. d1['B']=11
6. d1['D']=13
7.
8. for k,v in d1.items():
9. print (k,v)
Output:

A 10
C 12
B 11
D 13

defaultdict()
The Python defaultdict() is defined as a dictionary-like object. It is a subclass of the built-in
dict class. It provides all methods provided by dictionary but takes the first argument as a
default data type.

Example

1. from collections import defaultdict


2. number = defaultdict(int)
3. number['one'] = 1
4. number['two'] = 2
5. print(number['three'])

Output:

Counter()
The Python Counter is a subclass of dictionary object which helps to count hashable objects.

Example

1. from collections import Counter


2. c = Counter()
3. list = [1,2,3,4,5,7,8,5,9,6,10]
4. Counter(list)
5. Counter({1:5,2:4})
6. list = [1,2,4,7,5,1,6,7,6,9,1]
7. c = Counter(list)
8. print(c[1])

Output:

deque()
The Python deque() is a double-ended queue which allows us to add and remove elements
from both the ends.

Example

1. from collections import deque


2. list = ["x","y","z"]
3. deq = deque(list)
4. print(deq)

Output:

deque(['x', 'y', 'z'])

Python math module


Python math module is defined as the most popular mathematical functions, which includes
trigonometric functions, representation functions, logarithmic functions, etc. Furthermore, it
also defines two mathematical constants, i.e., Pie and Euler number, etc.

Pie (n): It is a well-known mathematical constant and defined as the ratio of circumstance
to the diameter of a circle. Its value is 3.141592653589793.

Euler's number(e): It is defined as the base of the natural logarithmic, and its value is
2.718281828459045.

There are different math modules which are given below:

math.log()
This method returns the natural logarithm of a given number. It is calculated to the base e.

Example

1. import math
2. number = 2e-7 # small value of of x
3. print('log(fabs(x), base) is :', math.log(math.fabs(number), 10))

Output:

log(fabs(x), base) is : -6.698970004336019

math.log10()
This method returns base 10 logarithm of the given number and called the standard
logarithm.

Example

1. import math
2. x=13 # small value of of x
3. print('log10(x) is :', math.log10(x))

Output:

log10(x) is : 1.1139433523068367

math.exp()
This method returns a floating-point number after raising e to the given number.

Example

1. import math
2. number = 5e-2 # small value of of x
3. print('The given number (x) is :', number)
4. print('e^x (using exp() function) is :', math.exp(number)-1)

Output:

The given number (x) is : 0.05


e^x (using exp() function) is : 0.05127109637602412

math.sqrt()
This function returns the square root of any given number.

Example

1. import math
2. x = 20
3. y = 14
4. z = 17.8995
5. print('sqrt of 20 is ', math.sqrt(x))
6. print('sqrt of 14 is ', math.sqrt(y))
7. print('sqrt of 17.8995 is ', math.sqrt(z))

Output:
sqrt of 20 is 4.47213595499958
sqrt of 14 is 3.7416573867739413
sqrt of 17.8995 is 4.230780069916185

math.expm1()
This method returns e raised to the power of any number minus 1. e is the base of natural
logarithm.

Example

1. import math
2. number = 2e-1 # small value of of x
3. print('The given number (x) is :', number)
4. print('e^x (using expml() function) is :', math.expm1(number))

Output:

The given number (x) is : 0.2


e^x (using expml() function) is : 0.22140275816016985

math.cos()
It returns the cosine of any number, in radians.

Example

1. import math
2. angleInDegree = 60
3. angleInRadian = math.radians(angleInDegree)
4. print('Given angle :', angleInRadian)
5. print('cos(x) is :', math.cos(angleInRadian))

Output:

Given angle : 1.0471975511965976


cos(x) is : 0.5000000000000001

math.sin()
It returns the sine of any number, in radians.

Example

1. import math
2. angleInDegree = 60
3. angleInRadian = math.radians(angleInDegree)
4. print('Given angle :', angleInRadian)
5. print('sin(x) is :', math.sin(angleInRadian))

Output:

Given angle : 1.0471975511965976


sin(x) is : 0.8660254037844386

math.tan()
It returns the tangent of any number, in radians.

Example

1. import math
2. angleInDegree = 60
3. angleInRadian = math.radians(angleInDegree)
4. print('Given angle :', angleInRadian)
5. print('tan(x) is :', math.tan(angleInRadian))

Output:

Given angle : 1.0471975511965976


tan(x) is : 1.7320508075688767

Python OS Module
The python OS module provides functions used for interacting with the operating system
and also get related information about it. The OS comes under Python's standard utility
modules. This module offers a portable way of using operating system dependent
functionality.

The python OS module lets us work with the files and directories.

There are some functions in the OS module which are given below:

os.name
This function provides the name of the operating system module that it imports.

Currently, it registers 'posix', 'nt', 'os2', 'ce', 'java' and 'riscos'.


Example

1. import os
2. print(os.name)

Output:

posix

os.getcwd()
It returns the Current Working Directory(CWD) of the file.

Example

1. import os
2. print(os.getcwd())

Output:

C:\Users\Python\Desktop\ModuleOS

os.error
The functions in this module defines the OS level errors. It raises OSError in case of invalid
or inaccessible file names and path etc.

Example

1. import os
2. try:
3. # If file does not exist,
4. # then it throw an IOError
5. filename = 'Python.txt'
6. f = open(filename, 'rU')
7. text = f.read()
8. f.close()
9.
10. # The Control jumps directly to here if
11. #any lines throws IOError.
12. except IOError:
13.
14. # print(os.error) will <class 'OSError'>
15. print('Problem reading: ' + filename)

Output:

Problem reading: Python.txt

os.popen()
This function opens a file to, or from the command specified and it returns a file object
which is connected to a pipe.

Example

1. import os
2. fd = "python.txt"
3.
4. # popen() is similar to open()
5. file = open(fd, 'w')
6. file.write("This is awesome")
7. file.close()
8. file = open(fd, 'r')
9. text = file.read()
10. print(text)
11.
12. # popen() provides gateway and accesses the file directly
13. file = os.popen(fd, 'w')
14. file.write("This is awesome")
15. # File not closed, shown in next function.

Output:

This is awesome

os.close()
This function closes the associated file with descriptor fd.

Example

1. import os
2. fr = "Python1.txt"
3. file = open(fr, 'r')
4. text = file.read()
5. print(text)
6. os.close(file)

Output:

Traceback (most recent call last):


File "main.py", line 3, in
file = open(fr, 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'Python1.txt'

os.rename
In this function, a file or directory can be renamed by using the function os.rename(). A
user can rename the file if it has privilege to change the file.

Example

1. import os
2. fd = "python.txt"
3. os.rename(fd,'Python1.txt')
4. os.rename(fd,'Python1.txt')

Output:

Traceback (most recent call last):


File "main.py", line 3, in
os.rename(fd,'Python1.txt')
FileNotFoundError: [Errno 2] No such file or directory: 'python.txt' ->
'Python1.txt'

os.access()
This function uses real uid/gid to test if the invoking user has access to the path.

Example

1. import os
2. import sys
3.
4. path1 = os.access("Python.txt", os.F_OK)
5. print("Exist path:", path1)
6.
7. # Checking access with os.R_OK
8. path2 = os.access("Python.txt", os.R_OK)
9. print("It access to read the file:", path2)
10.
11. # Checking access with os.W_OK
12. path3 = os.access("Python.txt", os.W_OK)
13. print("It access to write the file:", path3)
14.
15. # Checking access with os.X_OK
16. path4 = os.access("Python.txt", os.X_OK)
17. print("Check if path can be executed:", path4)

Output:

Exist path: False


It access to read the file: False
It access to write the file: False
Check if path can be executed: False

Python Random module


The Python random module functions depend on a pseudo-random number generator
function random(), which generates the float number between 0.0 and 1.0.

There are different types of functions used in a random module which is as follows:

random.random()

This function generates a random float number between 0.0 and 1.0.

random.randint()

This function returns a random integer between the specified integers.

random.randrange()

This function returns a randomly selected element from the range created by the start,
stop, and step arguments. Value of start is 0 by default.

random.choice()

This function returns a randomly selected element from a non-empty sequence.

random.shuffle()

This function randomly reorders the elements in the list.


Python statistics module
Python statistics module provides the functions to mathematical statistics of numeric data.
There are some popular statistical functions defined in this module.

mean() function
The mean() function is used to calculate the arithmetic mean of the numbers in the list.

Example

1. import statistics
2. # list of positive integer numbers
3. datasets = [5, 2, 7, 4, 2, 6, 8]
4. x = statistics.mean(datasets)
5. # Printing the mean
6. print("Mean is :", x)

Output:

Mean is : 4.857142857142857

median() function
The median() function is used to return the middle value of the numeric data in the list.

Example

1. import statistics
2. datasets = [4, -5, 6, 6, 9, 4, 5, -2]
3. # Printing median of the
4. # random data-set
5. print("Median of data-set is : % s "
6. % (statistics.median(datasets)))

Output:

Median of data-set is : 4.5

mode() function
The mode() function returns the most common data that occurs in the list.

Example

1. import statistics
2. # declaring a simple data-set consisting of real valued positive integers.
3. dataset =[2, 4, 7, 7, 2, 2, 3, 6, 6, 8]
4. # Printing out the mode of given data-set
5. print("Calculated Mode % s" % (statistics.mode(dataset)))

Output:

Calculated Mode 2

stdev() function
The stdev() function is used to calculate the standard deviation on a given sample which is
available in the form of the list.

Example

1. import statistics
2. # creating a simple data - set
3. sample = [7, 8, 9, 10, 11]
4. # Prints standard deviation
5. print("Standard Deviation of sample is % s "
6. % (statistics.stdev(sample)))

Output:

Standard Deviation of sample is 1.5811388300841898

median_low()
The median_low function is used to return the low median of numeric data in the list.

Example

1. import statistics
2. # simple list of a set of integers
3. set1 = [4, 6, 2, 5, 7, 7]
4. # Note: low median will always be a member of the data-set.
5. # Print low median of the data-set
6. print("Low median of data-set is % s "
7. % (statistics.median_low(set1)))

Output:

Low median of the data-set is 5

median_high()
The median_high function is used to return the high median of numeric data in the list.

Example

1. import statistics
2. # list of set of the integers
3. dataset = [2, 1, 7, 6, 1, 9]
4. print("High median of data-set is %s "
5. % (statistics.median_high(dataset)))

Output:

High median of the data-set is 6

Python sys module


The python sys module provides functions and variables which are used to manipulate
different parts of the Python Runtime Environment. It lets us access system-specific
parameters and functions.

import sys

First, we have to import the sys module in our program before running any functions.

sys.modules

This function provides the name of the existing python modules which have been imported.

sys.argv

This function returns a list of command line arguments passed to a Python script. The name
of the script is always the item at index 0, and the rest of the arguments are stored at
subsequent indices.

sys.base_exec_prefix
This function provides an efficient way to the same value as exec_prefix. If not running a
virtual environment, the value will remain the same.

sys.base_prefix

It is set up during Python startup, before site.py is run, to the same value as prefix.

sys.byteorder

It is an indication of the native byteorder that provides an efficient way to do something.

sys.maxsize

This function returns the largest integer of a variable.

sys.path

This function shows the PYTHONPATH set in the current system. It is an environment
variable that is a search path for all the python modules.

sys.stdin

It is an object that contains the original values of stdin at the start of the program and used
during finalization. It can restore the files.

sys.getrefcount

This function returns the reference count of an object.

sys.exit

This function is used to exit from either the Python console or command prompt, and also
used to exit from the program in case of an exception.

sys executable

The value of this function is the absolute path to a Python interpreter. It is useful for
knowing where python is installed on someone else machine.

sys.platform

This value of this function is used to identify the platform on which we are working.

Python IDEs
IDE stands for Integrated Development Environment is defined as a coding tool that helps
to automate the process of editing, compiling, testing, etc. in an SDLC and it provides ease
to the developer to run, write and debug the code.

It is specially designed for software development that consists of several tools which is used
for developing and testing the software.

There are some Python IDEs which are as follows:

o PyCharm
o Spyder
o PyDev
o Atom
o Wing
o Jupyter Notebook
o Thonny
o Rodeo
o Microsoft Visual Studio
o Eric

PyCharm

PyCharm was developed by the Jet Brains, and it is a cross-platform Integrated


Development Environment (IDE) specially designed for python. It is the most widely used
IDE and available in both paid version and free open-source as well. It saves ample time by
taking care of routine tasks.

It is a complete python IDE that is loaded with a rich set of features like auto code
completion, quick project navigation, fast error checking and correction, remote
development support, database accessibility, etc.

Features
o Smart code navigation
o Errors Highlighting
o Powerful debugger
o Supports Python web development frameworks, i.e., Angular JS, Javascript

Spyder

Spyder is an open-source that has high recognition in the IDE market and most suitable for
data science. The full name of Spyder is Scientific Python Development Environment. It
supports all the significant platforms Linux, Windows, and MacOS X.

It provides a set of features like localized code editor, document viewer, variable explorer,
integrated console, etc. and supports no. of scientific modules like NumPy, SciPy, etc.

Features
o Proper syntax highlighting and auto code completion
o Integrates strongly with IPython console
o Performs well in multi-language editor and auto code completion mode

PyDev
PyDev is defined as one of the commonly used Python IDE, which is an external plugin for
Eclipse. It is a natural choice of the Python developers that are coming from the Java
background and very popular in the market as Python interpreter.

Aleksandar Totic is famous for his contribution to Mosaic browser and worked on Pydev
project during 2003-2004.

Pydev has a feature which includes Django integration, automatic code completion, smart
indents and block indents, etc.

Features
o Strong Parameters like refactoring, debugging, code analysis, and code coverage
function.
o It supports virtual environments, Mypy, and black formatter.
o Also supports PyLint integration, remote debugger, Unit test integration, etc.

Atom

Atom is developed by GitHub, which is initially started as an open-source, cross-platform. It


is based on a framework, i.e., Electron which enables cross-platform desktop application
using Chromium and Node.js and generally known as "Hackable Text Editor for the
21st century".

Features
o Visualize the results on Atom without open any other window.
o A plugin named "Markdown Preview Plus" provides built-in support for editing and
visualizing Markdown files.

Wing

It is defined as a cross-platform IDE that is packed with necessary features and with decent
development support. Its personal edition is free of cost. The pro version comes with a 30
days trial for the developers to try it out.

It has several features that include auto-completion, syntax highlighting, indents, and
debugging.

Features
o Customizable and can have extensions as well.
o Supports remote development, test-driven development along with the unit test.

Jupyter Notebook

Jupyter is one of the most used IPython notebook editors that is used across the Data
Science industry. It is a web application that is based on the server-client structure and
allows you to create and manipulate notebook documents. It makes the best use of the fact
that python is an interpreted language.

Features
o Supports markdowns
o Easy creation and editing of codes
o Ideal for beginners in data science

Thonny

Thonny is another IDE which is best suited for learning and teaching programming. It is a
software developed at the University of Tartu and supports code completion and highlight
syntax errors.

Features
o Simple debugger
o Supports highlighting errors and auto code completion

Rodeo

Rodeo is defined as one of the best IDE for python that is most widely used for data science
projects like taking data and information from different resources.

It supports cross-platform functionality and provides auto-completion of code.

Features
o Allows the functions for comparing data, interact, plot, and inspect data.
o Auto code completion, syntax highlighter, visual file navigator, etc.
Microsoft Visual Studio

Microsoft Visual Studio is an open-source code editor which was best suited for development
and debugging of latest web and cloud projects. It has its own marketplace for extensions.

Features
o Supports Python Coding in Visual studio
o Available in both paid and free version

Eric Python

The Eric Python is an editor which is developed in Python itself and can be used for both
professional and non-professional work.

Features
o Offers configurable window layout, editors, source code folding
o Advanced project management capability, version control
o In-built debugger and task management support

You might also like