Pythonn
Pythonn
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
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:
Comments
Comments are used to write something which the programmer does not want to execute.
Types of Comments:
a=30
b=”Harry”
c=71.22
Variable – Container to store a value
Data Types:
Primarily there are the following data types in Python:
Integers
Floating point numbers
Strings
Booleans
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.
input() function
This function allows the user to take input from the keyboard as a string.
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.
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 = ‘amazing’
Escape Sequence Characters comprises of more than one character but represents one
character when used within the string.
<|DATE|>
Write a program to detect double spaces in a string.
Replace the double spaces from problem 3 with single spaces.
Write a program to format the following letter using escape sequence characters.
letter = “Dear Harry, This Python course in nice. Thanks!!”
List Indexing
A list can be index just like a string.
L1 = [7, 9, ‘harry’]
L1[0] – 7
L1[1] – 9
L1[70] – Error
Tuple methods:
a = (1, 7, 2)
count(1) – It will return the number of times 1 occurs in a.
index(1) – It will return the index of the first occurrence of 1 in a.
Chapter 4 – Practice Set
Write a program to store seven fruits in a list entered by the user.
Write a program to accept the marks of 6 students and display them in a sorted
manner.
Check that a tuple cannot be changed in Python.
Write a program to sum a list with 4 numbers.
Write a program to count the number of zeros in the following tuple:
a = (7, 0, 8, 0, 0, 9)
Syntax:
a = {“name”: “Harry”,
“from”: “India”,
“marks”: [92,98,96]}
items() : returns a list of (key,value) tuple.
keys() : returns a list containing dictionary’s keys.
update({“friend”: “Sam”}) : updates the dictionary with supplied key-value pairs.
get(“name”) : returns the value of the specified keys (and value is returned e.g.,
“Harry” is returned here)
More methods are available on docs.python.org
Sets in Python
Set is a collection of non-repetitive elements.
S.add(1)
S.add(2)
# or Set = {1,2}
If you are a programming beginner without much knowledge of mathematical operations
on sets, you can simply look at sets in python as data types containing unique
values.
Properties of Sets
Sets are unordered # Elements order doesn’t matter
Sets are unindexed # Cannot access elements by index
There is no way to change items in sets
Sets cannot contain duplicate values
Operations on Sets
Consider the following set:
S = {1,8,2,3}
Len(s) : Returns 4, the length of the set
remove(8) : Updates the set S and removes 8 from S
pop() : Removes an arbitrary element from the set and returns the element removed.
clear() : Empties the set S
union({8, 11}) : Returns a new set with all items from both sets. #{1,8,2,3,11}
intersection({8, 11}) : Returns a set which contains only items in both sets. #{8}
S.add(20)
S.add(20.0)
S.add(“20”)
What will be the length of S after the above operations?
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”)
else:
print(“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.
Logical Operators
In python, logical operators operate on conditional statements. Example:
'''
if (condition1):
#code
elif (condition 2):
#code
elif (condition 2):
#code
….
else:
#code '''
The above ladder will stop once a condition in an if or elif is met.
Important Notes:
Write a program to find whether a given username contains less than 10 characters
or not.
Write a program that finds out whether a given name is present in a list or not.
Write a program to calculate the grade of a student from his marks from the
following scheme:
90-100 Ex
80-90 A
70-80 B
60-70 C
50-60 D
<50 F
Write a program to find out whether a given post is talking about “Harry” or not.
Loops make it easy for a programmer to tell the computer, which set of instructions
to repeat, and how!
While loop
For loop
We will look into this one by one!
While loop
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:
print(“Harry”)
i = i+1
(Above program will print Harry 5 times)
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:
print(item)
(Above program will print 1, 7, and 8)
Example:
l = [1, 7, 8]
for item in l:
print(item)
else:
print(“Done”) #This is printed when the loop exhausts!
Output:
Done
The break statement
‘break’ is used to come out of the loop when encountered. It instructs the program
to – Exit the loop now.
Example:
Example:
for i in range(4):
print(“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:
pass #without pass, the program will throw an error
Chapter 7 – Practice Set
Write a program to print the multiplication table of a given number using for loop.
Write a program to greet all the person names stored in a list l1 and which starts
with S.
l1 = [“Harry”, “Sohan”, “Sachin”, “Rahul”]
Attempt problem 1 using a while loop.
Write a program to find whether a given number is prime or not.
Write a program to find the sum of first n natural numbers using a while loop.
Write a program to calculate the factorial of a given number using for loop.
Write a program to print the following star pattern.
*
***
*** for n = 3
Write a program to print the following star pattern:
* * *
* * #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”)
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:
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):
gr = “Hello” + name
return gr
a = greet(“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=’stranger’):
#function body
greet() #Name will be ‘stranger’ in function body(default)
factorial(n) = n * factorial(n-1)
This function can be defined as follows:
def factorial(n):
if i == 0 or i == 1 : #Base condition which doesn’t call the function any
further
return i
else:
return n*factorial(n-1) #Function calling itself
This works as follows:
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
*
Write a python function that converts inches to cms.
Write a python function to remove a given word from a list and strip it at the same
time.
Write a python function to print the multiplication table of a given number.
Project 1: Snake, Water, Gun Game
We all have played snake, water gun game in our childhood. If you haven’t, google
the rules of this game and write a Python program capable of playing this game with
the user.
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
Opening a file
Python has an open() function for opening files. It takes 2 parameters: filename
and mode.
open(“this.txt”, “r”)
Here, “this” is the file name and “r” is the mode of opening (read mode)
We can also use f.readline() function to read one full line at a time.
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.txt”, “w”)
f.close()
With statement
The best way to open and close the file automatically is the “with” statement.
with open(“this.txt”) as f:
f.read()
#There is no need to write f.close() as it is done automatically
Class
A class is a blueprint for creating objects.
Objects of a given class can invoke the methods available to it without revealing
the implementation details to the user. #Abstraction & Encapsulation!
Class Attributes
Example:
Class Employee:
company = “Google” #Specific to each class
harry = Employee() #Object instantiation
harry.company
Employee.company = “YouTube” #changing class attribute
Instance Attributes
harry.name = “Harry”
harry.salary = “30K” #Adding instance attributes
Note: Instance attributes take preference over class attributes during assignment
and retrieval.
harry.attribute1 :
harry.getSalary()
here, self is harry, and the above line of code is equivalent to
Employee.getSalary(harry)
class Employee:
company = “Google”
def getSalary(self):
print(“Salary is not there”)
Static method
Sometimes we need a function that doesn’t use the self-parameter. We can define a
static method like this:
For Example:
class Employee:
def __init__(self,name):
self.name = name
def getSalary(self):
#Some code…
harry = Employee(“Harry”) #Object can be instantiated using constructor like
this!
Chapter 10 – Practice Set
Create a class programmer for storing information of a few programmers working at
Microsoft.
Write a class calculator capable of finding square, cube, and the square root of a
number.
Create a class with a class attribute a; create an object from it and set a
directly using object.a=0 Does this change the class attribute?
Add a static method in problem 2 to greet the user with hello.
Write a class Train which has methods to book a ticket, get status(no of seats),
and get fare information of trains running under Indian Railways.
Can you change the self parameter inside a class to something else (say ‘harry’)?
Try changing self to ‘slf’ or ‘harry’ and see the effects.
Also, we can overwrite or add new attributes and methods in the Programmer class.
Type of Inheritance
Single inheritance
Multiple inheritance
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
Super method is used to access the methods of a superclass in the derived class.
A class method is a method which is bound to the class and not the object of the
class.
@classmethod
def (cls, p1, p2):
#code
@property decorators
class Employee:
@property
def name(self):
return 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, value):
self.ename = value
Operator overloading in Python
These methods are called when a given operator is used on the objects.
p1 + p2 -> p1.__add__(p2)
p1 – p2 -> p1.__sub__(p2)
p1 * p2 -> p1.__mul__(p2)
p1 / p2 -> p1.__truediv__(p2)
p1 // p2 -> p1.__floordiv__(p2)
Other dunder/magic methods in Python
__str__() -> used to set what gets displayed upon calling str(obj)
__len__() -> used to set what gets displayed upon calling .__len__() or len(obj)
Chapter 11 – Practice Set
Create a class C-2d vector and use it to create another class representing a 3-d
vector.
Create a class of pets from a class Animals and further create class Dog from Pets.
Add a method bark to class Dog.
Create a class Employee and add salary and increment properties to it.
Write a method SalaryAfterIncrement method with a @property decorator with a setter
which changes the value of increment based on the salary.
Write a class complex to represent complex numbers, along with overloaded operators
+ and * which adds and multiplies them.
Write a class vector representing a vector of n dimension. Overload the + and *
operator which calculates the sum and the dot product of them.
Write __str__() method to print the vector as follows:
7i + 8j + 10k
Assume vector of dimension 3 for this problem.
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.