Python
Python
Python
Chapter – 0
What is Programming?
Just like we use Hindi or English to communicate with each other, we use a
Programming language to communicate with the computer.
What is Python?
Python is a simple and easy-to-understand language that feels like reading simple
English. This Pseudo code nature of Python makes it easy to learn and understandable
for beginners.
Features of Python:
Easy to understand = Less development time
Free and open source
High-level language
Portable – works on Windows/Linux/Mac
+ Fun to work with :)
Installation
When you click on the download button, python can be installed right after you
complete the setup by executing the file for your platform.
Create a file called hello.py and paste the below code into it
print(“Hello World”)
World” # print is a function (more later)
Execute this file (.py file) by typing python hello.py, and you will see Hello World printed
on the screen.
Modules
A module is a file containing code written by somebody else (usually) which can be
imported and used in our programs.
Pip
Pip is a package manager for python. You can use pip to install a module on your
system.
E.g., pip install flask (It will install flask module in your system)
Types of modules
There are two types of modules in Python:
Types of Comments:
a=30
b=”Harry”
c=71.22
Data Types:
Primarily there are the following data types in Python:
1. Integers
2. Floating point numbers
3. Strings
4. Booleans
5. None
Python is a fantastic language that automatically identifies the type of data for us.
a = 71 #Identifies a as class<int>
Operators in Python
The following are some common operators in Python:
type function is used to find the data type of a given variable in Python.
a = 31
type(a) #class<int>
b = “
“31”
type(b) #class<str>
A number can be converted into a string and vice versa (if possible)
There are many functions to convert one data type into another.
Str(31)
Str # ”31” Integer to string conversion
… and so on
input() function
This function allows the user to take input from the keyboard as a string.
a = input(“Enter name”)
name” #if a is “harry”, the user entered harry
Note: The output of the input function is always a string even if the number is entered
by the user.
Suppose if a user enters 34, then this 34 will automatically convert to “34” string literal.
Chapter 3 – Strings
The string is a data type in Python.
String Slicing:
A string in Python can be sliced for getting a part of the string.
The index in a string starts from 0 to (length-1) in Python. To slice a string, we use the
following syntax:
Negative Indices: Negative indices can also be used as shown in the figure above. -1
corresponds to the (length-1) index, -2 to (length-2).
word = “amazing”
word[1:6:2]
word # It will return ’mzn’
word = ‘amazing’
word[:7]
word or word[0:7]
word #It will return ‘amazing’
word[0:]
word or word[0:7]
word #It will return ‘amazing’
String Functions
Some of the most used functions to perform operations on or manipulate strings are:
2. endswith(“rry”) : This function tells whether the variable string ends with the
string “rry” or not. If string is “harry”, it returns for “rry” since harry ends with rry.
3. count(“c”) : It counts the total number of occurrences of any character.
4. capitalize() : This function capitalizes the first character of a given string.
5. find(word) : This function finds a word and returns the index of first occurrence of
that word in the string.
6. replace(oldword, newword) : This function replaces the old word with the new
word in the entire string.
Escape Sequence Characters comprises of more than one character but represents
one character when used within the string.
<|DATE
DATE|>
friends = [‘Apple’
‘Apple’, ‘Akash’
‘Akash’, ‘Rohan’
‘Rohan’, 7, False]
The list can contain different types of elements such as int, float, string, Boolean, etc.
Above list is a collection of different types of elements.
List Indexing
A list can be index just like a string.
L1 = [7, 9, ‘harry’
‘harry’]
L1[0] – 7
L1
L1[1] – 9
L1
L1[70] – Error
L1
L1[0:2] – [7,9]
L1 (This is known as List Slicing)
Slicing
List Methods
Consider the following list:
Tuples in Python:
A tuple is an immutable (can’t change or modified) data type in Python.
Tuple methods:
Consider the following tuple,
a = (1, 7, 2)
a = (7, 0, 8, 0, 0, 9)
Syntax:
Dictionary Methods
Consider the following dictionary,
a = {“name”
“name”: “Harry”
“Harry”,
“from”: “India”
“ “India”,
“marks”: [92,98,96]}
“marks”
Sets in Python
Set is a collection of non-repetitive elements.
S= Set
Set() # No repetition allowed!
S.add(1)
add
S.add(2)
add
# or Set = {1,2}
Properties of Sets
1. Sets are unordered # Elements order doesn’t matter
2. Sets are unindexed # Cannot access elements by index
3. There is no way to change items in sets
4. Sets cannot contain duplicate values
Operations on Sets
Consider the following set:
S = {1,8,2,3}
S = Set()
Set
S.add(20)
add
S.add(20.0)
add
S.add(
add “20”)
All these are decisions that depend on the condition being met.
Syntax:
'''
if (condition1): // if condition 1 is true
print(“yes”)
elif (condition2): // if condition 2 is true
print(“No”)
else: // otherwise
print(“May be”)
'''
Code example:
a = 22
if (a>9):
print(“Greater”
“Greater”)
else:
print(“lesser”
“lesser”)
Quick Quiz: Write a program to print yes when the age entered by the user is greater
than or equal to 18.
Relational Operators
Relational operators are used to evaluate conditions inside if statements. Some
examples of relational operators are:
= = -> equals
<=, etc
etc.
Logical Operators
In python, logical operators operate on conditional statements. Example:
elif clause
elif in python means [else if]. If statement can be chained together with a lot of these elif
statements followed by an else statement.
'''
if (condition1):
#code
elif (condition 2):
#code
elif (condition 2):
#code
….
else:
#code '''
“make a lot of money”, “buy now”, “subscribe this”, “click this”. Write a program to detect
these spams.
Loops make it easy for a programmer to tell the computer, which set of instructions to
repeat, and how!
1. While loop
2. For loop
In while loops, the condition is checked first. If it evaluates to true, the body of the loop
is executed, otherwise not!
If the loop is entered, the process of condition check and execution is continued until
the condition becomes false.
An Example:
i = 0
while i<5:
i
print(“Harry”)
“Harry”
i = i+1
i
Note: if the condition never becomes false, the loop keeps getting executed.
Quick Quiz: Write a program to print the content of a list using while loops.
For loop
A for loop is used to iterate through a sequence like a list, tuple, or string (iterables)
l = [1, 7, 8]
for item in l
l:
print(item)
item
Example:
l = [1, 7, 8]
for item in l
l:
print(item
item)
else:
print(“Done”)
“Done” #This is printed when the loop exhausts!
Output:
Done
Example:
Example:
for i in range(4):
print(“printing”
“printing”)
if i == 2: #if i is 2, the iteration is skipped
continue
print(i)
pass statement
pass is a null statement in python. It instructs to “Do nothing.”
Example:
l = [1, 7, 8]
for item in l
l:
pass #without pass, the program will throw an error
l1 = [“Harry”
“Harry”, “Sohan”
“Sohan”, “Sachin”
“Sachin”, “Rahul”
“Rahul”]
***
***** for n
n=3
8. Write a program to print the following star pattern:
**
*** for n = 3
* * *
* * #For n=3
* * *
10. Write a program to print the multiplication table of n using for loop in reversed
order.
When a program gets bigger in size and its complexity grows, it gets difficult for a
programmer to keep track of which piece of code is doing what!
A function can be reused by the programmer in a given program any number of times.
def func1():
print(“Hello”
“Hello”)
This function can be called any number of times, anywhere in the program.
Function call
Whenever we want to call a function, we put the name of the function followed by
parenthesis as follows:
func1()
func1 #This is called function call
Function definition
The part containing the exact set of instructions that are executed during the function
call.
Quick Quiz: Write a program to greet a user with “Good day” using functions.
A function can accept some values it can work with. We can put these values in the
parenthesis. A function can also return values as shown below:
def greet(name
name):
gr = “Hello” + name
return gr
a = greet
greet(“Harry”
“Harry”) #“Harry” is passed to greet in name
If we specify name = “stranger” in the line containing def, this value is used when no
argument is passed.
For Example:
def greet(name
name=’stranger’
’stranger’):
#function body
greet()
greet #Name will be ‘stranger’ in function body(default)
greet(“Harry”)
greet “Harry” #Name will be “Harry” in function body(passed)
Recursion
Recursion is a function which calls itself.
factorial(n) = n * factorial
factorial factorial(n-1)
def factorial(n):
if i == 0 or i == 1 : #Base condition which doesn’t call the function any furt
return i
else:
return n
n*factorial
factorial(n-1) #Function calling itself
The programmer needs to be extremely careful while working with recursion to ensure
that the function doesn’t infinitely keep calling itself.
***
** #For n = 3
A file is data stored in a storage device. A python program can talk to the file by reading
content from it and writing content to it.
Types of Files
Python has a lot of functions for reading, updating, and deleting files.
Opening a file
Python has an open() function for opening files. It takes 2 parameters: filename and
mode.
open(“this
“this.txt”
txt”, “r”
“r”)
Here, “this” is the file name and “r” is the mode of opening (read mode)
f = open(“this
“this.txt”
txt”, “r”
“r”) #Opens the file in r mode
text = f
f.read
read() #Read its content
print(text
text) #Print its contents
f.close()
close #Close the fie
f.read(2)
read #Reads first 2 characters
We can also use f.readline() function to read one full line at a time.
f.readline()
readline #Reads one line from the file
In order to write to a file, we first open it in write or append mode, after which, we use
the python’s f.write() method to write to the file!
f = open(“this
“this.txt”
txt”, “w”
“w”)
f.write
write(“This is nice”
nice”) #Can be called multiple times
f.close()
close
With statement
The best way to open and close the file automatically is the “with” statement.
with open(“this
“this.txt”
txt”) as f
f:
f.read()
f read
Class
A class is a blueprint for creating objects.
Object
An object is an instantiation of a class. When class is defined, a template(info) is
defined. Memory is allocated only after object instantiation.
Objects of a given class can invoke the methods available to it without revealing the
implementation details to the user. #Abstraction & Encapsulation!
Class Attributes
An attribute that belongs to the class rather than a particular object.
Example:
Class Employee:
company = “Google” #Specific to each class
harry = Employee
Employee() #Object instantiation
harry.
harry company
Employee.company = “YouTube”
Employee #changing class attribute
Instance Attributes
harry.name = “Harry”
harry
harry.
harry salary = “30K” #Adding instance attributes
Note: Instance attributes take preference over class attributes during assignment and
retrieval.
harry.attribute1 :
‘self’ parameter
harry.getSalary()
harry getSalary
class Employee:
company = “Google”
def getSalary(self
self):
print(“Salary is not there”)
there”
Static method
Sometimes we need a function that doesn’t use the self-parameter. We can define a
static method like this:
__init__() constructor
For Example:
class Employee:
def __init__(self
self,name
name):
self.name = name
self
def getSalary(self):
self
#Some code…
harry = Employee
Employee(“Harry”
“Harry”) #Object can be instantiated using constructor like thi
Also, we can overwrite or add new attributes and methods in the Programmer class.
Type of Inheritance
1. Single inheritance
2. Multiple inheritance
3. Multilevel inheritance
Single Inheritance
Single inheritance occurs when a child class inherits only a single parent class.
Multiple Inheritance
Multiple inheritances occurs when the child class inherits from more than one parent
class.
Multilevel Inheritance
Super method is used to access the methods of a superclass in the derived class.
super().__init__
__init__() #Calls constructor of the base class
Class methods
A class method is a method which is bound to the class and not the object of the class.
@classmethod
def (cls
cls, p1
p1, p2
p2):
#code
@property decorators
class Employee:
@property
def name(self
self):
return self
self.ename
if e = Employee() is an object of class employee, we can print (e.name) top print the
ename/call name() function.
@name.setter
def name(self
self, value):
value
self.ename = value
self
These methods are called when a given operator is used on the objects.
p1 + p2 -> p1
p1.__add__
__add__(p2
p2)
p1 – p2 -> p1
p1.__sub__
__sub__(p2
p2)
p1 * p2 -> p1
p1.__mul__
__mul__(p2
p2)
p1 / p2 -> p1
p1.__truediv__
__truediv__(p2
p2)
p1 // p2 -> p1
p1.__floordiv__
__floordiv__(p2
p2)
__len__() -> used to set what gets displayed upon calling .__len__
__len__ __len__() or len(obj
obj)
7i + 8j + 10k
If the player’s guess is higher than the actual number, the program displays “Lower
number please”. Similarly, if the user’s guess is too low, the program prints “higher
number please”.
When the user guesses the correct number, the program displays the number of
guesses the player used to arrive at the number.