This text provides a comprehensive guide to Python programming, starting with fundamental concepts such as installing Python, understanding variables, data types, operators, and flow control statements like decision making and loops. It progresses to core data structures like tuples, lists, dictionaries, and sets, explaining their uses and manipulations. More advanced topics covered include object-oriented programming (classes, objects, inheritance) and file handling, with practical demonstrations using the PyCharm IDE. The document also explores data structures and algorithms, detailing arrays, stacks, queues, linked lists, and essential sorting (insertion, quick, merge) and searching (linear, binary) techniques. Finally, it touches upon machine learning libraries like NumPy, Pandas, Matplotlib, and Seaborn for data analysis and visualization, as well as an introduction to generative AI and using libraries like Flask and OpenAI for applications, alongside web automation with Selenium and GUI development with Tkinter.
Python Fundamentals: Core Concepts and Structures
Based on the sources provided, Python fundamentals cover the essential building blocks you need to start coding in Python. This module aims to introduce you to Python’s syntax and core concepts.
Key topics discussed under Python fundamentals include:
- Installing Python and Setting up the Environment: The journey begins with installing Python onto your system. Python is platform-independent, meaning you can download it for Windows, Linux, or Mac operating systems from the python.org downloads site. After installing Python, you need an Integrated Development Environment (IDE) to make coding easier. The sources mention PyCharm and Anaconda as IDE options for Python. Anaconda is a complete toolkit often used for machine learning and data science tasks, providing libraries like NumPy, pandas, matplotlib, and seaborn, along with an IDE called Jupyter notebook. Jupyter is a browser-based interpreter that allows interactive work with Python. You can open Jupyter notebook via the Anaconda prompt by typing jupyter notebook.
- Variables: Variables are used to store data when working with any programming language. In Python, you can assign values to variables, and these values can be changed later.
- Data Types: Every variable in Python has an associated data type. The sources highlight four main built-in data types: Integer, Float, Boolean, and String. It also mentions a Complex type, represented with ‘j’ instead of ‘i’. Examples are given for creating integer and complex variables and checking their type using the type() method.
- Operators: Operators help perform operations on data. The sources discuss arithmetic operators, relational operators, and logical operators. Arithmetic operations are demonstrated, such as division. Relational operators help find the relationship between two operands, like checking if one is less than or greater than another.
- Python Tokens: A Python token is the smallest meaningful component in a program. Combining tokens forms your Python code. The basic Python tokens are keywords, identifiers, literals, and operators.
- Keywords: Special reserved words that cannot be used for other purposes, such as variable, function, or class names. Examples include if, def, del, True, False, while, not, or, return. The Python interpreter recognizes these keywords, often highlighting them (e.g., turning green). Trying to assign a value to a keyword like def results in an error.
- Identifiers: Names used for variables, functions, or objects. There are basic rules for identifiers: they cannot contain special characters (except underscore), are case-sensitive, and the first letter cannot be a digit. The case sensitivity means N1 and n1 are treated as different variables.
- Literals: These are constants, meaning values that do not change. Whatever values you store inside a variable are called literals. For example, in N1 = 10, the value 10 is a literal.
- Flow Control Statements: These statements determine the order in which program code is executed. An example of an if-else statement is shown, demonstrating how to check a condition (e.g., if variable B is greater than variable A) and execute a block of code if the condition is true. Loops are also mentioned in the context of applying operations to elements in a list.
- Core Data Structures: Python fundamentals introduce several basic data structures beyond single variables, enabling you to store multiple values.
- Tuples: Described as continuous sequences of elements. Indexing starts from zero. When slicing, the starting index is inclusive, and the ending index is exclusive. Functions like max() can be used on tuples.
- Lists: A new list is created using square braces. Lists can store different types of data values. Like tuples and other data structures in Python, indexing for lists starts from zero. You can extract individual elements or a series of elements using indexing and slicing, keeping in mind the exclusive nature of the ending index in slicing. Lists are mutable, meaning you can change elements after creation, unlike tuples (though tuples aren’t explicitly stated as immutable in the source excerpts, lists are explicitly called mutable in comparison to dictionaries which are also mutable). You can modify elements by assigning a new value to a specific index. List methods include append() to add an element to the end, pop() to remove an element (which follows LIFO – Last In, First Out – order, useful for implementing stacks), sort() for alphabetical sorting, and reverse(). You can also repeat list elements using multiplication. List implementation can be used to create a stack.
- Dictionaries: An unordered collection of key-value pairs enclosed within curly braces. Dictionaries are mutable. Elements can be removed using the pop() method by providing the key.
- Sets: An unordered and unindexed collection of elements enclosed within square braces (though the source excerpt says square braces, the example uses curly braces which is standard for sets in Python). Sets allow finding common elements using the intersection() method.
By the end of this section, you should be comfortable writing simple Python programs and ready for more complex challenges.
Python Data Structures Overview
Based on the sources, discussing data structures involves exploring how data can be organized and stored to be used efficiently in programming. Understanding data structures is key to managing your data effectively. In Python, various data structures are available, ranging from built-in core types to more complex structures used in algorithms and specific libraries.
Here’s a breakdown of the data structures discussed in the sources:
Core Python Data Structures Python’s fundamentals introduce several basic data structures that allow you to store multiple values, unlike single variables which store only one value. You can store elements of different types within these data structures.
- Tuples:
- Tuples are described as a collection of elements enclosed within round braces.
- They are an ordered collection.
- Tuples are immutable, meaning that once the elements inside a tuple are created, you cannot change them later on.
- Indexing for tuples starts from zero. You can find the length (number of elements) of a tuple using the len() method.
- You can also concatenate (attach elements of) two tuples.
- Lists:
- Lists are an ordered collection of elements enclosed within square braces.
- Unlike tuples, lists are mutable, which means you can actually change the values present in a list after it’s created.
- Lists can store different types of data values.
- Indexing for lists starts from zero, similar to tuples and other Python data structures. You can extract individual elements or a series of elements using indexing and slicing.
- Common list methods mentioned include append() to add an element to the end, pop() to remove an element (following a Last In, First Out – LIFO – order), sort() for alphabetical sorting, and reverse().
- You can also repeat list elements using multiplication.
- Lists can be used to implement a stack.
- Dictionaries:
- Dictionaries are an unordered collection of key-value pairs.
- They are enclosed within curly braces.
- Dictionaries are mutable [implied by operations like pop, and noted in prior conversation].
- In a dictionary, keys are separated from their values by a colon, and key-value pairs are separated by commas. For example, a dictionary could store fruit names as keys and their quantities as values.
- You can extract the individual keys and values present in a dictionary. The keys are on the left side of the colon. You can use the .keys() method to get all the keys.
- Elements (key-value pairs) can be removed from a dictionary using the pop() method by providing the key.
- Sets:
- Sets are an unordered and unindexed collection of elements.
- Although one source mentions square braces, the example provided uses curly braces, which is the standard Python syntax for sets.
- Sets allow finding common elements between two sets using the intersection() method. You can also combine elements from two sets using the Union() method.
Data Structures for Algorithms Beyond the basic Python data structures, the sources delve into other common data structures, particularly in the context of data structures and algorithms, often described as advanced concepts. These are typically linear data structures where elements are stored in a linear fashion.
- Arrays:
- An array is a linear data structure where elements are stored in a linear fashion and at continuous memory locations.
- Each memory location has an address.
- The data type of elements stored in an array must be homogeneous, meaning you can only store similar elements.
- You can access elements randomly using indexing. The name of the array represents its Base address.
- Arrays are useful for scenarios where you want to store data linearly in continuous memory for efficient memory utilization and are suitable for frequent searching.
- Arrays can be one-dimensional or two-dimensional (used for matrices). A 1D array is declared with a name, data type, one subscript/index, and size.
- Arrays can serve as a replacement for multiple individual variables when dealing with a large number of similar data points.
- A drawback of arrays is that insertion and deletion can be difficult because it requires swapping elements and ensuring continuous memory is available.
- Note: While the sources discuss arrays conceptually and show examples using list-like syntax, Python’s built-in list type is more flexible than traditional C-style arrays (e.g., can store heterogeneous data, doesn’t require fixed size). NumPy arrays are closer to the homogeneous, fixed-size array concept.
- Stacks:
- A stack is a linear data structure that follows the Last In, First Out (LIFO) principle. This means the element inserted last is the first one to be removed.
- Insertion and removal of elements are done at one end, often called the “top” of the stack.
- Standard stack operations include push (to insert an element at the end/top) and pop (to remove an element from the end/top).
- In Python, stacks can be implemented using a list (using append for push and pop for pop), the collections.deque class, or the queue.LifoQueue class.
- The collections.deque implementation is preferred over lists for stack operations because append and pop are faster (Big O(1) time complexity) compared to lists, which can become slow due to potential memory reallocations (Big O(N)).
- When using queue.LifoQueue, the insertion operation is called put, and the removal operation is called get.
- Queues:
- A queue is a linear data structure where elements are stored in a linear fashion and follow the First In, First Out (FIFO) principle. The first item inserted is the first item to be removed.
- You can imagine a queue like people waiting in line; the person who arrives first gets served first.
- Major queue operations include Enqueue (inserting an element), Dequeue (deleting an element), Peek first (looking at the first element without removing it), and Peek last (looking at the last element).
- A significant advantage of queues is that these four major operations are performed in a constant amount of time (Big O(1)).
- Queues are commonly used in competitive programming because of their efficient operations.
- Applications include scheduling algorithms in operating systems (like FIFO and round robin) and maintaining playlists.
- A circular queue is a type of queue where the front and rear are connected, forming a circle.
- In Python, a basic queue can be implemented using a class with append for NQ and pop for DQ. Other implementations exist within modules like collections (deque) or queue.
- A disadvantage of queues is that they are not very flexible due to the restriction on insertion and deletion points (only at the rear and front, respectively).
- Linked Lists:
- A linked list is a linear data structure that is a collection of nodes.
- Each node contains two parts: the data itself and a reference (or pointer) to the next node. This reference stores the memory address of the subsequent node.
- Unlike arrays or lists, linked list elements are stored randomly in memory, not necessarily at continuous locations.
- The beginning of the linked list is typically marked by a head pointer, which stores the address of the first node. The reference of the last node points to null (or None in Python).
- A singly linked list is one where traversal is done only in one direction (from the head to the end).
- Linked lists can offer more efficiency for operations like insertion and deletion compared to lists in certain scenarios.
- Operations include insertion, deletion, and traversal. Insertion and deletion can be performed at the beginning, end, or a specified node.
- Traversal means going through each node of the linked list.
- Accessing elements in a linked list is slower compared to a list because you have to traverse from the head to the desired node; you cannot directly jump to an element using an index.
- Memory utilization might be more in linked lists compared to lists.
- Creating a node in Python involves defining a class (e.g., class node) and initializing its data and next pointer (often None initially) using a constructor (__init__ method).
Data Structures in Libraries for Data Science and Machine Learning Specific Python libraries designed for data handling introduce their own data structures:
- NumPy Arrays: NumPy (Numerical Python) is the core library for numeric and scientific computing. It consists of multi-dimensional array objects. You can create single-dimensional or multi-dimensional arrays (arrays of arrays or lists of lists) to perform various numerical operations like sum or dot product. NumPy arrays are generally used for homogeneous numerical data.
- Pandas Data Structures: Pandas is a core library for data manipulation and analysis. It provides single and multi-dimensional data structures to handle tabular data seamlessly.
- Series: A single-dimensional data structure, described as a one-dimensional labeled array. Created using pd.Series(), typically from a list or dictionary.
- DataFrame: A multi-dimensional data structure, specifically a two-dimensional labeled data structure. DataFrames are used to work with tabular data, consisting of rows and columns. They are commonly created from dictionaries where dictionary keys become column names and the list values become the records in those columns. DataFrames have useful methods like head, tail, shape, and describe (providing summary statistics) and allow extracting data by index or label using .iloc and .loc.
In summary, Python offers a range of data structures, from fundamental built-in types like lists, tuples, dictionaries, and sets to more complex structures like arrays, stacks, queues, and linked lists used in algorithms, and specialized structures like NumPy arrays and Pandas Series/DataFrames vital for data science tasks. They are crucial tools for efficiently organizing and manipulating data in various programming contexts.
Python Object-Oriented Programming Explained
Based on the sources and our conversation history, object-oriented programming (OOP) is discussed as one of the advanced concepts in Python. It is considered one of the most important concepts.
Here’s a breakdown of Object-oriented programming based on the sources:
- Purpose of OOP: Object-oriented programming allows you to represent real-world objects in the programming paradigm. Python is an object-oriented programming language.
- Core Components: To understand OOP, you need to understand its two main components: classes and objects.
- Class: A class can be thought of as a template or a blueprint for real-world entities. It is described as a user-defined data type, similar to predefined data types like integer, float, Boolean, and string. A class will have attributes (which are its properties) and methods (which represent its behavior). Using the example of a phone, properties could include color, cost, and battery life, while behaviors could include making calls, watching videos, and playing games.
- Object: An object is a specific instance of a class. Following the phone example, specific phones like Apple, Motorola, and Samsung would be objects of the phone or mobile class. Just as a variable a = 10 means a is an integer variable with the value 10, objects are specific instances of the class’s data type.
- Creating Classes and Objects:
- To create a class in Python, you use the class keyword followed by the name of the class. By convention, the first letter of the class name should be capitalized.
- Methods within a class are defined using the def keyword. These methods represent the class’s behavior. Methods take self as a parameter, which helps invoke the attributes present in the class. Examples include methods like make_call and play_game in a Phone class.
- Attributes are associated with the object using self.attribute_name within the methods or the constructor. Methods can be created to set or show the values of these attributes.
- An object of a class is created by calling the class name followed by parentheses and assigning it to a variable (e.g., P1 = Phone()).
- Once an object is created, you can invoke the methods associated with the class using the dot operator (e.g., p1.make_call(), p1.play_game()).
- Constructor (__init__):
- A Constructor is a special concept in OOP. In Python, the constructor method is named __init__ (with double underscores before and after).
- The purpose of the constructor is to initialize the values of the attributes when an object is being created.
- The __init__ method takes self and typically additional parameters corresponding to the attribute values you want to set upon object creation. Inside the constructor, these parameter values are assigned to the object’s attributes using self.attribute = parameter.
- When you create an object of a class that has a constructor, you pass the initial values for the attributes as arguments to the class call (e.g., E1 = Employee(“Sam”, 28, 75000, “male”)). The constructor then runs automatically to initialize the object’s attributes.
- Inheritance:
- Inheritance is another important concept in OOP. It means that a child class can inherit some or all of the features (attributes and methods) from a parent class.
- To create a child class that inherits from a parent class, you include the name of the parent class in parentheses after the child class name during its definition (e.g., class Car(Vehicle):).
- If a child class does not define its own constructor (__init__), it will inherit the constructor from its parent class. This means you pass values for the parent’s attributes when creating an object of the child class. The child object can then call methods defined in the parent class.
- A child class can also have its own specific methods in addition to the inherited ones.
- It is possible to override the __init__ method (or other methods) in the child class to provide specific initialization or behavior for the child class.
- Types of Inheritance: The sources mention different types of inheritance:
- Single Inheritance: A child class inherits from a single parent class. The Car inheriting from Vehicle is an example of this.
- Multiple Inheritance: A child class inherits from more than one parent class. The child class inherits features from both parents.
- Multi-level Inheritance: There are multiple levels of inheritance, where a class inherits from a child class which itself inherited from another class. An example is a Grandchild class inheriting from a Child class, which inherited from a Parent class. An object of the grandchild class can access methods from all classes in the hierarchy.
In summary, OOP in Python provides a structured way to design programs by creating classes as blueprints for objects, defining their properties and behaviors, and using concepts like constructors for initialization and inheritance to create hierarchies of classes that share features.
Python File Handling Essentials
Based on the sources, here’s a discussion of File Handling in Python:
File Handling in Python involves dealing with text files. It allows you to use Python programming to write, read, and perform various operations on these text files, which typically have a .txt extension. File handling is considered one of the advanced topics in Python. Another name used for file handling is IO functions, referring to input/output functions.
With file handling, you can perform operations using built-in functions, including:
- Opening the file
- Reading text from the file
- Writing text into the file
- Appending text (adding onto existing text)
- Altering text
- Deleting text
Core Concepts and Operations:
- Opening a File:
- The very first step in file handling is always opening the file.
- This is done using the open() function.
- You typically store the result of the open() function call in a variable, which is sometimes referred to as a file pointer. This variable is used to perform subsequent operations on the file.
- The open() function requires the name of the file as an argument.
- Modes:
- When opening a file, you specify a mode which determines the type of operations you intend to perform.
- Read Mode (‘r’): Used when you want to read existing text from the file. You must open the file in ‘r’ mode to use reading functions.
- Write Mode (‘w’): Used when you want to write or add text to the file. Opening in write mode allows using the write() function.
- Append Mode (‘a’): Used specifically for adding new text to the end of the text file’s existing content. You open the file with mode ‘a’.
- Reading Text:
- To read the entire content of a file opened in read mode, you use the read() function on the file pointer (e.g., f.read()). The content is typically stored in a variable for use.
- To read the text line by line, you use the readline() function. Each call to readline() reads the very next single line from the file. If there are no more lines to read, readline() returns an empty string. The readline() function differs from read() which displays all text at once.
- Writing and Appending Text:
- To write text to a file opened in write mode (‘w’) or append mode (‘a’), you use the write() function on the file pointer (e.g., f.write(“some text here”)).
- Using the n operator (backslash n) at the beginning of the string you are writing will ensure that the text is added starting on a new line in the file.
- Text written in append mode (‘a’) is added after the existing content in the file. Text written in write mode (‘w’) can overwrite previous content (implied by the read example that follows a write example).
- Closing the File:
- After you have finished performing operations on a file, it is a good practice to close it.
- This is done using the close() function on the file pointer (e.g., f.close()). This is compared to closing a book after reading or writing in it.
- Counting Characters:
- You can count the total number of characters in a text file by opening the file in read mode, reading its content into a variable (e.g., using read()), and then using the len() function on that variable. The len() function calculates the total number of characters.
Development Environment: To perform file handling in Python, you need an Integrated Development Environment (IDE) that supports both Python files (.py) and text files (.txt) simultaneously. Offline IDEs such as PyCharm, VS Code, or Jupiter notebooks are suitable. Practical examples in the source were shown using PyCharm. You would create your Python script file and the text file you wish to interact with within the IDE’s project environment. When running code that writes to a file, the output is typically seen directly in the text file itself, not necessarily in the console. You cannot perform reading and writing operations (like write() and readline()) on the same file object at the same time if opened in conflicting modes.
An Overview of Generative AI and Python Applications
Based on the sources and our conversation history, Generative AI (Gen AI) is presented as an advanced concept within the realm of Artificial Intelligence, incorporating human-like intelligence and creativity. It is a rapidly evolving AI system that is gaining prominence.
Here’s a detailed discussion of Generative AI as described in the sources:
What is Generative AI?
- Generative AI is an artificial intelligence system that focuses on creativity.
- It is described as evolving beyond simply understanding programming languages to mimicking human-like intelligence and creativity.
- Generative AI is a subset of artificial intelligence.
- Unlike traditional AI, which might classify or discriminate between data, Generative AI acts like an artist, capable of creating, generating, or transforming new content. This content can include text, video, audio, images, and more.
How Generative AI Works
- Technically, Generative AI or Gen AI functions by employing a neural network.
- This neural network mimics or replicates biological neurons.
- Based on this mimicry, it analyzes data patterns and generates new content based on those patterns.
- Generative AI models receive an input (which can be text, audio, video, or any format).
- These models are then pre-trained on data and fine-tuned to perform specific tasks. This fine-tuning allows them to cater to specific requirements and generate personalized content based on prompts.
Discriminative vs. Generative AI
- The sources contrast Generative AI with Discriminative AI.
- Discriminative AI acts like a judge; given a dataset (e.g., images of dogs and cats), it classifies them into predefined categories (cats and dogs).
- Generative AI, on the other hand, acts like an artist; given a similar dataset, it can create a new species or generate new content.
Why Generative AI is Trending
- Generative AI is trending because it does not depend on giving input and getting the same form of output, unlike traditional AI. It works based on your inputs and instructions.
- It has impacted various fields, including text, audio, and video domains, and sectors like data management, tech, healthcare, and entertainment.
- It has creative applications such as DALL-E and ChatGPT. For example, you can give a text prompt as input, and it can create an image as output.
- It is enabling professionals (like business professionals and researchers) to generate code using tools like ChatGPT and develop new large language models and tasks.
Types of Generative AI Models Mentioned
The sources list different types of generative AI models:
- Generative Adversarial Networks (GANs): Two models work together – one generating content, and one judging it – to produce realistic new data.
- Variational Autoencoders (VAEs): This AI learns to recreate and generate new, similar data.
- Transformers: An AI that learns to produce sequences using context. Transformer-based models include examples like ChatGPT.
- Diffusion Models: Generates data by refining noisy starting points until they look realistic.
Applications of Generative AI
Generative AI has numerous applications:
- Content Generation: Creates textual or other code-based content. It boosts creativity by providing content ideas and new ways to approach problems.
- Customer Support and Engagement: Helps firms interact with customers.
- Data Analysis and Data Science: Aids with visualization and analyzing data.
- Code Generation and Software Development: Helps generate code.
- Research and Information Retrieval: Helps researchers and professionals extract information from various data sources.
- Machine Translation: Translates text, audio, or other content into required languages.
- Sentiment Analysis: Analyzes text feedback to determine positive, negative, or neutral sentiment.
- Other domains include Healthcare and Transport.
- It automates content creation, saving time, and provides personalization based on user requirements and prompts.
Python and Generative AI
- Python is a high-level programming language preferred in Generative AI development.
- One reason is that Python already has a well-supported set of libraries used for years in related domains like data science, machine learning, natural language processing (NLP), and deep learning. Artificial intelligence and Generative AI are “grabbing” these existing Python libraries.
- Python is described as a versatile programming language that makes life easier for people working in this technological domain.
Practical Applications in Python (from sources)
The sources demonstrate building applications that utilize Generative AI:
- Flask ChatGPT App: Integrating the OpenAI API with a Flask web application.
- This involves setting up a Python virtual environment, installing Flask and OpenAI libraries, and obtaining an OpenAI API key.
- The application consists of a backend Python file (app.py) using Flask to handle API calls and a frontend HTML file (index.html) for the user interface.
- The Python backend defines routes to handle requests, interacts with the OpenAI GPT model (e.g., GPT 3.5 turbo) by sending user input (prompts) via the API, receives responses, and handles potential errors like exceeding the usage quota.
- The frontend uses HTML for structure and JavaScript to manage the interaction between the user interface and the backend, sending user prompts and displaying GPT’s responses.
- Note: Using the OpenAI API is not entirely free; there is a limit ($5 worth of conversation mentioned) before payment is required.
- Text to Image Application: Creating images from textual descriptions using AI models via a web application.
- Similar to the ChatGPT app, this uses Flask for the web framework, the OpenAI API for image generation, and HTML/CSS/JavaScript for the front end.
- Prerequisites include Python, Flask, OpenAI library, and an OpenAI API key.
- The Python backend (app.py) receives text prompts from the user via the frontend, uses the openai library to call the API’s image generation function (specifying prompt, size, and number of images), and gets an image response back.
- The HTML frontend provides a text box for input, a button to trigger the generation, and displays the resulting image.
- More precise descriptions from the user lead to more precise image outputs.
- Personalized Story Generator using LangChain: Developing an application to generate unique stories based on user inputs like character names, settings, and themes.
- This project utilizes the LangChain library in Python, described as streamlining development processes and utilizing LLMs. LangChain is a Python library, similar to libraries like NumPy. It supports use cases like creating assistants and chatbots.
- The application also requires the OpenAI library and an API key.
- The structure involves two Python files: user_input.py to collect character name, setting, and theme from the user, and story_generator.py as the main script that uses LangChain and OpenAI to generate the story based on the inputs received from user_input.py.
- The story_generator.py file imports necessary components from langchain, imports the user input function, defines the story generation logic using an OpenAI text model (like GPT 3.5 turbo), includes the API key, and prints the generated story.
- This demonstration was executed in the command prompt rather than a web browser interface.
In essence, Generative AI represents a shift in AI towards creative content generation, leveraging powerful models and neural networks. Python, with its rich ecosystem of libraries, serves as a crucial language for implementing and developing Generative AI applications, as demonstrated by the examples involving Flask, OpenAI API, and LangChain.
The Original Text
Transcript Tool: https://anthiago.com/transcript/
Video Link: https://www.youtube.com/watch?v=-65r_3r-nN4
Python Tutorial with Gen AI for 2024 | Python for Beginners | Python full course welcome to the world of python where creativity meets technology whether you are a beginner eager to dive into coding or a season programmer looking to expand your skills this journey has something for everyone please note we have added sessions being covered in this tutorial with timestamps in the description for your convenience to jump to the topic which excites you the most you will be mastering the fundamentals of python diving deep into advanced con Concepts and unlocking the secrets of powerful data structures and algorithms picture yourself analyzing data like a pro building intelligent machine learning models and exploring the fascinating Realms of generative AI but that’s not all we’ll also dwelve into python for automation simplifying everyday tasks and crafting beautiful interactive guis for your applications join us as we embark on this comprehensive python Adventure from Basics to Brilliance we have got you cover so let’s get started and code your way to [Music] Mastery in the python fundamentals we’ll start with the basics installing python Understanding Variables data types operators and flow control statements you will also learn about Python’s core data structures tles lists dictionaries and sets next we will dwelve into advanced topics like object-oriented programming inheritance and exception handling you will also learn file handling techniques to manage your data efficiently understanding data structures and algorithms is key we will cover arrays Stacks cues linked lists and essential searching and sorting algorithms like linear search binary search insertion sort quick sort and merge sort in Python for machine learning you will work with libraries like numai pandas matplot lib and cabon these tools will help you manipulate analyze and visualize data to gain valuable insights you will also explore the fascinating word of generative AI where you will learn the basics and how to apply python in creating generative models opening up new possibilities in AI in Python 4 automation we will focus on making your life easier you will learn to use selenium for web automation we will also cover GUI development using tkin bringing your applications to life why wait let’s quickly start with the first module in Python fundamentals this is where it all begins we will start by introducing you to Python’s syntax and Core Concepts you will learn about variables data types and control structures like oops and conditionals by the end of this section you will be comfortable writing simple python programs and ready to tackle more complex challenges we’ll start off this session by installing python into our systems and to install python we’d have to go to this particular site over here python or downloads let me just go ahead and click on this link so as you see since python is platform independent whether you have a Windows system or a Linux system or even a Mac you can download python for either of these operating systems and since I’m using a window system all I have to do is click on this particular link and python would be downloaded now after downloading python we would need an IDE so what exactly is an IDE IDE stands for integrated development environment now if you just download python we would also need some environment which would make our coding much more easier so if you have worked with other programming languages such as C C++ or Java then you would know that you would have used an ID for these languages as well so if you have worked with Java then you would have used an ID called as Eclipse similarly if you have work with C or C++ then you would have work with ID such as turbo C++ or Dev C++ so similarly we’ve got a lot of IDs for python so one such ID for python is pycharm and we can download pycharm from this particular link jet brains.com slpy IAM I’ll just click on this over here then I’d have to click on this download button and as you see we’ve got the professional version and the community version and if we want it for just single user development we can just go ahead and download this community version over here and similarly as you see over here we’ve got if you use a Windows system then you can download pycharm for Windows if you have a Mac then you can download pycharm for Mac similarly if you have a Linux then you can download python for Linux since I have a Windows system I’ll select this and I’ll go ahead and download the community version of this then we have something called as Anaconda which is actually a python and R distribution so if you want to perform any sort of machine learning task or data science task then Anaconda is a complete toolkit so this provides you with a lot of tools involving python so it will provide you an IDE called as Jupiter notebook and not just the ID along with the IDE it will also provide you with a lots of libraries libraries such as P plot cbon pandas and napai so you don’t have to manually install these libraries so once you go ahead and install Anaconda so you can install Anaconda from this particular site over here over here you see the products tab click on the individual Edition which is the Open Source One then just go ahead and scroll down so you have the download button over here again and since I have Windows system I’ll just go ahead and download the 64-bit graphical installer and since this is a lot of MB which is 466 MB and since I don’t want to use up my data pack I’ll just go ahead and cancel this because I already have Anaconda installed into my system now once we have installed Anaconda as I’ve told you guys Anaconda comes up with an ID called as Jupiter notebook so what is Jupiter it is a browser based interpreter that allows us to interactively work with python so all of our python code will be implementing in this Jupiter notebook and if you have to open jupyter notebook I’ll just show you how to do it so here on your search bar go ahead and type in Anaconda so You’ have to select this over here Anaconda prompt now in Anaconda prompt you would have to type Jupiter node book and let’s just wait for the browser based interpreter to open up so this what you see is called as the Jupiter notebook which is a browser based python interpreter and we’ll be writing all of our python code over here now if we want to open up a new python notebook click on this tab and select Python 3 now once this is done we have opened up our new python notebook so you have a lot of tabs over here so similarly if you want to create a new notebook select file then you have this new notebook option again you can go ahead and select Python 3 and as you see over here this is our new notebook I’ll just close this up over here then let’s say if you want to download the code file which you’ve written you have this download as option and over here normally whenever we want to download the Jupiter notebook we download it as iynb file which basically stands for python notebook I python notebook you can also download it as other formats if you want to just save it as a simple python file you can just select py over here you can also go ahead and save this file as a HTML doc or maybe a latex Doc and if you want to save you have the save as option over here and similarly you can go ahead and rename your notebook either you can select this or you can just click over here then you can go ahead and rename it so I’ll just write it as my python notebook and then I’ll rename this file over here now let’s go ahead and write our first Python program so to print something out on the console we would have to use the print command then I’ll give this parenthesis over here I’ll use double quotes and inside this I will given the command this is Sparta and I’ll just go ahead and click on run and as you guys see we have successfully printed out this is Sparta we have written our first Python program in Jupiter notebook now we can we are on our way to happily go and hack the NASA systems so this is our building Stone guys we can go ahead and do a lot of things with what we’ve learned with this now you have something called as a kernel over here so what exactly is a kernel you can consider this kernel to be the executor of this program so whenever you would have whenever you write a piece of code and you’d want to execute it you click on kernel and this is what actually runs your entire code then let’s say if you you want to add a new cell about this so this what you see is called as the cell and if you want to add a cell about this you click on insert then you have the insert cell above option similarly let’s say if I want to insert a cell below this I click on insert I select insert cell below and this is how I can add another cell so this was a basic intro about jupitor notebook so let’s start off by understanding what exactly are variables in Python now when you work with any programming language your first task needs to be to work with data isn’t it so whatever programming language you’re working with you are essentially working with data but the question over here is how do you actually store the data that you work with so let’s say you’re working at a company and you want to store the names of all of the employees so we start off with taking three employee names so let’s say we have John Sam and Matt with us and we’d have to store these names somewhere so where can we store them this is where a variable comes in so you can consider a variable to be a temporary storage space now what we’ll do is we’ll take this string value so this what you see inside double quotes is known as a string and we’ll take the string value and we will store this in this variable called as student either we can call the student or employee or whatever we want to and this variable will have a particular address associated with it and since this variable is a temporary storage space the values which are stored inside it can be changed again and again so initially we are storing this value John inside this variable employee or student then after some time we can go ahead and replace this value John with this value Sam similarly after some some time we are changing this value of Sam with this value of Matt and this is how variables work in Python so now let’s go to Jupiter notebook and I’ll give you a proper example of this here what I’ll do is I’ll create a variable called as where one I’ll give this equal to symbol and I’ll go ahead and store the value drawn inside this let me click on run now let me print out this print of wi one and let’s see what will be the result so we have successfully stored the value JN inside wi one and we were able to print this out and since W one is a variable it is a temporary storage space so that is why we can change the value which is stored inside this so now instead of John I want to store the value Sam inside this I’ll click on run again I’ll use print and then I’ll be printing out the value of V one and as you guys see initially we had John and inside this we were able to change this to Sam now again after some time I’ll go ahead and change this value to Matt now let me print out wi one over here print of wi one and as you guys see initially we had John then we changed it to Sam and finally we have changed it to Matt so that was a basic intro to variables now another thing to be kept in mind is every variable variable has a data type associated with it so when you’re working with data that data can be present in any format so when you’re working with numbers such as 10 500 – 1000 – 323 these are called as integers and when you work with decimal point numbers so decimal point numbers such as 3.14 15.97% Point numbers then we have something called as Boolean values so Boolean values are basically you have only zero and one or you can also tag them as true and false so you have only two values over here and those two values are true and false or you can also tag them as zero and one then we have strings so strings are something which you put in single quotes double Cotes or triple Cotes so these are the four four main data types over here in Python so let’s go ahead and look at an example of each of these now I’m going to start off by creating an integer variable so I’ll name this integer variable as num one and I’ll store the value of 10 inside this and just to see what is the data type of this I will use the type method and inside the type method I’ll be passing in Num one and as you you guys see this tells us that the data type of this particular variable is integer then I’ll go ahead and pass in a floating Point number or a decimal number so I’ll call this as let’s say decimate and in decimate maybe I’ll store in the value of 3.14 now let me go ahead and check the type of decimate so inside this I’ll pass in decimate and when I click on run you guys see that this is of floating type then we have the next data type which is of Bulan so here I will have maybe another variable called as log one and inside log one I will store in the value true let me hit run again and then let me check the type of log one so inside type I’ll pass in the variable log one and as you guys see this tells us that this is of bu bu basically means this is of Boolean or logical type and then we’ve got the character or string so this time I’ll have my variable as car one and inside this I will store the name let’s say I’ll store the name Arjun over here then let me check the type of car one and when I hit run you see that this tells us that this is a string type variable we also have another variable over here or another data type over here which is of complex type so complex is basically a data type where you have a real part and an imaginary part so let’s say if I write something called as 3 + 5j so here three would be your real part and 5j would be your imaginary part you would have learned about complex numbers in your primary or in your secondary school so normally in math this J is represented as I so You’ have something called as 3 + 5 I where 3 would be your real part five would be your imaginary part so in Python this I is represented with j instead of I so now I’ll go ahead and store this in a variable called as comp 1 now let me go ahead and check the type of this so type of comp one and I see that this is of complex type so we have successfully under Ood what are variables and we have also looked at the different data types of variable can have now we’ll go ahead to the next Concept in Python which will be operators and as the name suggests operators help us to perform simple operations on this data and we’ve got arithmetic operators relational operators and logical operators so we’ll start with the first set of operators which are the arithmetic operators let me go ahead to this jupyter notebook over here and what I’ll do is I will clear out everything which is present in the console so this scissors which you see if you click on the scissors symbol you’ll be able to cut out all of these cells now let me add a comment so what is a comment comment is something which is not executed by the python interpreter and you can add a comment with this hash symbol so after this hash symbol I am going ahead and writing arithmetic operators I’ll click on run and as you see this is not executed over here so whenever you add a hash symbol over here python interpreter automatically recognizes whatever follows hash symbol as a comment now if I remove this hash symbol and then if I click on run You’ see that we get this errow which tells us that this is invalid syntax because if we don’t add the hash symbol over here then python interpreter would consider this these two actually as two separate variables and since we have not declared any variable called as arithmetic or as operator this is giving us this error so I’ll just go ahead and add this hash over here now after this since we have to perform arithmetic operators and arithmetic operators basically constitute of plus we have have plus then we have minus then we have multiplication and then we have division now I’ll create two variables over here I’ll have first variable num one and I’ll store the value of 10 inside this then I’ll have the second variable num two and I’ll go ahead and store the value of 20 inside this now after creating these two variables let me perform the basic arithmetic operations so I’ll start start off by adding num one and num two so I’ll type num one plus num 2 and when I perform num 1 plus num two I get a result of 30 so basically if you want to add two numbers you have to use the plus symbol between those two operant and since 10 is stored in Num one 20 is stored in Num two we get a result of 30 then similarly I’ll go ahead and perform the subtraction op operation so here I’ll have num one minus num 2 and when I type num 1 minus num 2 I get a result of – 10 because 10 – 20 is – 10 going ahead I’ll also perform multiplication and to perform multiplication I’d have to type num one into num 2 and when I have num one into num2 over here which is basically 10 into 20 I I get a result of 200 then we are only left with division so to perform division I’ll have num one then I’ll use the forward slash symbol which denotes division then I’ll have the second operant over here which is num two and I’ll click on run and as you guys see when we divide 10 with 20 we get a result of 0.5 so these were some basic arithmetic operations now we’ll go ahead and and work with relational operators so I’ll just add another comment over here and I’ll add the comment as relational operators and what are the relational operators these help us to find the relationship between two operant so we can understand if one operant or the value of one operant is less than the other operant or maybe the value of one operant is greater than the other operant so we will have less than symbol greater than symbol equal to symbol and not equal to symbol now again we will use the same variables num one and num two let me just print out num one and num two over here for your sake and as you guys see we have 10 stored in Num one and 20 stored in Num two now I want to check if the value in Num one is less than the value in Num two so I’ll type num one I’ll use the less than symbol then I’ll type num2 over here I’ll click on run and as you guys see I get the result as true which means that num one is less than 20 which we get because 10 is obviously less than 20 now I want to check if the value in Num one is greater than the value in Num two and when I hit run I get a false value because 10 is not greater than 20 now going ahead I want to check if the value in Num one is equal to the value in Num two so this what you see is the double equal to operator you have to understand the difference between the double equal to operator and the single equal to operator so this is the single equal to operator and with the help of single equal to operator we are assigning a value to a variable but when we are using this double equal to operator this helps us to understand if these two values if the operant on the left hand side and the operant on the right hand side are equal to each other or not and when I click on run I get a false value because 10 is obviously not equal to 20 then going ahead I have the not equal to operator so I’ll have num one so not equal to operator is represented like this so I’ll have exclamation mark then I’ll have the equal to symbol then I’ll have num two over here and I get a True Result because 10 is obviously not equal to 20 so these were some of the relational operators going ahead we’ll work with logical operators so I’ll add a comment over here which would be logical operators and we have two logical operators which are and or let’s start with and so and is a logical operator which would give us a True Result only when the both of the operant are true but R is a logical operator which would give us a True Result when either of the oper end is true so let’s understand this in detail so this time I will be creating two Boolean variables over here I’ll have log one and in log one I’ll have the value true stored then I’ll have log two and in log two I’ll have the value false stored so I have log one and log two over here now I’ll perform the and operator on both of these so let me go ahead and type log one and log 2 and when I hit run I get a false value because log one is true log two is false true and false will give us a false result now let me see what will happen when I have log 2 and log one again I get a false result because false and true is also so false now let me check log 2 and log 2 log 2 and log 2 will also give me false because false and false is also false and finally I’ll check log one and log one log one and log one will give me a True Result because and operator gives a True Result only when both of the oper are true now we’ll head on to the or operator so this time I’ll have log 1 or log 2 now true or false will give me a True Result because or will give me a True Result when either of the operant is true then I’ll have log 2 or log one and this again gives me a True Result because false or true is again true then I’ll have log one or log 2 and this again will let me actually change this to log one or log one and this will give me a True Result because true or true is also true and finally we’ll have log 2 or log 2 and this is the only case where we’ll have a false result which is false or false so only in the case where both of your operons are false that is when you will get a false result when you’re working with the or operator so this was all about about the different types of operators in Python now we’ll understand what exactly are python tokens so python token is the smallest meaningful component in a program so when you combine all of these python tokens together that is when you get your final python code so the basic python tokens are keywords identifiers literals and operators so we have already worked with operators which were one of the tokens in Python now we’ll go ahead and understand what are keywords identifiers and literals so we’ll start with python keywords python keywords as it is stated are special reserved words so when I say special reserved words you can’t use these special reserved words for any other purpose which would mean that you can’t give the name of a variable or the name of a function or maybe the name of a class with these python keywords and you have some of these reserved keywords over here which are if def Dell true false while not or return so these are some of the Python keywords now let me just show you how to use these so let if I type in DF so as you guys have seen over here when I type DF this automatically turns into green so python interpreter recognizes this word def as a keyword now let’s say if I try to store something in this def is equal to 10 I get an error because since this is a keyword I can’t use this as a variable similarly let’s say if I have if if again is a keyword and that is why this turns into green then we have something called as identifiers so identifiers are basically the names used for variables functions or objects so till now we had created some variables called as V one or num one or log one so those all are identifiers so the names which you give to the variables functions or objects are known as the identifiers so let’s say if you have a person and the name of that person is Arjun or Sam or Matt so here the names of these people are the identifiers similarly as you need a name to identify a human being that is how you will also need an identify to understand or to call or invoke a variable function or object and this is the simple analogy between the real life and these python identifiers and there are some basic rules when you’re working with these identifiers so the first rule is you cannot have an identifier with special characters so you can have underscore but instead of un uh except underscore you can’t have any other special characters in the name of the identifier and also identifiers are case sensitive so let’s say if you create a variable called as W one with v in small Cas and then you create a variable as V one with v in capital K then both of them will constitute as different variables and then also you have another rule over here which states that the first letter cannot be a digit so these are some basic rules which normally a python coder keeps in mind so let’s go ahead and understand about these rules in Python so I have told you guys that special characters cannot be used in the name so let’s say if I have J personent and I have this over here and if I try to store the value 10 inside this let me click on run so you see that we have a syntax error over here similarly what I’ll do is I’ll have a variable called as N1 and inside N1 I’ll store the value 10 then I’ll have the value Capital N1 and inside this I’ll store the value 20 now let me print in both of these N1 with a small n and N1 with a capital N and as you guys see both of these values are different because both of those variables are different so this is about python identifiers then we have something called as literals and literals are just the constants in python so constant is a value which does not change so whatever values you are storing inside a variable that is called as a literal so here when you’re storing 10 into N1 10 would be literal similarly when you’re storing the value 20 into N1 20 would be your literal then over here when you’re storing the value such as 10 into num1 20 into num2 again they are your literals now we’ll head on to an interesting topic in Python where we’ll understand about strings in Python so what are strings strings are basically sequence of characters which are enclosed within single quotes double quotes or triple quotes and we already know that and we have already seen an example of python strings so let me just give you an example of all three of these where I’m creating a string with single Cotes double codes and triple codes let me go ahead and remove all of this over here because I like it clean let me just remove all of this stuff from over here now what I’ll do is I will create a new string variable called as St str1 and the value I’ll be creating with single codes and inside this I’ll just type hello world and I’ll print out s str1 over here and I have successfully created the string s str1 with Hello World then I’ll have Str str2 and in Str str2 I’ll be creating this with double codes and over here I’ll just type in this is Sparta and I’ll print out s str2 over here going ahead I’ll have another variable called as s str3 and this time I’ll create a multi-line string so if you want to create a multi-line string we can create it using triple codes so I’ll have triple codes over here and inside this I’ll just type I am going to France tomorrow let me run this and let me print out sdr3 right now so as you guys see I have successfully created a string called as I am going to France tomorrow and this what you see backwards sln that indicates a new line so after I am we have backwards sln which tells us that going to comes in a new line similarly we have backward sln followed by France tomorrow which tells us that this again is in a new line so this is some basic idea about strings in Python now that we know this let’s actually see how can we extract individual characters from a string so here we have created a string called as my string so the name of the variable is my string and the value which is stored inside this is my name is John now if we want to extract individual characters we have to understand the concept of index so here these characters are present at indices and the index value starts from zero so here m is present at index z y is present at index one the space is present at index two right so similarly all of these have a particular index assigned to them and the index value starts from zero and if you want to extract this particular character or the first character from a string we’ have to give the name of the string we’ have to give the parenthesis and inside the parenthesis we will given the index value that we would want to extract and since I want to extract the first character we have to give index Z and that is how we were able to extract this then similarly if I want to extract the last character so the index of the last character will be minus1 so either you can manually count the last value over here so that is basically time consuming instead of counting the index if you just want to directly extract the last character then you can just go ahead and give it minus one and that will automatically give you the last character which is present in the string so let’s go ahead and perform these operations in jupyter Notebook let me add in a new cell over here insert cell below and I’ll go ahead and create a string called as my string and over here I’ll have let’s say a string called as my name is John let me print out my string over here now after this I’d want to extract the first character so if I want to extract the first character I’ll just type my string I’ll give in parenthesis I’ll have one written over here and I’ll actually have to give zero because the first character is presented the zero what index so guys this is important you’d have to remember that in Python the indexing starts from zero so this is how I have extracted the first character now similarly if I want to extract the last character which is n then I will give minus1 over here and as you guys see I am able to extract the last character now similarly let’s say if I want to extract this a so this is presented 0 1 2 3 and 4 this is presented index number four so let me just given four over here and as you guys see I have successfully extracted this particular element from this entire string now we’ll go ahead and work with some string functions so the first string function is len which will give us the length or the number of characters which are present in the string so all we have to do is use Len and inside that we will pass in the name of the string so when we pass in my string this tells us that the length of the string is 15 and similarly let’s say if I want to convert all of the characters in The String into lower case we have the lower method so all I’ll do is type in my string. lower and this will convert all of the characters into lower ke and a method which is an analogous to lower is the upper method so I’ll type my string. upper and with the help of this I’ll be able to convert all of the characters into uppercase which you see in the result over here so I have my string ready now I would want to check the length of this and inside l n I will pass in my string and this would tell us that the length of the string is 15 now similarly if I so you see as you see over here we’ve got two Capital characters over here m is capital G is capital I’d want to convert them into lower case so for that purpose first I’d have to given the string name which is my string I’ll use the dot operator then I’ll use the lower method and when I click on run you will see that all of the characters have been converted into Lower Keys now similarly if I want to convert all of the characters into up upper case I’ll go ahead and type my string I’ll use a DOT operator and then I’ll have upper written over here I’ll click on run and as you guys see I have converted all the characters into upper case now we’ll go ahead and see some more function so we’ve got the replace method over here and we’ve got the count method so if I want to replace some particular character or some particular string with another string then we can use the replace method so again first we have to give in the name of the string which is my string I’ll use the dot operator then I’ll use replace method and it takes in two parameters the first parameter is basically that character which I’d want to replace so as you see over here initially we had y over here I want to replace that y with a so initially the sentence was my name is John but I have changed that to myone name is John so quite an interesting method isn’t it then we have the count method so here we have created a new string where we have stored the value hello hello world and if I want to check the count of the number of times a world occurs or number of times a particular substring occurs then we can just pass in the substring into this method so if I want to understand the number of times this substring hello occurs in this entire string so if I pass in hello this tells me that the substring hello occurs two times in the entire string over here so let’s work with this replace method and the count method so we already have this my string variable ready and let’s say instead of my name is John I would want to change the name over here so instead of my name is John I would want to change that to my name is Sam so I’ll have my string then I will use the replace method over here and we already know this takes in two parameters the first parameter is a substring which I’d want to replace so I would want to replace John and I’d want to replace it with let me actually keep it like this and I want to replace it with Sam and when I click on run you would see that I have successfully changed the substring from John to Sam then we have the count method let me create this new string variable over here I’ll have new string and inside this I’ll store hello hello world now that we have this what I’ll do is I will go ahead and use the count method so I’ll have new string and use the count method and inside this I’ll pass in hello and when I pass in hello this tells me that the substring hello is occurring two times now we have two more string functions over here so now we have the find function so the find function helps us to find the index or the starting of the index of a particular substring as you see over here if I want to know the starting index value of this substring part up I’ll just pass this entire substring into this method find and this gives us the value of 8 so let’s just understand this so now if I count the index it’ll be 0 1 2 3 4 5 6 7 and 8 so as you see this s is placed at index number 8 and that is what this find method gives us so let’s say similarly if I would have passed an S into this find method then this would have given us the result of 0 1 2 3 4 and five then we have another method called as split so the split method helps us to divide this string into a list of substrings on the basis of one split criteria so here we’ve got this entire string called as I like apples mangoes and bananas and I would want to divide this entire string into multiple subrings on the basis of comma so here whever this method encounters comma it will separate or segregate it into a substring so I like apples becomes one substring mangoes become second substring bananas becomes the third substring let’s go ahead and Implement an example of these two let me write s str1 over here and what I’ll do is I’ll just have a new value here let’s just say I’ll just type I love Piza and and I would want to know the starting index of this substring pza so I’ll have S str1 do find and inside this I’ll just pass in Piza and we get the result of seven so let’s just verify this 0 1 2 3 4 5 6 and 7 now we’ll go ahead and work with the split method so for that purpose we’ have to create a new string value and I’ll name it as fruit and here I’ll just type in I like apples guas bananas and I’ll also write maybe strawberries then I’ll use the split method fruit do split inside this I’ll give in the separator which will become comma and I’ve got a list of substrings I like apples becomes one substring guavas becomes the next bananas is the next substring and then we have strawberries as the final substring now we’ll go ahead and work with the next data structure in Python which is a list so when it came to a tuple that was an ordered collection of elements enclosed within round braces but a list is an ordered collection of elements which is enclosed within Square braces and that is not the only difference so tups were immutable that is when you created the elements inside a tuple you could not change them later on but when you create a list you can actually change the values which are present in it and this is how we create a list so L1 that is the name of the list which I’m creating and I’ll have square braces and I’ll have these different elements stored inside it let me delete all of these over here and let me start fresh for the list I’ll add a new comment which will be list and inside this I’ll name the object as L1 I’ll have square braces over here I’ll have one e and true let me print out L1 and this is a new list now let me go ahead and check the type of this inside type I will pass in L1 and as you guys see this tells us that this is a list now as we had extracted individual elements from a tuple similarly we can go ahead and extract individual elements elements from a list as well and it is the same process so over here we’ve got all of these elements and the indexing starts from zero so it is very important keep in mind guys so the indexing of a list or whatever data structure you’re working with in Python it starts from zero and if I want to extract the second element over here the index of the second element will be one because this is index number zero this is index number one and when I pass in L1 of one I’ll be able to extract this particular element from this entire list similarly if I want to extract a series of elements so I’ve got all of these if I want to start from index number two so this will be index number two so we’ve got 0 1 and two and this will go on till index number four so as I’ve already told you when it comes to python the outer limit is exclusive so when we give it till five we will be only able to extract the index number four so that is why over here we’ll be extracting 2 B and 3 let me create L2 over here and I’ll have some elements I’ll have 1 a then I’ll have two then I’ll have B after that I’ll have three and going ahead I’ll also have C over here I have successfully created L2 let me print this out and now if I want to extract let’s say B from this let’s see what would be the index it’ll be 0 1 2 and 3 so I’d have to give in L2 inside the parenthesis I’d have to give three and I am able to extract this particular element from the similarly if I want to extract the last element I’ll give in L2 I’ll give in minus1 over here and I able to extract the last element and if I want to extract a series of elements then in that case all I have to do is given an L2 and as we saw in the example if I want to extract 2 B and 3 so the index for this is 0 1 and 2 I’ll give it two over here and if I want to extract till three so this will be 2 three and four so that is why i’ have to give index number five as well and we are able to extract 2 B and three from this entire list now let’s see how can we modify a list so we have the same list over here and initially at index number zero we have the element one but if I want to change it to some other element all I have to do is given the index number and I have to assign a new value to that particular index number so as you guys see I am assigning the value of 100 to this particular index number and I’m able to change this value of one to 100 now we can also append a new element at the end or pop the last element and to add a new element at the end we will be using the append method so it have to given the name of the list we’ll use dot operator and then we’ll use the end method and we’ll just give the value which we’ want to append so when I type in Sparta over here this gets appended at the end of the list now similarly we can go ahead and pop the last element so if we have to pop the last element popping basically means removing the last element so we would have to use L1 do popop and it automatically removes the last element so as you guys see we had added Sparta but after using the pop method this Sparta value was removed from this list now we have the same list over here which is L1 let me actually I’ll have L2 over here not L1 let me print an L2 for you guys over here and I’d want to change let’s say this particular value here so let’s say instead of a I’d want Z so I’ll have L2 and the index for that is one and instead of a i’ want to store Z inside this and let me print out L2 again so initially we had a but after changing it we have Z over there now we’ll see how to append an element at the end of this list so we’ have to give L2 I’ll use dot operator then I’ll be using the epen method and inside this I’ll just add this word called as python let me print in L2 for you guys and I have added python at the end of this now if I want to pop this out I have to write l2. pop and when I click on run we see that this has been popped out and let me print out L2 again for your reference we see that the last element has been removed now there are some more modifications which we can perform on the list so let’s say if we want to reverse the elements which are present in a list so as you see in L1 we have all of these elements over here and if I want to reverse the order of these elements all I have to do is use the reverse method so I’ll type in L1 do reverse and when I print this out we see that the elements are printed backward then if we want to insert an element at one particular index value so when we use the append method we were able to add an element at the end of a list but instead of adding an element at the end of a list if we want to insert an element at some particular index then this is how we can do so I’ll have L1 do insert then I’ll give the index position where I’d want to insert so initially at index number one we have this value a but now at index number one I want to insert Sparta so this takes in two parameters first parameter is the index at which I’d want to insert second parameter is the value which I’d want to insert and as you guys see I have inserted Sparta at index number one now here as you see the rest of the elements have been shifted one index towards the right so a which was initially present at index number one is now present at index number number two two which was initially presented index number two is now shifted to index number three so each element shifts towards the right by one index value then we can also go ahead and sort a list so we have all of these elements over here now if you want to sort these elements in alphabetical order then we can just go ahead and use the sort method and this sort method sorts all of these with respect to alphabets so we have apple followed by banana followed by guava and then finally we have mango so let’s use the reverse method insert method and the sort method in jupyter Notebook so we have the same L2 over here now if I want to reverse this I’ll just type in l2. reverse and when I click on run this has been executed now let me print in L2 so as you guys see initially we had this particular sequence over here which was 1 Z 2 B 3 and c and after using the reverse method the elements have been reversed now we will go ahead and add an element at one particular index so if I want to add something at maybe index number three so now we’ve got 0 1 2 3 so we’ve got two which is present at index number three but now let’s say I’ll have L2 do insert and at index number three I’d want to insert great learning and let me hit run and let me print out L2 and as you guys I see at index number three I have inserted great learning and the elements which are followed after that shift towards the right by one index value now finally we’ll see how to sort a list so I’ll have L3 and inside this I’ll have some elements so I will have Apple after that I’ll have mango then let me actually change the sequence over here so let me start off with mango first then I I’ll have apple going ahead I’ll have guaa and then maybe I’ll have lii now this is the sequence which is present in this list and if I want to sort this out I would just have to use the sort method so when I hit l3. salt so this has to be a list and not a duple so this has to be square braces you guys have to keep that in mind let me change this over here let me cut all of this out and let me paste it over here and as you guys see this method has been executed and when I hit on run we have changed the order so we’ve got Apple followed by guava followed by lii and we have mango at the last now we can also perform the same concatenation and repeating operations on list as well so here we have L1 where we have the elements 1 2 and 3 then we have L2 where we have the elements a b and c and if I want to concatenate this L2 at the end of L1 all I have to do is use the plus operator and when I use L1 + L2 this is what I get I’ll have 1 2 3 a b and c and if I want to repeat the elements which are present in a list I would just have to multiply the name of the list with a particular scalar number so as you guys see I am multiplying L1 with three and I have repeated these elements three times so here I’ll just have concatenating a list and I’ll have I’ll just go ahead and create two lists over here inside L1 I’ll have 1 2 and 3 inside L2 I will have a b and I’ll also have C now I’ll perform L1 plus L2 and we have appended L2 at the end of L1 you have to understand that L1 + L2 and L2 + L1 would give you different results so now when I actually type in L2 + L1 you would see that we have appended L1 at the end of L2 so this sequence also changes when you change the sequence with the plus operator over here now let’s go ahead and repeat the elements so I’ll have repeat list and I let’s say if I want to repeat the elements which are present in L2 so I’ll just multiply L2 with let’s say five because I want the elements to be repeated five times so I have a b and c being repeated five times now we’ll head on to the main component which is about the different data structures in Python so we have Tuple list dictionary and set let’s start off with the first data structure which is a tuple so till now when we have worked with single variables you were able to store only one value or a single value inside a variable but with the help of these different data structures such as Tuple list set and dictionary we’ll be able to store multiple elements inside a data structure and it’s not that we can store only multiple elements of a single data type we can also store elements of different classes or different types into this data structure so let’s start with Tuple what exactly is a tuple is an a collection of elements enclosed within round braces and tuples are immutable what do I mean when I say tuples are immutable so what this basically means is if you create a tuple then you can’t go ahead and change any of the values present in it later on a tuple cannot be modified once you create it and this is the example of a tuple over here so we have round braces inside the round braces I have stored the elements 1 a and true so as you see I have elements of different types so we can store elements of different types into a tuple so let me create my first Tuple in Jupiter notebook I’ll type in let me actually have this in a fresh space I’ll add the comment Tuple and over here I’ll type in tup1 I’ll have round braces over here so first element is one then I’ll have Sparta then I’ll have true over here and then let me just print out T1 so I have created this Tuple now let me check the type of this type inside this I will pass in tp1 and this tells us that this is a tuple now if I want to extract individual elements from a tuple how can I do that well the process is pretty much similar as when compared two strings so if we want to extract the first element from a tuple so as you guys see over here I have created a tuple which comprise of all of these elements 1 a true 2 B false and if I want to extract the first element since the first element is presented index number zero I’d have to given the name of the Tuple and inside the parenthesis I’d have to given the index value which will be zero and I have extracted this particular element from this entire Tuple similarly if I want to extract the last St element so if I want to extract the last element I just have to give in minus1 so in P1 I’ll give in minus1 and with the help of this I am able to extract the last element now if I want to extract a continuous sequence of elements so here if I want to extract a true and two which is a continuous sequence of elements I’d have to give something like this so inside the parenthesis I’ll given 1 colon 4 so this is the starting value of the index this is the ending value of the index now here when it comes to python you have to keep in mind that the ending value is exclusive the starting value is inclusive so when you give one the starting index value a right so we have one and we have extracted this element but when you given four this only goes till index number three so that is why we have extracted only a true and two so two is presented index number three we have extracted a true and two but when we have index number four so index number four we have the value B but this is not extracted because index number four is exclusive so let’s go ahead and create a new Tuple and extract some elements from those tuples so what I’ll do right now is I will have a new Tuple called as tup2 and let me just store some random values inside this I’ll have 1 a true then I’ll have two B B and I’ll have false inside this so I have created T2 now if I want to extract the first element so that is obviously present at index number zero I’ll just type in T2 and inside this I’ll give in the index value which is zero and as you guys see I was able to extract this particular element from this entire Tuple now similarly if I want to extract the last element so I’d have to type in T2 I’d have to give in the parenthesis and to extract the last element I’d have to give minus1 and if I want to extract a series of elements so let’s say if I want to extract true two and B so here true the index value would be two so I’ll have T2 the starting index value is 2 and this two 3 4 5 so since this goes till 5 five is also included I would have to give 6 0 1 2 3 4 5 this will go till six let me hit run and as you guys see I have included true 2 B and false if I let’s say Wanted only till B so this will be 2 3 4 and if I since this has to be included I’ll just given five over here and I have extracted only true two and B now we’ll actually try to modify a tuple so initially I had told you guys that that a tuple is immutable now when I say a tuple is immutable I would basically mean that whatever you store inside it cannot be changed so here I’m actually trying to change the value which I had actually stored in a tuple so as you guys see T1 and inside this the whatever element was present at index number two I am trying to change it but we get an error over here and the error is duple object does not support item assignment so let me just print an tup2 over here I’ll hit run and let’s say if I want to change this particular value so I have this is present at 0 1 2 and three index number three so tup2 and index number three I’d want to change that from 2 to 20 let’s see what do we get we get the same error Tuple object does not support item assignment because Tuple is an immutable object and that is why you cannot go ahead and change whatever is stored inside a tuple so we have seen that a tuple cannot be modified now let’s go ahead and perform some basic operations on top of the Tuple so here we have the same Tuple where we have all of these elements over here 1 a true 2 B and false now if you want to find out the length of a tuple or in other words you would want to find out how many elements are present in a tuple then we can just go ahead and use this Len method so this would give us the number of elements El which are present in this Tuple and as you see over here we’ve got six elements and that is the result over here then going ahead we can also concatenate two tuples that is we can attach the elements of one Tuple to the back end of another Tuple so here we have tp1 where we have elements 1 2 and 3 then we have T2 where we have elements four 5 and six now when we are trying to concatenate all we have to do is use the plus symbol or the plus operator and when we use tup 1 + T2 we get the result 1 2 3 4 5 6 so let’s go ahead and perform these operations in Jupiter notebook so I’ll just create the tup again over here I have T1 and let me add in some elements so I’ll have 1 a true then I’ll have 2 B and then I’ll also have false over here so I have created this stuple now if I want to check the length of it all I have to do is use the L en method and inside this I will be passing in the object and as you guys see we have the result which tells us that there are six elements present in this Tuple now I’ll create two more tupal I’ll have tup2 over here and inside this I will have the elements 1 2 and 3 going ahead I’ll create another Tuple with the name T3 and inside this I will store the elements four 5 and six now I would have to perform tup2 plus T3 let me change the spelling over here and as you guys see we have concatenated these elements at the back end of T2 so this was a very simple operation now if we want to repeat the elements which are present in a tuple that is also something which we can perform so here in this Tuple we just have two elements which are Sparta and 300 now if you want to repeat these elements a certain amount of time then we have to multiply this with a scalar number so here when I’m multiplying tup 1 with three I get Sparta 300 Sparta 300 and Sparta 300 which basically means I am just repeating these elements three times now we can also perform repeating and concatenating at the same point of time so here we have tup1 and T2 so first what I’m doing is I am repeating the elements which are present in T1 so here when I use tup1 into three the elements are repeated three times so I have Sparta 300 repeating three times then I am attaching or concatenating tup2 at the back end of this so let me add a comment over here I’ll just have repeating elements in a tuple and now I have this tp1 over here let me just print out T1 and if I want to repeat these elements three times all I have to do is type in tup1 into three and let’s see so as you guys see 1 a true 2 B false so we have this once then the same thing is being repeated twice and the same thing is being repeated twice now similarly if I want the entire thing to be repeated five times I would have to multiply this with five so as you guys see I have repeated all of the elements five times now we’ll do repetition and concatenation at the same time I’ll add a new comment over here repetition and concatenation I’ll have two tuples over here I’ll have T1 where I’ll have let’s say a b and then I’ll have C then I’ll go ahead and create a new Tuple which will be tup2 and inside this I will have x y and then I’ll also have Z and now this is an interesting operation so I’ll have T1 into 3 plus T2 and let’s see the result so as you guys see I have repeated the elements which are present in tup1 three times so I have ABC ABC and ABC then I’m adding this at the back end of it and I get X Y and Z so this was another simple operation now we also have some simple Tuple functions so if you have a tuple and if you want to find out the minimum value and the maximum value which are present in it all we have to do is use the Min method and the max method so over here I have these elements and if I want to find out the minimum value which is present over here all I have to do is use the Min method and I pass in the tp1 object inside this and as you guys see this method tells us that the minimum value which is present in this duple is one going ahead similarly we use the max method and when we pass in tup1 this tells us that the maximum value which is present in this Tuple is five so I’ll have tup1 and let me add some numerical values inside this so I’ll add some random numbers in a random order over here so I have 8251 07 now if I want to I have to remove the C over here now if I want to find out the minimum value which is present in it all I have to do is use the Min method and inside this I’ll be passing in tup1 and as you guys see this method tells us that the minimum value which is present in this duple is zero similarly if you want to find out the maximum value I’ll use the max method and inside this I’ll again pass in tup1 and we get the result of eight this brings us to the end of this tutorial on tuples and python so dictionary is an unordered collection of key value pairs enclosed within curly braces and a dictionary again is mutable so what exactly are key value pairs let’s see an example of that so over here we are creating a dictionary where we have two key value pairs so the first key is Apple second key is orange first value is 10 second value is 20 so you can also consider it this way let’s say we have the name of the fruit and the cost of the fruit or maybe the quantity of the fruit so we have apple and let’s say there are 10 apples then we have orange and let’s say there are 20 oranges and you will be separating the key with the value with this colen over here now let me just delete all of this and let’s start fresh for our dictionary so instead of list I’ll just type in dictionary over here and let’s say I’ll create this dictionary like this and I’ll have um let’s say my first fruit is mango and I have 10 mangoes with me then I’ll have apple and let’s say I have 20 apples then I have lii and I have 30 lies and finally I would have strawberry and I would have 40 strawberries with me let me print out the result over here so this is our first dictionary which we have just created and just to ensure that we have actually created a dictionary let me check the type of it so type of root would tell us that this is of dict type which is basically a dictionary now once we have created a dictionary we can actually go ahead and extract the individual keys and values which are present over here so this is our dictionary and if you want to extract only the keys so this what you see on the left side of the colon those are our keys and if you want to extract only the keys all you have to do is use the name of the dictionary follow it up with the keys method and we’ll get all of the keys which are present in this dictionary similarly if you want to extract all of the values we would have to use the values method so when I type in fruit. values I am able to extract all of the values which are present over here so I’ll have fruit which is a dictionary which is already present and if I want to extract all of the keys I’ll just go ahead and use the keys method and as you guys see I am able to extract all of the keys which are present similarly if I want to EXT ex ract the values I’ll type in fruit. values and I have extracted all of the values which are present now since dictionary is mutable we can modify it so that would mean we can add a new element or we can change an existing element so here we had only four elements but if I want to add a Fifth Element so here we don’t have mango initially but if I want to add mango all I have to do is use the name of the dictionary then inside parenthesis I’ll add the new key so this what you see inside parenthesis I’m adding the new key and I’m adding the value to it so here as you guys see I have attach this new key value pair at the end of this dictionary similarly if I want to change an existing element so initially the value of Apple was 10 but if I want to change the value then inside the parenthesis I’ll just give in the key and I’ll assign a new value to it so initially we had 10 now we have modified it to 100 now we’ll see how to add a new element so I’ll have fruit over here let me just print it out we have four elements now let me add a new element inside this so I’ll have fruit I’ll have the square braces and let’s say the new fruit which I’ll be adding this guaa and let’s say I have 50 guavas with me and let me print out fruit right now and let’s check the result so as you guys see we have attached this new key value pair at the end of this dictionary and finally let’s see actually how can we modify an existing elements so we’ve got let’s say if I want to modify this particular key value pair so I have lii and the value of lii is 30 so I’ll have fruit inside this I’ll give in the key which is lii and I want to change 30 to 300 I’ll just assign 300 to this and let me print this out and as you guys see initially the value was 30 I have successfully changed it to 100 now we’ll go ahead and work with some dictionary functions so let’s say if we have two dictionaries over here we have fruit one and fruit two so in Fruit one we have Apple and Orange in Fruit two we have banana and guaa and if I want to append the elements of fruit two to fruit one or in other words if you want to concatenate the fruit two values to fruit one all we have to do is use the update method so I have fruit one and I’ll use update method and I’ll pass in Fruit two inside this so as you guys see we have appended banana and guaa to the end of fruit one then similarly we can go ahead and pop an element from a dictionary so we can uh so if we want to pop any key value pair so inside the pop method we would have to give the key which we want to pop so we had orange but I don’t really like oranges so that is why I went ahead and I popped out Orange so as you guys see orange is not present in this particular list now let’s create two more dictionaries I have fruit one and I’ll have two fruits inside this so I’ll start with mango and I have 10 mangoes then I’ll have apple and maybe I have 20 apples with me then I’ll have fruit two and in Fruit 2 let’s say I’ll start off with guaa and I have 30 guavas with me then going ahead I’ll have lii and I’ll have 40 Lees with me so I have created these two dictionaries so we have made a mistake over here let’s actually check what this mistake is so instead of the equal to operator I’d have to give colon over here that is important so I have created fruit one and fruit two let me print out fruit one and fruit two for your sake and once we have printed these two let me go ahead and actually epen the values of root2 to fruit one so for this I’d have to use fruit one then I’ll Us in the dot operator over here and after that I will use the update method and inside the update method I’ll be passing in Fruit two and let me print out let me close this first now let me go ahead and print out fruit one now as you guys see I have appended the values of frot 2 to fruit 1 now we have frot one already but let’s say if I want to pop out something from this so let’s say from this if I want to pop out the value of lii I’ll have fruit one then I’ll use the pop method so fruit one. pop so we have an error because we’d actually have to give a key inside this so because I’d want to pop out lii I’ll give an lii over here and we have successfully popped out lii from this now we’ll head on to the last data structure in Python which is set so set is an unordered and unindexed collection of elements enclosed within Square braces so when we say unordered so in whatever sequence you insert the elements in a set those that particular order does not remain intact and also when we say it is not indexed you can’t extract elements from a set with a particular index value because there is no proper ordering and also you’d have to keep in mind that in a set duplicates are not allowed so you can’t have the same element twice but if you actually given the same element twice what happens is the set takes it only once and uh we are creating one particular set over here and if you want to add a new element inside this so initially we are creating this set where we have all of these elements we have 1 a true 2 2 B and false and if I want to add a new element at the end of this or somewhere so I’ll just use S1 do add and this is how we can insert the new element inside this now let’s say instead of adding just one particular element if I want to add multiple elements at the same time so instead of the add method we will be using the update method and with the update method I am passing in these list of values which are 10 20 and 30 and as you guys see I have inserted 10 20 and 30 inside this but then again you have to keep in mind that the order is not maintained in a set so these are inserted randomly and if you want to remove a particular
element you can just use the remove method and you will pass in the element that You’ want to remove again since there is no indexing you can’t remove elements with an index value you would have to give the value which You’ want to remove explicitly so let’s create our first set so I’ll have S1 I’ll just add some elements over here I’ll have a b c d e and f let me print out S1 for your reference and this is what we have now let’s say I’ll add some duplicates inside this and let’s see what happens so I’ll have a repeating three times then I’ll have B also repeating two times then I’ll have C repeating two times now if I print this out as you guys see we have only a b c d e and f even though a is repeating three times we will only have one unique value of a similarly even though B and C are repeating two times it’ll only have one unique value of B now if I want to go ahead and add add a new element inside this I’ll use the add method so S1 do add and inside this I’ll just add Sparta so when I use S1 do Sparta and when I print S1 so we have inserted Sparta over here similarly if you want to pop out something or remove something we will have to use the remove method so I’ll have S1 do remove over here and inside this let’s say if I want to remove the element e I’ll just pass in E over here and let me print out S1 again so we have successfully removed the element E from this entire set now we’ll work with some set functions so here we have two sets S1 and S2 in S1 we have the elements 1 2 and 3 in S2 we have the elements a b and c now if we want to combine all of the elements which are present in S1 and S2 then we can use the Union operator so S1 do Union S2 will give us a union of S1 and S2 and as you guys see in the resultant we have 1 2 3 A B and C similarly we have two sets over here and if you want only the common elements which are present in both of the sets so here we have 1 to six here we have 5 to 9 if you want the common elements I would use the intersection method so when I use S1 do intersection S2 you will see that we have five and six common in S1 and S2 and that is the result which we get let me have S1 over here and in this I’ll have 1 2 and three I’ll have S2 in which I’ll store four five and six now let me use the union operator so I’ll have S1 do Union and inside this I’ll be passing in S2 and as you guys see I have appended four5 6 at the end of S1 now similarly if I want to find out the common elements so let me make some modifications in S1 so in S1 let’s say I have from 1 2 3 4 and 5 and then S2 let’s see I have the elements 4 5 6 7 and 8 now if I want to find out the common elements which are present in S1 and S2 I’ll have S1 do intersect and inside this I’ll be passing in S2 and uh we seem to have an error over here so this has to be intersection and not intersect let me click on run so as you guys see by using the intersection operator we have the common elements which are four and five now we’ll understand about flow control statements in Python and then flow control statements we’ll have decision making statements and looping statements we’ll start off with decision making statements and as you can get from the name itself decision making statements would help us to make a decision on the basis of a condition and we have a very good example over here right in front of us so let’s say you would want to play football but it’s actually raining outside so the condition over here is if it’s raining outside then you can’t play you’d have to sit inside on the other hand if it’s not raining else it is not raining then you can go out and play football so this is a very good example of if El statement then let’s look at another example let’s say you have your main exam coming up and you go ahead and give a mock exam and in that mock exam if you score greater than 70 marks then your parents tell you that they’ll buy you an ice cream but on the other hand if you score less than 70 marks then you would have to give another mock test so this again is an example of IFL statement so now that we’ve understood how IFL statements work let’s go to Jupiter notebook and Implement them so here we have two variables A and B we have stored the value of 10 in a and 20 in B and we are trying to see if the value of B is greater than the value of B that is we are checking if 20 is greater than 10 and if that is evaluated to true it will just go ahead and print out B is greater than a and this is the syntax as you see you’ll give an if the keyword if you’ll follow it up with the condition and in the condition we are checking if B is greater than a so is 20 greater than 10 that is evaluated to true and since that is evaluated to true when I hit on run I’ll get this result which is B is greater than a now let me change the condition over here so instead of checking if B is greater than a I want to check if the value which is present in a is is greater than the value which is present in B so I’m basically checking if 10 is greater than 20 and obviously this evaluates to false and since this evaluates to false whatever is present inside the body of this if will be skipped out and when I hit run you’ll see that I’ll not get any result over here because this is evaluated to false so whenever if is evaluated to false you need something else so that is why we have this else keyword over here so here we are checking if a is greater than b and since this has been evaluated to false I’ll give an lse keyword over here and I will print out whatever will happen since this is false I would have to print out B is greater than a and when I hit on this you would see that I’ll get B is greater than a and which is actually right so this is about if else condition then we have another variation of if else which is if L if else so with the help of this we can compare multiple variables together or we can have multiple conditions together and this time I’d want to find out the greatest value among three values so I have three variables over here A B and C I’m showing the value of 10 in a the value of 20 in B and the value of 30 in C and once I do that using if I start off by checking if the value of a is greater than b and also if the value of a is greater than C so as you can look over here I am giving two conditions and those two conditions have been joined with the help of this and operator if a is greater than b and if a is greater than C and if that is the case I’ll go ahead and print out a is the greatest and if either of these is evaluated to false then with respect to and operator you know that if either of these is false or both of them are false then this part will be skipped so here if a is greater than b we are checking if 10 is greater than 20 that is obviously false and we here we are checking if a is greater than C so is 10 greater than 30 that again is false so false and false will be evaluated to false and that is why we’ll be skipping out this particular line then we’ll head on to LF and this time we are checking if B is greater than a and b is greater than C so B is greater than a 20 is greater than 10 this is evaluated to true after this we are checking if 20 is greater than 30 this is evaluated to false so true and false is again false and that is why we’ll skip this as well and finally we’ll enter the final L statement and we’ll just go ahead and print out C is the greatest so this is about if LF else then we can also go ahead and use the if statement with a tuple so here we have created a tuple where we have three elements a b and c and once we create this Tuple I am trying to find out if the element a is present in this Tuple so here if a in tube one then I go ahead and print out a is present in T1 and as you see since this is evaluated to false or in other words this element is present in the stuple I’m able to print out a is present in tp1 now on the other hand if I would want to check if an element Zed is present in this duple so here I have if Zed in tup1 print Zed is present in tup1 and as you see I don’t get anything because this element is not present so here what I’ll do is I’ll add the lse statement and I’ll print out Zed is not present in T1 and this time I’ll get the result because this is evaluated to false and we’ll print out whatever is there in the else condition and this time we are going ahead and using the if statement with a list so again we are creating a list L1 over here and we have these three elements a b and c and this time what we are doing is we are checking if the value which is present at zero with index of this list is equal to a and if that value is equal to a I would want to change that value to 100 so you see if L1 of 0 is dou equal to a I am assigning a new value over here and that value is equal to 100 and after I run this you would see that initially the value was a and I have changed that value to 100 now let’s say if I run this back again and if I would want to change this value from a to zed I’ll just have Zed over here and you would see that initially the value is a and this time I have changed the value to zed and finally we will be applying the if statement with the dictionary so here we have created a dictionary D1 where we have three key value pairs K1 K2 K3 the value of K1 is 10 the value of K2 is 20 and the value of K3 is 30 and with the help of the if statement I am adding 100 more to the first key over here so the condition is if D1 of K1 is equal to 10 I’m checking if the value for the key K1 is equal to 10 then I will add 100 more to this by using this condition so D1 of K1 is equal to D1 of K1 + 100 so I have an error over here I’d have to initialize D1 and as you guys see initially the values were 10 20 and 30 and after using the if condition I have added 100 more to the first value of the first key so those were decision- making statements now we’ll head on to looping statements and these are used to repeat a task a certain number of times and again we have a very beautiful example over here let’s say you have a bucket and you would want to fill up that bucket with a mug of water now what you’ll do is consider the mug and the bucket to be empty at this point of time first you’ll fill up the mug and you’ll pour this water into the bucket then you’ll check if the bucket is full or not after this again you’ll take a mug full of water then pour it back into the bucket again you’ll check if the bucket is full or not then next time again you’ll take a mug full of water pour it back into the bucket and again you will check if the bucket is full or not and this process goes on until the bucket is completely filled up with water and you will stop this only when the bucket is filled so here what you’re doing is you’re looping or you are performing the same task again and again until a condition is met we have another example over here let’s say you’re listening to your favorite song and you put that song on Loop so here the condition is the same song will be kept on playing until you either close the app or maybe use switch off your phone so this is the condition over here the song is on Loop until you close the app you stop the song or maybe you switch off your phone then we have a very interesting example so at the end of every month you will get credited with your salary amount so here what is happening is if the date is equal to 30th or 31st and if it is the last day of the month you will have salary Creed into your bank account this again happens in a loop so these are some examples of looping statements and we have two types of looping statements in Python which are fur and while we’ll be working with both of them so we’ll go ahead and start off with the for Loop so here we have created a list called as fruits and this has these three fruits over here apple mango and banana now with the help of this fur loop I would want to print out all of the individual Elements which are present over here so I’ll have for I in fruits print of I so here I what happens is initially the value of I will be equal to Apple then the value of I will be equal to Mango then the value of I will be equal to banana and this will end once I reaches the last element which is present in this list and that is how we are printing out each element which is present in this list so this is a very simple example of how we can work with the for Loop then we can also have a nested forur Loop where we’ll have one fur Loop inside another forur loop and here we have two lists again we have one list comprising of different colors and we have another list comprising of different items so the colors are blue green and yellow and the items are book ball and chair and what I’m doing is I have an outer for Loop which would help me to pick a color so here it is for I in color then inside the outer for loop I have an inner for Loop which goes for J in item which would help me to choose an item and I print out I comma J let’s understand how this for Loop works over here so initially value of I is equal to Blue and we enter the for Loop and the value of J over here will be equal to book so I print out I comma J it will be blue book then value of J is incremented it becomes ball and I print out blue ball again then value of J is incremented it becomes chair then I print out blue chair then I go back to the outer loop and blue is incremented then the color becomes green then I have green book green ball green chair again after this value of green becomes yellow then I print out yellow book yellow ball and yellow chair this is how you can work with nested for loop after the for Loop we have the while loop so while again would help us to repeat a particular task and this task is repeated on the basis of a condition and over here I am trying to print out the first 10 numerical numbers using a y Loop here I have initialized a variable called as I and I have assigned the value of one inside this variable and after this I am checking if the value of I is less than or equal to 10 and if the value of I is less than or equal to 10 I enter this y Loop and I print out I then I increment the value of I so let’s understand what is happening in this y Loop initially value of I is equal to 1 so the condition is is 1 less than or equal to 10 and since that is true I go inside the for loop I print out one then I value is incremented it becomes two then I go back and I check if 2 is less than or equal to 10 this again is true I head back I print out two then then I increment the value of I it becomes 3 then I’m checking if 3 is less than or equal to 10 this again is true I head back into the Y loop I print out three then I value is incremented it becomes four then again I am checking if 4 is less than or equal to 10 this is true I come back into the Y loop I print out four then I will increment the value of five it becomes five then we will proceed the same way till the value of I is equal to 10 when the value of I is equal to 10 I am checking if 10 is less than or equal to 10 and this condition is true I print out 10 over here after this I have I + 1 value of I becomes 11 and this time when I check is 11 less than or equal to 10 this condition fails and this is when I come out of this y Loop and this is the result which I get over here similarly instead of the first 10 numbers if I want the first 15 numbers I’ll just go ahead and change this value over here and you would see that I have printed out the first 15 numbers now using the Y loop I can also go ahead and print the two multiplication table here I have I and I’m assigning the value of 1 to I then I have a new variable called as n and I’m assigning a value of two to this new variable and and in the Y loop again the condition is while I is less than or equal to 10 and while this condition is true I will print out n into I is = n into I then I am incrementing the value of I so let’s again understand what is happening inside the Y Loop so initially value of I is equal to 1 so the condition will be while 1 is less than or equal to 10 which is true I come back over here and I print out n into I which will be 2 into 1 is = 2 so I print out this then I increment the value of I it becomes 2 is 2 less than or equal to 10 yes that is true I come inside then this time I print out 2 into 2 is equal to 4 then I value is incremented it becomes three so is 3 less than or equal to 10 that again is true so this time I will have 2 into 3 which is equal to 6 and I print this out and this process continues till I value is equal to 10 and when I value is equal to 10 I will have 10 is less than or equal to 10 which is true so here it will be 2 into 10 is equal to 20 and we’ll print that out and after that when we increment the value of I it will become 11 so it’s 11 less than or equal to 10 which is false and this is when we will come out of this while loop so these were some examples with the help of while loop now we’ll also see how to apply this while loop on top of a list so here we have this list L1 with all of these numbers 1 2 3 4 and five and I would want to add 100 to each individual element of this list so I start off by initializing this variable I I given the value of zero and this y Loop Will Go On tell the length of the list or in other words the number of elements which are there in the list what is the length it’ll be 1 2 3 4 and 5 initially value of I is equal to 0 so we are checking if 0 is less than 5 which is true we come inside the Y Loop here it will be L1 of 0 is equal to L1 of 0 + 100 so it will be 1 + 100 we’ll print out 1 + 100 over here then we have incrementing value of I it becomes 1 so is 1 less than 5 it is true so here we will have L1 of 1 is equal to L1 of 1 + 100 so it will be 2 + 100 which will become 102 and this is how we’ll go on and print out or add 100 to each element of this list now that we have built a strong Foundation let’s elevate your skills it’s time for advanced python Concepts get ready to dwel into objectoriented programming inheritance and exception handling along with efficient file handling techniques now we’ll head on to one of the most important Concepts in Python which is objectoriented programming now when you look around you you would see that you are surrounded with objects the laptop which is there in front of you that is an object the phone which is there in your hand that again is an object the bottle which is there beside you that again is an object now if you want to represent all of these Real World objects in the programming Paradigm you would need an objectoriented programming language so we would have a lot of object-oriented programming languages and python is also an objectoriented programming language because it allows us to represent all of these real world entities in a programming world now to understand the concept of object-oriented programming we would need to understand two main components of it which are classes and then we obviously have objects so let’s start with this term called as class so what exactly is a class simply put you can consider a class to be a template or a blueprint for real world entities and we have a very simple example over here let’s take the example of a phone now when we talk about a phone a phone would again have two things associated with it it will have some properties and it will have a certain Behavior associated with it now when I say properties the phone will have a color associated with it the phone will have a cost associated with it and the phone will also have a certain battery life associated with it and along with these batteries when I say a phone will have certain behaviors associated with it now what do I mean by behaviors I simply mean that with the help of a phone you can make calls with the help of a phone you can watch certain videos on it and all also some phones allow you to play games in it so this class this phone class has properties and behavior associated with it and what exactly is a class in Python you can consider this class to be a user defined data type so as we have predefined data types so we had looked at all of these predefined data types which were integer float Boolean and string so similar to these predefined data types we can create a user defined data type and that user defined data type will be this class so here what we doing is we are creating this class this user defined data type called as mobile and this user defined data type will have attributes and methods inside it so these attributes are nothing but the properties of the class and these methods are nothing but the behavior of the class now that this is clear let’s understand the next component of objectoriented programming which is is object so we already know what is a class now object is nothing but a specific instance of a class so when we say we have a mobile class the specific instances of this mobile so we have apple Motorola and Samsung so Apple Motorola and Samsung would be objects of this class phone or mobile and if you want examples of what exactly is an object so as we have these predefined data types so these are integers so a is an integer variable and I’m storing the value 10 inside this similarly B is an integer value and I’m storing the value 20 inside this so similarly if we have the mobile data type then for this mobile data type we have the objects Apple Motorola and Samsung so that was a brief intro to objectoriented programming now let’s see how can we actually create a class in Python so to create a class in Python we’d have to start off by giving this keyword called as class then going ahead we will give in the name of the class and by convention you would have to remember that the name of the class needs to be Capital the first letter has to be Capital so that is why we have given capital P over here so the name of this class is phone and inside this we are defining two methods so the with the help of these methods we can have the behavior of this class so I am having this first method called as make call and inside this method I’m just printing out making phone call and over here as you see this method takes in a parameter which is self so for now just understand that with the help of this self parameter you will be able to invoke the attributes which are present in this class just understand this for now and as we go ahead through objectoriented programming it’ll be much more clear to you guys so as we have cre created this particular method similarly we will create another method called as play game and this again takes in one parameter which is self and all I’m doing is printing out playing game so now that I have created my blueprint or my class over here I would have to create a specific instance of it or in other words I’d have to create an object of this phone class so I’ll just write down phone over here and I will store it in this object called as P1 and now that I have the object of this class I can go ahead and invoke the methods which are present in this class with the help of this object so when I type in p1. make call with the help of this I will be able to invoke this method and I am printing out making phone call similarly when I invoke p1. playay game I am invoking this method and I’m printing out playing game so this is how we can create a class and an object in Python so let’s let’s go to jupyter notebook and work with this example so my task would be to create a class so I’ll have class I’ll give the name of the class as phone I’ll give it a color over here and after this I would have to create a method and to create a method we already know that we will be using the def keyword and I will give the name of this method as make call and we know that this takes in only one parameter which is self and inside this I will just have a print statement which will be making a phone call and once I have this method I will go ahead and create another method over here so I will call this method as play game def of play game and I’ll have self over here again I’ll have a print statement and here I will write down playing a game so I have created created my phone class over here and now that I have created this phone class I would have to create an object of this so here I will have P1 is equal to phone so I have to give parenthesis over here and this is how I’m creating an object of this phone class and now that I have the object ready so with the help of the dot operator I can invoke both of these methods so I’ll start off by invoking the make call method so I will have make uncore call and when I hit on run you would see that I have successfully printed out making a phone call similarly now when I have p1. play game you would see that I have printed out playing a game so we have created our first class and we have also created the object for this class and now in the methods which were present in the previous class there were no additional parameters we had only one parameter known as self and with the help of that self parameter we were just able to access the attributes which are present and we did not actually have any attributes in the previous class so we will modify that so to our phone class are actually the methods which are present in our phone class he will be adding some additional attributes so we are adding a new method over here called as set color and this set color method over here takes in two parameters the first parameter is self because it is compulsory then we will have this new attribute called as color and with this color parameter what I’m doing is I will have an attribute called as color and I am assigning this color to the attribute color which is present in my phone class similarly I have another method called as set cost this again has two parameters first is self because again it is compulsory then we have this additional parameter called as cost and I would also have an attri rute called as cost in the phone class and what I’m doing is I am assigning this value of cost to my attribute cost in the phone class so now that I have assigned the value of color and cost to my attributes what I’d have to do is show the value of color and show the value of cost so now that I have set these I would need two methods to show the color and show the cost so that is why I will create a new method called as Show color and this only has the self attribute or the self parameter over here because I’m not assigning anything and all I have to do is return the value and if I have to return the value I’ll just use this keyword return and I’ll print out return self. color similarly if I would have to return the cost I would have this new method called as show cost this takes in only one parameter which is self and I’ll go ahead and return here as you see I will have return self. cost and these are the additional methods which I have and then I have the same methods which are make call and play game and inside make call all we are doing is printing out making a phone call and inside play game all we are doing is printing out playing a game so let’s go ahead and modify our phone class which we had created earlier I’ll delete these records from over here let me cut this entire thing or actually I can write it over here itself so these are the methods which were present earlier I would have to add four more methods inside this so to create a method we would have to use the def keyword and I would have to set a color to the attribute so I will use this method called as set color the first parameter itself because it is compulsory then I will have this additional parameter called as color and I am assigning the value of this color to the attribute color by using the self attribute or self parameter which I have passed in now similarly I will have another method over here so as I have set the color similarly I would have to set the cost as well so def I will have a new method called as set cost this would take in two parameters the first parameter would be self and the second parameter would be equal to cost and over here I will write down self do cost is equal to cost and this is how I’m assigning the value of cost and after this I would have to print out the value of color and cost I would need one method called as Show color and the parameter will only be self and what this does is it would just return out the color so it’ll be self. color then I would need another method called as show cost and this again would take it in only one parameter which is self and with the help of this I am returning out the cost so here I will have self. cost so these are the four additional methods which I have added inside this so seems that we have an error over here let me see what exactly is this so this is line number seven and this is set. cost so here I would actually have to give a comma instead of full stop over there and now we see that we have successfully created this now after creating this class I would have to create an object so I will have P1 is equal to phone and now that I have created this object with the help of this object I can access these methods and assign values to the color and cost so I’ll just invoke P1 do set color and I will set the color of this phone to be equal to let me keep it blue over here now similarly I will also set the cost of it so I’ll have P1 do set cost and I will set the cost to be equal to let’s say $999 now that I have set the value of color and cost I can print out these two values so let me delete this so I will have P1 dot Show color and now when I hit on run you would you would see that the color is blue similarly when I have p1. show cost you would see that the cost is equal to 999 so this is how we can have additional attributes and pass in values to the attributes which are of which are belonging to a class with the help of these additional parameters now there’s a special example or a special Concept in object-oriented programming which is known by the name of a Constructor so if you have worked with other languages such as C++ or Java and if you have learned about the concept of inheritance you would know about a Constructor so normally in C++ or Java a Constructor is a special method which would have the same name as that of the class and this would help us to initialize the values of the attributes during the object creation itself so that is what a Constructor in Python itself it’s just that the Constructor in Python the name of this method will not be equal to the name of the class so the Constructor in Python goes by the name of init method so here as you see this is our Constructor we have our init method over here and I have def so in it we have the prefix of two underscores and also after in it we will have two underscores over here so we have our Constructor ready and as I’ve told you with the help of a con Constructor we will be able to assign values to the attributes during object creation itself so obviously we will have some parameters inside this and with the help of these parameters we’ll be able to assign values to the attributes so in this employee class let’s say I would have four attributes called as name age salary and gender so I’ll have these four additional parameters over here and I am assigning the value of name to this attribute similar L I am assigning the values of age salary and gender now that the Constructor is ready and I have assigned the values I would have to show the values out and to show the values I have this new method called as employee details and I will create this method like this so I’ll have def employee details and I will pass in self inside this because I’m not assigning anything and this is the default or the and we definitely have to give the parameter inside this and inside this method I’m just printing out the name of the employee the age of the employee the salary of the employee and the gender of the employee and and once we create this class it will go ahead and create an object of it so here when we are creating an object as you see we have E1 is equal to employee and during the instantiating of the object itself as you see I am passing in the values for all of the attributes so as you see over here the name I’m assigning the name to be equal to Sam similarly the age I am setting it to be equal to 32 then the salary I am setting it to be equal to 85,000 and the gender I’m setting it to be equal to male and this is how I’m assigning all of the values during instantiating of the object and once I have created the object and since I have also given all of the values to the ET I can directly invoke the employee details method and when I invoke the employee details method you would see that I am able to print out all of the details name of the employee is Sam age of the employee is 32 salary of the employees is 85,000 and gender of the employes mail so let’s go to jupyter notebook and implement this concept of Constructor so I’ll just add this comment over here Constructor and I will create this new class so I will have class employee and inside this I will go ahead and create the init method def I will have two underscores then I’ll write down init then again I’ll have two more underscores over here so I’ll start off by giving the self attribute inside this then I will start off by giving the name attribute then I’ll give in the age of the employee after this I will give in the salary and then finally we have the gender of the employee and all I have to do is assign these parameters to the attributes which are present so I will have self. name is equal to name self. H is equal to H self do salary is equal to salary and self. gender is equal to gender again so I have created this Constructor over here after this I would have to create a new method called as show employee d details let me just write down the name of this method so I will have show employee details and this will have only one parameter which will be self and inside this method I’m going to print out all of the values of the different attributes which are present so I’ll start off by printing the name so I’ll have name of the employee is I’ll have self. name then I I will have age of the employee s here I’ll have self. AG then I will have salary of the employee is here I will have self. salary and finally I will have gender of the employee s and here here I will have self do gender so let me hit on run and I have successfully created this class where I have a Constructor inside this now I can go ahead and create an object of this so I will have E1 over here and what I will do is I will give the name of this class which will be employee the first value inside this should be the name of this person so let’s see this uh employees name is Sam then Sam is 28 years old and let’s say sam around earns around $775,000 let’s make the $75,000 and Sam is mail so I have created this object over here now that I have assigned all of the values I can go ahead and invoke the show employee details method here I will have E1 do show employee details and when I invoke this you would see that I have this result name of the employee is Sam age of the employee is 28 salary of the employee is 75,000 and gender of the employeer male now we’ll understand the concept of inheritance so simply put inheritance as when you derive some properties from something else and a real world example of inheritance would be you’ll be inheriting some of your features from your parents and your parents will be inheriting some of their featur teach from their grandparents or in other words let’s say you will sort of look like your parents in a way and your parents might look like your grandparents in a so you’re inheriting some physical features from your parents now if we have to relate this concept of inheritance in Python this basically means that we will have a child class and a parent class and the child class would inherit some features or all of the features from the parent class and we have an example of inheritance over here so what we’re doing is we are starting off by creating the parent class so the parent class is called as vehicle so we will have class of vehicle and inside this I have two methods the first method is the default Constructor and in this Constructor I have two additional parameters which are mileage and cost and I am assigning the value of mileage then I’m also assigning the value of cost and once this is done I will go ahead and create another method called as show details and inside show details I’m printing out I’m a vehicle then I’ll go ahead and print out the mileage of the vehicle and also I’ll print out the cost of the vehicle so now that the parent class is ready I would have to create an object of the parent class so here I have V1 is equal to vehicle and I pass in 500 and 500 so this 500 would denote the mileage of this vehicle so this might basically mean 500 m per gallon then we have the cost which is 500 again so this would mean that the cost of this vehicle is $500 so now that we have created this object we can directly invoke the show details method with this object so I have b1. show details and as you have in the result I’m awle mileage of the vehicle is 500 and cost of the vehicle is 500 let’s go to jupyter notebook and implement this let me delete all of these previous examples from over here let me keep it fresh and I will create this new vehicle or new class called as vehicle over here we will start off by creating the Constructor I would need the init method over here and the first parameter is obviously self after this I would need the mileage of the vehicle and I would also need the cost of the vehicle then I’ll go ahead and set out these two values so I’ll have self do mileage is equal to mileage after this I will have self do cost is equal to cost now that I have created this Constructor I would have to show the details so I will have show vehicle over here and this will just have one parameter which is self and inside this method I will go ahead and print out some basic things so first I’ll be printing out I am a vehicle then I will go ahead and print out mileage of the vehicle s here I’ll have self. mileage then I’ll go ahead and print out the cost so I’ll have cost of the vehicle s here I’ll have self. cost and this is how I have created this class and after creating this class I would have to create an object of it so I will have V1 is equal to vehicle and inside this I would have to pass in the mileage value first so let’s see this vehicle would give me around 120 m per gallon and the cost of this vehicle is around $800 so I have set these values over here then I can just go ahead and invoke the sh vehicle method so here I will have V1 dot show vehicle and when I run this we have an error over here let’s understand what exactly is this error so we have self. mileage we have self. cost inside this vehicle object has no attribute mileage so I’m setting Mi i l e a g e let me keep it over here now when I run this so as you see I have successfully printed out I’m a vehicle mileage of the vehicle is 120 and cost of the vehicle is 800 so we have created our parent class now it’s time to go ahead and create our child class so to create the child class we will again go ahead and give the name of this class which is car so we’ll have class of car and to inherit something inside the parenthesis so as you see this class we did not have any parenthesis over here but after this child class we’ll have a parenthesis and inside this we will pass in the name of the parent class which is vehicle and this child class will have a method of its own which is show car this takes only one parameter which is self and I’m going ahead and printing out I am a car with this method now once I create this child class I will create an object of it which is C1 now here as you see even though I don’t have a Constructor inside this child class but I’m passing in some values this is because since this car class is inheriting the vehicle class this will automatically have these two methods inside it so this car class will have the init method and also the show details method so this car class will have three methods in total which are the Constructor from the parent class then the show details method from the parent class and also this show car method which is explicit for this car class now since this also has the Constructor we would have to pass in the values for the mileage and the cost and as you see I am passing in the value for mileage which is 20000 and the value for cost which is 1,200 then I’ll go ahead and invoke the show details method with the help of this object of the child class so as you see this object is of child class but this method is of P parent class but since this child class inherits the parent class that is why we are able to invoke this method and when you see the result we have I’m a vehicle mileage of vehicle is 200 and cost of vehicle is 12200 and since we also have this show car method which is part of the car class we can directly invoke it so when I have C1 do show car I get the result I am a car so we already have our parent class over here now let me go ahead and create the child class as well so I will have class of car and I’ll have this parenthesis and inside this I will pass in this vehicle class then I would have to go ahead and create a method which is explicit to the car class so I will have Def and I’ll name this method as show car this takes in only one parameter which is self and inside this I will have the print method and I will go ahead and just print out I am a car and when I hit on run you would see that we have successfully created this class so after creating this class I would have to create an object of this so I will have C1 is equal to car and since this inherits this this will also have a Constructor so it have to pass in a value for mileage let’s say this car would give me a vage of around 300 M per gallon and the cost of this car is around um let’s say $10,000 so I’ll pass in these two values over here now that I have passed the values let me invoke the show details method this is actually show vehicle method which is there in the parent class so C1 do show vehicle and as you see I have the result I’m a vehicle mileage of the vehicle is 300 and cost of the vehicle is $10,000 and since we also have this particular method over here I can go ahead and invoke it I will have C1 do showard this has to be small C now when I hit on run you would see that I’m able to print out I am a car now we’ll see how to overwrite the inid method in the child class so in the previous example we had created a child class where we had only one method over here but what we’ll do is we’ll also have an init method in this this child class and this init method will take in four parameters the first two parameters will just be the two parameters for the parent class and since the vehicle class has mileage and cost parameters I’ll have them over here I’ll also have the self parameter and I will add two new parameters for the car class itself so I’ll have tires and HP now to pass in the values for the super class or the parent class I would need the super method so I will write down super dot in it which would basically mean that I am invoking the init method of the super class or I am invoking the init method of the parent class and inside this I am passing in mileage and cost so these are just values of the parent class which I’m passing in and after passing in the values of the parent class I’ll go ahead and assign the values for the child class as well so here as you see self. tires is equal to tires I am assigning the value of tires over here to the attribute of the car class similarly I am assigning the values of HP over here to the attribute of the car class and once I assign these values I would have to show them out so here I will have def of show car details and I will print out I am a car number of tires are self. tires and value of horsepower is this and after I create the template of this child class I can go ahead and create an object of this so here as you see I will have C1 is equal to car and I given four values over here the first value will be for the mileage of the vehicle class the second will be the cost of the vehicle class so here as you see I’m a vehicle and when I invoke C1 do show details so here even though show details is part of the parent class I’m able to invoke this because car class is inheriting from the vehicle class and here I have mileage of vehicle is 20 and cost of vehicle is $122,000 and I also have 4 and 300 and as you see when I invoke C1 do show car details I have the result I’m a car number of tires are four and value of horsepower s 300 so I’ll go ahead and create the parent class again and child class again over here so I will have class of vehicle and this will takeen this will have in it method so I’ll write down def over here I will write down in it and this will definitely have the self parameter over here and this has two values which are mileage and cost now I would have to assign these values so it will be self dot mileage is equal to mileage over here then I will have self do cost is equal to cost and this is how I am assigning the values for mileage and cost once I do this I would have to go ahead and print out the values so I will have a new method for it I will have def of show car details over here and this will only have one parameter which is self and I will start off by printing ier vehicle and after this we would have to print out the mileage of the vehicle is the mileage of the vehicle is here it will be self do mileage then I’d have to also print out the cost the cost of the wle S sure it will be self. cost and this is how we have created this template for the vehicle class now i’ have to create the template for the child class as well so here it will be class of car and since this is inheriting from the vehicle class I’d have to pass the vehicle as the parameter inside this and after that I would have to override the init method and since I have to override I need to create an init method of the car class itself and I’ll start off by giving the self parameter then I this will have mileage and cost for the parent class then it will have ties and HP which are exclusive to the car class itself and after this I will invoke the super method so this is with the help of this I’ll be able to invoke the init method of the super class so I will have super do init and inside this I will just just pass in mileage and cost and once I do this I would have to assign the values for tires and HP so it’ll be self. tires is equal to tires and self. HP is equal to HP and now that I have created this init method or overridden this init method I would need an explicit method for the car class itself let me give a space over here and this time it will be F of show car details and I’ll have self over here and after this this will actually only have self and nothing else and I’d have to go ahead and print out I am a car and after this i’ have to print out the number of tires are here it will be self DOT tires and after that I’ll have to print out the horsepower as well so here it will be the horsepower is and the value will be equal to self. HP and now I have created the parent class and the child class as well I’d have to create an object of it here it will be equal to C1 is equal to car and I’d have to give the value of mileage and cost let’s say the value of mileage is around 30 so it would give around 30 m per gallon and the cost I would see this is $5,000 and after that let’s see this car would have four tires and the horsepower of this would be equal to $499 and we have created the object of this now that we have also assigned the values I can go ahead and invoke the methods of the parent class and the child class I will have C1 Dosh show car details over here and you would see that I have printed out I’m a car the number of tars are four and the horse par is 499 so these are the details of the child class or the car class now I’ll print out the details of the parent class so here I will have C1 dot show w vle details and when I print this out this is so seems like I’ve overridden this I will keep the name as show vehicle details over here so this method in the parent class will be show vehicle details and this method in the child class will be equal to show car details and once I have done this you would see that I have this result I’m a vehicle the mileage of the vehicle is and the cost of the vehicle is equal to 5,000 going ahead we’ll look at the different types of inheritance so we have work with single inheritance now we’ll see what is multiple inheritance and what is multi-level inheritance so we’ll start off with multiple inheritance and then multiple inheritance will have a child which inherits from more than one parent class so let’s say if you have a mother and a father obviously you will have a mother and a father and you would be inheriting some of the features from your mother and some of the features from your father and thus what is happening over here is known as multiple inheritance so as you see if there’s a child class this child class will be inheriting some features from parent one and some features from parent two and this is what is known as multiple inheritance and let’s have a look at this over here so we are starting off by creating the first parent class class of parent one I have two methods over here in the first method I am assigning the value for string one so assign string one I have self and St str1 and with the help of this I am assigning the value for this attribute of Str str1 in this parent one class then once I assign the value for this Str str1 I’ll go ahead and show out this value or return this value with show string one so in parent class one I’m assigning the value for string one then I have parent Class 2 and with the help of parent Class 2 I am assigning the value of Str str2 first then I will go ahead and return the value of s str2 then I will have a child class I will name this child class as a derived class and this over here takes in two parameters or in other words this is inheriting from parent 1 and parent 2 and this again has two methods over here the first method is assign string three and I am assigning the value for string three over here then I will go ahead and show it out as you see I am returning or I am printing out self. st3 so parent class 1 parent Class 2 and child class and after that what I’m doing is I am creating an object of the derived class or of the child class and here I have b1. assign string 1 so even though assign string 1 and assign string 2 belong to the parent class I’m able to invoke them because child class is deriving from both of the parent classes so here I am assigning the value of one to string one I am assigning the value of two to string two and I am assigning the value of three to string three once I given the values I go ahead and show out the values over here so D1 do show string one I get 1 D1 do show string two I get two and D1 do show string 3 I get three now this is a bit confusing let’s go to jupyter notebook over here and let’s create our two parent classes and one child class so for this purpose I’d have to given this keyword class and I’d have to given the name of the first parent class which is parent one and after this I will create a method Def and I will name this method as assign St str1 this will have two parameters the first parameter will be self next will be S str1 over here and I’ll just write down self. St str1 is equal to St str1 over here and once I assigned the value I have to print out this value or show out this value so for that purpose I would need another method here it will be show St Str 1 and what I’ll do inside this is this will only have the self attribute and I would have to return the value of string one so this will be equal to return of self. sr1 and you would see that I have created the first class first parent class similarly I’ll go ahead and create the second parent class this time it will be equal to class of parent 2 and and here I will have def of assign St str2 it will be self I will have Str str2 over here and i’ have to assign the value this will be equal to self. str2 is equal to St str2 over here and I’ll go ahead and create the next method I will have show St str2 I’ll have self over here and i’ have to return s Str to and I have also created the second parent class now that both of my parent classes are ready I can go ahead and create the child class so here class of I’ll just name this child class as child because that is more intuitive and inside this I will be passing in both of the parent classes I’ll have parent one as well as parent 2 and now that I pass in both of the parents I’ll create one method exclusive for the child class itself and inside the parent class I’ll be assigning the string three assign s str3 over here this will have the self parameter and I’ll have S str3 over here and this is how I’ll be assigning the value self. St str3 is equal to S str3 and once I assign the value I would have to go ahead and print it out so here it will be show std3 it will be self over here and I will go ahead and I will return so again here I’d have to keep in mind that this is self of St str2 and here again it will be equal to self of sdr3 and as you see I have created all of the three classes two parent classes and one child class which is inheriting from from these two parent classes now I can go ahead and create an object of this so here I will have C1 is equal to child once I have created this object I can go ahead and invoke the methods so I’ll start off by invoking the method of the first parent class so C1 do assign Str 1 inside this I will pass in the value of one over here then I will go ahead and invoke the method of second parent class this will be equal to assign St str2 inside this I will pass in the value two then I will go ahead and invoke the method of the child class itself assign St str3 and inside this I will pass in the value three once I invoke all of this then I can go ahead and print the out so I will have show St str1 and you would see that I have printed out one then I will have C1 do show str2 then I would have we have an error over here so let’s check this properly self. s str2 we have we are assigning the value over here and we are returning this over here C1 do show St str2 name s str2 is not defined so what I’ll do is I’ll run all of these again because I had added the self parameters and this time we need to get the result and this time as you see when I have C1 do showst str2 I get two over here now similarly I’ll go ahead and invoke the third string so I will have C1 do show sdr3 and this time when I hit on run you would see that I get the result three so this is how we can Implement multiple inheritance going ahead we have something known as a multi-level inheritance and you can consider multi-level inheritance to be grandfather father child relationship and as a grandchild inherits his or her features from maybe his parents and those parents inherit their features from their grandparents so here you have multiple levels and this is what is known as a multi level inheritance so here we have three classes we start off by creating the parent class first and in the parent class we are assigning the name of this person and then we are showing out the name of the person then in the child class we are assigning the age of the person and we are showing out the age and as you see this child class is inheriting from the parent class then we have the grandchild class where we are assigning the gender and we are showing of the gender and here you see that the grandchild class is inheriting from the child class so here there are three levels child class is inheriting from the parent class and the grandchild class is inheriting from the child class now let’s go to jupyter notebook and implement this we have to start off by creating the parent class I will have class I’ll have parent over here and inside this I will create a new method called as assign name this will have self and then we will have name over here and inside this I’ll just write down self. name is equal to name this is how I’m assigning the name then i’ have to show out the name and for that purpose I will have show name this will only have self over here and I need to return self. name and I have created the parent class now after this I would have to create the child class so here I will have class of child I will create a new method over here and I will name this method as assign age I will have self I’ll have age over here and I need to assign this AG so here it will be equal to self. AG is equal to age then I would have to show out the age I’ll have to create a new method this will be equal to show age I’m writing down self over here and I would have to return this so this will be equal to return self. Ag and this child class is inheriting from the parent class that is why I’ll pass in the parent class as a parameter to the child class then finally I will create the grandchild class here I will have class of grandchild and this grandchild class will be inheriting from the child class this again will have two methods the first method will be assign gender and this is how I am passing in the two parameters I’ll have self and gender and here I would have to set self. gender is equal to gender then I will create a new method over here show gender and here I will only have self and I would have to return this it’ll be equal to return self. gendo and now that I have created these three classes over here I have my parent class the child class and the grandchild class I can go ahead and create the object of the grandchild class I’ll call it GC and I will invoke it like this and once I create this grandchild class I can assign the name age and gender so I will have GC do assign let me write it down again so here it is GC do assign name and the name which I’m setting or giving to this person is Bob then I’d have to give him some each so here it’ll be GC do assign age and let’s say Bob is 54 years old and I’ll also assign the gender this will be equal to GC do assign gender and the gender is male I have assigned these three things now i’ have to go ahead and show them out so here it will be GC do show name and I am setting the name to be equal to I don’t have to give anything over here I just have to invoke it and as you see I get the name of this person as Bob now let me also invoke the age over here gc. show AG you would see that the age of this person is 54 then I will have GC do show gender and here as you see the gender of this person is male so let me take you to the next slide with the introduction to the file handling okay so what do we mean from file handling so whenever I just talk about the file handling topics so we say that dealing up with a text files is completely known as file handling text files you all know right do the files which we have extension that do txt right that particular files are known as the text files so let’s say you wrote out some uh text onto a file and just save that particular text file now how to deal that with that particular text file with the help of Python Programming like let’s say if you just want to write some things into that file you want to read out that what’s written into that particular file or or any particular operation you want to perform onto that particular file so how you can do that particular thing in the with the help of Python Programming that’s completely known as file handling right hope you are very much Clear first of all that what file handling means so as mentioned the definition as well that deal with the text files is called as file handling right even in Python Programming we have one another name for the file handling and that goes as IO functions that is the input output functions so whenever I see file handling or IO functions they both actually mean the same thing that’s dealing with that text files do not cut confused into these things okay next so as I as well mentioned out that what are the places what are the things that uh come under the file handling what are the operations that you could perform so in the file handling we already have many functions in buil functions which helps us to operate out and do out the steps like opening of the file reading the text whatever is written uh writing something into the file appending the text basically altering out the text deleting out some text and all these operations you could completely perform form with the help of python right so as I mentioned that there are many different functions that are particularly involved up here now after that basically I have one more thing here and that is basically that what’s the IDE that I’m going to use and what’s the python version that I’m going to use up here to for doing out the Practical for the file handling see one very important thing to let you know that basically what are the online idees you are having that do not support out the file handling technique and the reason is that with the help of the py file that pypy is basically your python file into which you write out your coding stuff so any of the online ID if that particular ID is supporting the py and the dxt file at the same time then absolutely you could use out that IDE for writing out your W start online ID otherwise I would recommend you to download out a offline ID now there are many different idas which you can go ahead with like you can use out the uh py Jam you could use out the vs code you could use Jupiter notebooks whatever you feel like you could use let me tell you my particular specifications that I’m going to use so I’m going to use about the pyam IDE and the python version which I am using is 3.9.1 right if you have the same configurations well and good and even if you have some newer version of python then also it’s absolutely fine uh do not take out the python versions below than 3.7 okay some functions work there some functions do not work so I would recommend you to upgrade your python version above 3.7 hope you are very much clear with this particular that uh what’s are dealing with the text and what are the functions or operations which you could perform and basically what’s the IDE that I’m going to use up here for doing out the stuffs right so now basically I’ll be taking you to the next slide and there we are going to discuss about the open read and the write modes which we have in the file handling so let me take you to the brief discussion of these three particular topics that’s open read and write modes okay as the name suggest for the open mode so into this particular mode what you could do you could open out any text file with the help of this particular function that’s open so this particular open mode is used whenever you just want to open out a text file for reading or for writing for altering or for doing anything so you use out the open function at the very first point now one more thing uh which comes up here is that let me take a very a live example of this particular uh do not assume it as a text file let’s say I’m having out a book okay I want to read out a book so how can I read out the book I’ll be taking taking out that particular book I would be first of all opening that then reading out the stuffs whatever I just want right same particular case applies here onto the text file as well you will be saving out your text file onto the same folder where your python file has been saved out after that the very first step that comes is the opening of file writing reading altering all these things are the secondary part that you need to do like if you are not opening the file without opening your file how you could perform out any of the operations right so that’s the reason whenever you we do the file handling whenever we just deal out with the text files so the very first method but the very first step thatp users opening our text file so that particular thing is performed by the open mode which we have here in the Python programming language hope I just made this thing very crystal clear that what is this open mode and why we just use that here in the file handling right now next I’ll be taking you to the read mode after you have opened up your file let’s say you just want to read out some text from that file let me take the again example of the book when I have opened out my book so there can be two cases for opening out my book first can be I want to read out something from that book or even I just want to write out something onto that book right only two cases could be there so so whenever is your first case that you want to read out something from your book in the same case whenever you just want to read out something from your text file so into that particular case what we do we use out the read mode right so this is our mode which is used whenever you just want to read out the text which is already stored in your text file so we use out this read mode right hope I made this thing as well very much Clear regarding the read mode as well next your second case could be that instead of reading anything you want to write out something onto that book so same case goes for the file handling as well that instead of reading out your file you want to write something you want to add some more text onto your file so in that case the write mode actually comes in place so whenever you are willing to write out anything to add some more extra stuffs onto your text file so in that case we use out this WR modes this is used whenever you want to write the text in your txt file right so hope I made this right mode as well very much clear to you that what it is used for what’s the case when we use this out and why we just use out this right mode as well right so hope these particular three modes are very much clear that what are these how we perform out the functions how we go ahead with the operations now I’ll be taking you to my IDE that’s my Pam IDE and there I’ll be letting you know that basically how we could perform out the Practical how we can read write and open up the files using the Python programming language so this is the pyam IDE that we actually are having right um I’ll be giving you a quick overview regarding this particular IDE then I’ll be uh going ahead with the Practical so uh here basically let’s I just make out one of the folders this is the folder which I’m having so what I would just for making out a python file into which I’ll be writing out my code so for doing out this particular thing I’ll be clicking on this file okay and now here I’ll be doing out the right click so as soon as I do out the right click this particular box would appear now I would just go on to the very first option that’s new okay from this new Option I’ll be going on to the number fourth option that’s python file I’ll be clicking on that particular here you need to save out your file with any particular name let’s say I’m going to give out the name as file and that’s the let’s say file handling Okay click enter so yeah this is how your notebook actually appears out here whenever you have U made out any py file that’s your py file that’s a completely python file okay hope I’m very much Clear next so here we are dealing out with the text files so it’s necessary to make out one text file see now the two cases apply up here either you make make out a text file or basically you uh you basically uh like take out one part where you already have one of the text files and put on that particular part here so what I’m going to do is that I’m going to make out one new text file here okay so for that again the same procedure go onto your project do out to right click go on the new Option and now in this case go on to the very first option that’s file so whenever you just see out this file option take this as it’s TX file and let’s say my text file name is um text only and hit enter right so click on this and click on okay so my text file has been made and that is having the extension that’s txt this file okay so hope you are able to see this particular file right now what I’ll be doing here is that I would be putting okay let me do one thing yeah I’ll be putting on the uh things and writing out my fold the proof so I’ll be making out a variable L that’s if before that okay not here the text F before that I’ll be putting on some text into this file so I would just put on the text that let’s say uh this is the topic this is the topic of file handling now one more thing to notice out here that this is a text file into which you are writing so you do need not to put out any comment any hash sign or any um double inverted quotations or single inverted quotations nothing like that is at all needed because this is a text file if you were doing out the same thing onto the py file then it would have been a problem it would have shown you errors but as you had made out a text file so it doesn’t matters at all right hope I’m very much Clear let me take you to the file where we have the python file and let’s start writing up the code let’s say I just make out one of the variables now this is known as a file pointer okay make this as a file pointer f is equal to open now open is basically my function the very first function that we are going to see let me put on a hash here and let me wrote out here the first mode that’s the open mode okay so here we use out the open in uh inside this we putting out the double inverted commas okay now into that double inverted commas you’re going to write out the text file name so my text file name is text t. txt okay let me just do out one thing because I just need to rename this out so okay one second that is okay rename file let’s do that not right here so input okay let’s do the cancel F okay let’s go ahead with this particular thing only let’s see what is going to happen out so open text.txt okay that’s my file name come to the new line and this is how you open out your particular text file simply you need to write out a variable that this we just I just wrote out here as if because we call that as a file pointer that’s the reason I mentioned out of if other than that it’s not compulsory you could put on any variables of your choice we put on the assignment operator and after that we use out the open function for opening out this particular file right so as soon as the open file has been done next thing comes is that in which mode you want to open it out you want to open in the read mode or you want to open in the right mode so whenever you are willing to open the read mode in that case we write out here R and whenever you are willing to open it in the right mode so in that case we write out okay so we write out R for the read mode and W to the new let come on to the new come on to the new come on to the new line here and write out here if above f is equal to here goes that open into the bracket my file comes that what file you want to open so that is text txt okay putting out the comma here again double inverted commas quotations come out now here you mention out that uh what’s the mode in which you want to open let’s say I want to go on with the read mode so I just simply wrote out here R so it will automatically understand out that now you want to go ahead with the read mode it means that you are you want to read out your file you are opening your file for reading that let’s come to a new new line here and I’ll be making up a variable that what we will be do that particular variable will be reading out the text for me so let’s say my variable is content a t n content is equal to and my f is the variable in which I have opened out my file in the read mode and now here comes my read function content is equal to F do read come to a new line and simply be writing out here print and into the bracket I’ll be writing out here the variable that’s content because content is only the variable into which my file is being read right it is being read and it is being stored see okay before that let me quickly run out the program then I would let you know what I was just like trying to convey out from here okay no such file or directory I would just willing that it would be happening let me make out a new file click on new uh go on to the file write out here the name let’s say that’s demo hit enter yes now I want out the txt file and click on okay okay right here so let me just close out the file from here now click onto this particular write out here something like uh uh okay that’s demo and let me quickly do out one thing let me make out uh one more right here so that’s file demo. txt click enter so yeah now this is the complete correct file which has been made out please yeah one more thing to notice out here do not miss out the extension that you want to put on fine so as soon as you put on txt now this is your correct file which has been made out so I would just once again put on a text that this is um this is a okay this is a file handling topic let’s say this is my text okay topic now let come to the back here now I would just change on the name for my file that’s demo Dot and that’s txt and I would comment out the first line because now that’s not needed at all let’s run out our file here for a while so okay it’s indexing basically it’s setting up whatever you have written out here so it’s setting up all of that all those particular things so this is one of the things which comes here onto the like uh this P charm ID okay I would just click on the Run button Above So now let me just take you above so right now you are having your output that this is a file handling topic this was the text that we have written in the demo. txt file right this was the same text which we have written out and with the help of the read function we are able to display out this particular text here in this particular context in the console of my pyam ID I’m able to get out this particular text so this is how we perform out the read mode this is how you read out the text with the help of the file handling techniques right hope you’re are very much clear with the first fall read function right now what I’ll be doing is that I’ll be taking you to the next mode and that’s my right mode so what I would just do is that I would comment out all the above three lines because now I want out my file uh to be opened out in the W mode that’s my right mode so let’s say f is equal to here goes the open function my okay one second let me come out to this particular place my file name is demo. txt Right putting out your comma here and I want to open that in the W mode now after opening that into W mode I’ll be using out the right function that what is the text which you want to write into your ta text file so let’s say I just want to uh like write on the topics that write on the T at I’m learning file handling right let me come down once okay the text which I just want to write out so yeah that’s completed now one thing to mention here very importantly which I did not mention up above right I’m mentioning out that whenever you are opening out a file it’s important to close out that particular file as well okay it’s a good practice I would say see when I relate this to the example which I have taken for explaining you about the book so in that case what we were doing in that particular particular case we were having a book so we opened it for you want to read or you want to write inside that books that depends so whenever you have open that out after doing whatever the operations you want to do you’ll be closing out that particular book as well right same case applies here onto the text files as well that whenever you have opened out any text file so you would be closing that as well right so that’s the reason I have used up here f. close file now I’ll be running out my file here now here I would not be getting out any answer into the console file into the console of my Pym ID the reason is that i’ be directly getting out the text onto my demo. txt and here goes that I am learning file handling right I’m learning file handling this is the text right that we have written up right this was a correct sentence so I’m getting out that particular sentence written up here onto my demo. txt file right so hope you are very much clear with this particular function as well that how does this right function works so I hope that you are very much Crystal Clear regarding the open function how does that work about the read function and even about the write function right so uh now we have some more further topics some more further modes to learn about so I’ll be taking you to the presentation right away and then let’s discuss about the rest of the particular topics now let’s discuss about that how we can add the text onto that text file and even how we could count out that what are the number of characters that we have added onto that particular text file so let me take you to the next slide here and here we have the adding the text and Counting characters so let’s first of all discuss about adding that text so whenever I just want to add out any text onto that txt file so in that case we have a function named that’s append a p e n d so this is the particular append function which we use for adding out some data some uh text onto your text files right so basically whenever is your case that you want to add on these lines or you want to add on that particular lines so we use out the upend function so the mode which we write here is double inverted commas and a small a as for the read and write we use to write R and W so for the upend function we used to write here as a small a right so a small a whenever you see that small a written so quickly understand that out that this is the place where anything is being added or written something onto the text file now uh let’s say you have one particular case that whatever the text you are adding on you just want to transfer out or add on that particular text onto a new line so for adding the text in a new line we use out the operator that’s back sln so back sln is one of the other operators that’s used for changing your line to a new line and then adding whatever the text is required right so for the upend function it basically helps us to add the text in your txt file as I mentioned it is used for adding your text in the txt files next the mode used is a for appending means adding or writing some text to the file so whenever I just use out the a so it means that I’m using out my append mode it means that adding or writing out some text to the file then I have that for adding the text to the file in a new line we use back slash and before writing the sentence to be added so yeah this is one more case that comes up I have already told that but one thing I was left here that whenever you just want that whatever you have written up that comes onto a new line I mean to say that uh like a new sentence is being appeared in a new line you want to append the things onto a new line so in that case use out that back slash n in the starting of the sentence not at the last okay use that in the starting of the sentence then it will particularly take you to a new line and display your sentence in a fresh new line like right so hope I’m very much clear with the upend function that what it is used for and how we use that out what are the specifications and what is the mode that we used up here then we have the next topic that’s counting the characters now we have that how you can count out the characters so it comes with the help of the Len function l e n okay so Len is the function which is basic typically used for counting out the characters right that what are the total number of characters which you are having into your file so that particular uh operation that particular thing can be added can performed with the help of the Lin function so what do you do basically first of all you open up your file and you just read out your file using some function that we already have open and read functions after reading out the file and that what takes to written onto the file you just apply out the Len function okay you just simply apply out a len function and that particular Len function is being applied in a variable I mean to say that you put on a variable use assignment operator and the variable in which you have opened your file in the read mode with the help of that particular variable you use out the Len function and as soon as all the things are done up here we simply get out the total count of the characters which you have in your text file right so hope I am very much Clear regarding Len function as well let me go once again that it’s completely used for calculating for finding out the total number of characters whatever you have used in your text file right so first of all you open out your file then you use out whatever the operation you you want to use and after that you simply use out your length function so hope I’m very much Clear regarding the upend and the Len function that what are these two particular functions what are they used for and basically how to use them out so hope you are very much clear with these things now I’ll be taking you to the py charm IDE and they will be seeing a practical for the upend and for the Len function so now let’s see that basically how we can Implement out the upend mode and the lint function so upend mode is basically used for adding on some characters onto your file and the length one is used for calculating that basically how many characters you are happen here right so okay so okay what I would just do is that I would already add out first of all some text onto my demo file because that has been it is because I have commented everything so let’s say I’m going to write out here that I am I am learning I’m learning and here goes like let’s say file handling file handling okay fine this is one of the Tes that I already have out here so I’m going to use out now my append mode to add on some more text onto this particular place so the like the short form that we use is a the very first procedure that I’m going to do is that I’m going to open out my relevant file into which I want to append out that text so that’s for me demo. txt putting out a comma putting out a double inverted commas what’s the mode and mode is a so I’m going to put that out coming to the new line uh okay now here you have I could just take on one variable let’s say that’s um addore text one variable of mine here I’m going to use out F dot write function to write or to add anything onto my notebook onto my file inside this I’m going to write out that okay above what we have written that um what is already written I’m learning file handling okay let’s write out that this is a pin mode like this right let’s come on to a new line print out the addcore text here and at last I’m going to close out my file so F do close putting out the brackets like this uh what I would do is that I would add one back slash in here as well so that whatever comes comes into a new line and here it’s time for running out the program so okay this is basically coming because I have written out your addore T so it’s basically counting out the number of simple characters that I have added so yeah that’s actually okay let’s go on to the demo. txt and see what has come here that this is a pend mode basically here what I’m getting I’m getting a new line added here that this is aend mode and which I have added through the a function using this a mode I have added out that particular thing right so hope I’m very much careful that how the sus function actually works out right so I’m going to do one thing simply I’m going to remove out these relevant things from here so the houseful great and if I again run this out so again it would be basically it will run out here now downside I not got any option any answer but here this again the sentence has been added so the number of times you gun you are going to run this statement out you’re going to run this program out so it will basically add that much number of the statements onto your relevant text file right now this was how the append function actually works out now I’ll be showing you a like for the Len function so here goes the Len function let’s come down here I would again open my file but this time my file would be opened in the uh one second uh this time my file will be opened in the read mode because I want to um uh that that I want to just add on or count on some of the relevant things right I do not want to write or rep anything like that so I simply want to count the total number of characters that’s reason my file will be opening in the read mode okay so here I’m going to write out let’s my variable is data is equal to if dot read and in the bracket I’m going to write out the variable that we are having as if okay not this if I’m simply going to write out if do rone like this next I’m having total underscore count as one of my new variables and into that I’m going to put on first of all the function that we are having Len and the variable into which I have read out my data which I have into my file so that’s the variable is only data okay I will just read on dataor read let that be and here as well goes dataor read so inside the length function you need to write out that particular variable in which you have used out that read function which I have written up here okay and at last you are going to print out here the variable in which you have counted so that’s total count and I write out like this and simply last go here the closing of my file right so what I’m going to do is that I’m going to run out this relevant program here so my total characters the total number of characters which I am having into this file is 87 right I’m to toally having 887 characters onto this demo. txt file right and why I just G get out one more statement like this because I haven’t commented out this particular line that’s that’s the reason one more line has came here right so yeah hope I’m again very much clear that how to use out the append function for adding some takes and basically how to use out the Len function for calculating for giving you account that total how many number of characters are present into your file right I hope I’m very much clear with these things so let’s move on to the next topic and see out the next functions now we’ll be seeing a one another function here in this file handling and that’s the read line function now I’ll be telling you that what read line function actually is and how is that useful here fine now let’s see we had seen about how to read out the taste how to write out the text how how to add on some things onto that particular text right we had seen how we can append and all these things are absolutely clear now there could be one case that let’s say whatever text file you are having into that text file you want to read out the text line by line like in the first line whatever the text is written first all read that out then secondly comes out in the second line whatever the text is written read out the second text in the third line whatever text is written read out the so this can be a particular case that could be here that whatever the text are here you need to read down all of the Tes line by line right so for performing out this particular function we have a readline function in the file handling read line as from the name only suggest that it helps you to read out the text read out the lines or you TT whatever is present in the line line by line right hope I’m very much clear now next basically what we are having so how to use out this particular function so for using out this function firstly you need to open out the file in whatever you mode you just want read mode or write mode whatever you just wish out you could open out the file after that you need to use out that read line function so to read out the lines accordingly we use out the read line function that is mentioned and it will basically display the line uh lines in the form of like it willb the text in the form of line by line now uh let’s say into your first uh take first line it’s written uh learning file handling into the second it is written read write and open mode into the third it is written upend mode so whenever you are going to use our read line function so first of all it is going to display you the very first T that learning file handling okay next basically it is going to dis give you out the out uh like again you going to use out the read line function so it will be giving you the next output and that will be your very second line that is read write and open functions open modes right now then will be after again if you use read line then it is going to display you the third line so this is how this particular read line function actually works this is how these functions uh play a role and help us to read out the text line by line so after writing up the things and after let’s say I just said you that okay read out this file line by line so once we had seen about that read function right that is as one function that is used to read out the text which you are having but it defers that onto that particular function you read out your text uh in a one complete goal like if you use all the read function so at one complete time it will display you all the text which is written up into your F the case where you just want to read out your text line by line one single line by line so into that particular time you use out the readline function right so hope I am very much clear with these two particular things that we have about the read line function and basically how to read out the text line by line now what I’ll be doing is that I’ll be taking you to the pyam IDE and they will be seeing up the Practical for this read line function okay so here we are onto the pyam IDE and now I’ll be using up the read line function okay but before that I’ll be writing one or one or more two more sentences onto my uh file so f. write let’s say I’m learning file handling okay uh topics I would just write that topics are open read and write mode okay L okay that’s not open it’s open like this right and let me come to the new line I would just write F do write once again and let’s say I would write here that uh let’s say next is aend function right let’s say this these are three text which are written I would just run out this particular file up here but before that what I would just do is that I’ll be commenting out this particular place right so comment that out and now let’s come to the downside and run out our program so here we go okay so nothing would be displayed here as I told you because we have written onto the file and this is my file now here I haven’t used out the back slash in that’s why it is coming like that let me just quickly use out the back slash in in the starting back slash oh okay not like this like this and back slash in in the starting and now let me quickly run that out once again here so let me go on to demo. txt and yes now it’s coming up right so I’m learning text F I’m learning file handling topics are open read and write mode and next comes the upend function and one more thing if you just want to remove out these spaces so do not give any space between the back slash n and between the sentences now it comes appears to be absolutely correct right great now what I’ll be doing up here is that I want to read out the text line by line okay what is the thing that we perform so I would simply write first of all the variable name with the help of which I have opened out my F in whatever the mode it doesn’t matters out so let’s say here I have opened in the right mode so it doesn’t matters that what is the mode that you are opening using out Simply it matters that uh what is the variable that you have taken right so you have opened out your file and the variable is f Dot and now here basically use the read line function like this and this whole particular thing would go inside the print statement like this right now I would just run out this program here for a while okay one second it’s not readable where is my text file gone one second guys um where is that particular folder uh for the great learning let me just quickly open that out so here it is not neither here it is right here so demo. txt right these are the files now let’s quickly run out our program here for a while okay not readable let’s let’s check out that what is the thing that we are making up error as and why it’s basically not displaying as that thing okay so it goes print if do readline and after that bracket is completely done before that let me comment out these three lines and let me open it in the read mode first of all now it’s the time for running out the program once again so here we done and now here I got out my very first output that’s I am learning file handing so this particular output came because uh first of all that okay one another thing that um simply the opening of the file can be done in the read mode or the write mode but you could not use any functions like this so at that particular moment I need to comment out this these lines first of all because at the same time I cannot write and I cannot use the readline function at one particular point I could not use out these two functions together right that was the reason I needed to comment out these three particular lines so read out the very first line of my text file which I’m having and that was I am learning file handling yes this was the very first thing now let me come down here what if I again use out one of the printer statement right here if do read line and put on the bracket like this now if once again I run out my program see now what output I’m getting up here uh so that output which I’m getting is topics are open read and write mode so let me just just uh do it like this right here so when I used out my first read line function I was getting my very first line displayed next case when I just used out the SEC read line function second time so this particular line was getting displayed right so hope you all got the idea regarding this now let’s see if I just once again use out this print uh read line function so F do read line and the brackets now what will happen this particular will be displayed third time means my third line would be displayed up here for the upend function so verify as these are the only three lines I’m learning file handling topics are open read and write mode and the next and the last one comes here is as the upend function right so hope I’m very much clear about these uh these three readline functions that how we just read out the line read out the text line by line now what if I just once again use out my read line function as I was having only three lines into my uh text file but what if I just once again use out my readline function now basically it would not display you any other text because there was no other line in my text file in my demo. txt I was having only three particular lines neither it will display you the error nor it will display you the text simply it will keep that particular thing as blank I would remove out now this particular thing and at last my file is getting closed because we all know that whenever we just open out a file it’s basically we need to close that particular file as well right so hope you got out this particular idea as well regarding the readline function that what is this readline function how we use this out basically how we will be able to read out the text which is present in one single line and that is completely line by line right hope you’re very much clear now we’ll be seeing up the next topics now let’s discuss about the try and accept functions so this is a particular point from where we start dealing out with the take with the exception handling right so from here I’ll be letting you know about how to deal with the exceptions so the very first topic that comes under this particular one is try and accept so let me take you to the next slide here and here goes the try and accept statement now see whatever the block of code whatever the like code you are going to write inside the tri block that gets executed whenever your code is completely error free and if you have any error into your code then basically your except part gets executed see take it in a way let’s say you’re writing out any particular code so you just put on your main logic of the program inside the try function right after that you add on one exception as well that if basically there’s such some or error into your code which you have written out so just display out that particular exception to you in the form of an error it’s not an error in the form but I would say that it’s a form of exception that would completely occur out so in that particular case you are required to put on those particular um that particular print statement or anything inside the except so if you’re is not having any errors then basically your try function would run and it will display you the relevant output whatever is the required one but if your code whatever you have written out that is having some issues that is having some errors so in that case the control of your program will go inside the accept function and then your accept block will basically execute whatever the exception would be occurring that would come or if you have written any print statement inside that that would come whatever the things you have written inside the accept part that would be displayed as an output to you in the form of an exception right hope I am very much Clear first of all regarding the try and accept the statements after that one more thing comes here is that with one single try you could use any n number of accept functions except the statements actually let me elaborate this a little bit let’s say you are uh you are have on you had put on one try and accept statement okay you put on one try statement and one accept statement now the case is that let’s say you just want to put on more than one except statements so yes basically you are completely allowed to put on that particular part here as an output right so now with one single try it’s uh okay with one excepted stateements it’s compulsory to put one try function okay it’s it’s compuls ready to put a pair of try and accept other than that with one single try statement you could use any n number of statements according to your choice whatever you just wish out you could use that much n number of statements that is the accept statements with one single try right so hope I am very much clear with the usage of the try and accept the statements so whenever you are having no error into your program so you trying block actually gets executed and when you are having any error in your program so your accept statement gets executed if basically after that when the accepted statement gets executed so whatever the printer statement you have used either that will get executed or if you haven’t used out any printer statement so in that case you would be getting an exception as a form of a result okay now the other thing as possible which I mentioned is that a single Tri statement can have more than one except statements so it’s not compulsory to always put out a pair of try and except with one single try you could use 10 except 20 except 30 except whatever the except functions except the statements you want to use out with one single try you are always allowed to do out that particular thing right hope I made this thing very much clear to you regarding the usage of the try and accept functions as well that how to use them out now we have a syntax so how to use out what’s a Syntax for try and accept so first of all you put on your try keyboard right you put that out put out the colon come to the new line so as soon as you would be coming to the new line you would automatically be getting out some tab spaces so that spaces you’ll be getting out so as to confirm that yes you are inside the tri block right after that you put on your relevant Logics you put on your statements you just write out your complete code whatever you just want to write onto that particular place right after that come out of the trial statement and then put out your except now you could simply print out ex write out except and inside that print a statement or you could write out except exception as e now these two cases occur up here what are they Ed for so this except the exception as e it it is basically used whenever you want that whatever is your relevant error or exception that is occurring you want to see out that exception as an output so in that case we use out except exception as e and whenever is the case that basically you want that whatever the exception you are actually putting on after that you want out a print statement to be getting printed as an output so in that case you simply use out accept keyword and after that you just use out your relevant print statement right so as we have learned about the try and accept Theory now let’s move on to the Practical let’s see that how it’s completely used out how to implement that out so what I’m going to do here is that first of all I am going to take out two inputs let’s say a is equal to I would simply mention out here as input and inside that I’m going to write out a statement let’s say that enter the number okay come to the new line let’s TR just take out the second one I just write out here as let’s say input enter the uh number two let’s say this is number two and let’s say this is number one so here again comes out the colon and like this right now let’s say I’m writing out the program for addition of two numbers so here goes now my triy function coming inside my triy function what do I have here so I’ll be starting up here with the things that let’s say I declare a variable let say that c is equal to now above I had simply use out the input functions only what I want to write out the program for I want to write out the program for adding of two numbers but uh at none of the places I have declared that I want the inte I want the input to be in the integer format right this is the case which is not declared so now I have declared I would declare a new variable let’s say that is C here and after that basically what I’m going to do is that now as I mentioned that we will be writing out a program for the addition of two numbers let’s say i’ be taking up the two numbers from the in from the user here right now uh when I talk about taking the input from the users in the number format so in that case uh at none of the places I have mentioned that I want the input to be the in the integer format and if I haven’t mentioned out that particular thing so in that case it will automatically take in the string format when I use out the plus sign so it would not give me the addition it would simply do the concatenation of both of those numbers right this is the case which actually happens out what I could do here simply I could just do out the relevant type casting I could write it like this and simply I would write it out like this coming to the new line I would be using out one of the printer statements and inside that I’ll be printing here as C okay after this I’ll be using out my except exception as e right this is my first sentence which I just told you right away that we could use out this particular statement that is except exception as e and here I would be simply printing out e what I’m going to get out result you all as know out that I’ll be getting out some exception here the reason is that I haven’t mentioned out any data type here in the starting and I have mentioned here so it would say that we cannot add integer and a string either it shall be integer integer or it shall be string a string right let me run out the program and so show you how these things appear okay I need to give out the number one let’s say that’s two and here goes the six so what I got here unsupported operant type for int and St Str so it basically means that the operate type The Operators which you have used out here like the variables which you have taken that are not supported one is the integer and another one is the S Str right now this is the kind of exception it occurs when you had made out any error in your program the first way to get out the exception okay now second way is that you could simply write out out here accept and inside this you could add on a printer statement that uh error error in your tribe block you could print out one simple sentence like this as well when I run this out so here let’s say I enter out my number let’s say that’s three then five so what I got error in your Tri block but it’s not that much specific that it was giving me with the previous one that was except exception as e it’s not that much specific so in that case we always try to prefer write down except exception as if we always prefer to use that only right so hope you got out the idea how exception occurs now I would type c this thing as well and now let’s write out our program in the correct Manner and I would be running this at this particular place so what I got As in first all output that into number one let say that’s four six and now I got out my resultant output that’s 10 the reason is that I wasn’t having any errors so my tri block executed and if my tri block executed my exted block will not get executed because I wasn’t having any of the errors into my program which I have written out right hope I am very much clear with this particular try and accept statements to you that how we use this try and accept what’s the syntax that we use um and what’s the correct way actually for generating out the exception so the correct way is except exception as e right hope I’m very much clear now let’s move towards forward with the some other topics of the try and except function Sol that’s in the exception handling now let’s understand about the try with the else Clause so I just told you about the try and accept right away away some minutes before now let’s see that with the try and except how you could use out the else Clause at what particular time it would get executed and all the things let’s move forward okay so first thing is that you could use out the first of all try first of all the else Clause with the try and accept the statement yes that’s allowed what is the set of instructions what are things that you need to follow up here so whenever let’s say you use out the else Clause with the tri statement so when you want to execute a set of instructions whenever you do uh let’s say the case is that whenever you do not have any exception into your program after that uh after execution of the tri block you want one more statement to get printed as an output for you so in that case we simply use out this else Clause let me give you an idea let’s say you wrote out a program for multiplication of two numbers you add on your accept statements after that you use on the else Clause inside the else Clause whatever the printer statement you are going to use so in that particular case if you do not have any exception in your program if you do not have any error in your program then after the execution of the tri block that particular elsea statement will take place for the execution hope I very much clear with this particular thing right but that will only and only be executed when you do not have any error into your uh program when you when you your exception does not actually work then in that case only that else Clause will work the syntax is that you could simply write out first of all your try statement your accept statement after that put on the else keyboard after putting that out put on the col in and come to a new line automatically some spaces you will be detected and after that you could add your relevant print statement your relevant block of code whatever you just want to be get executed if your exception hasn’t been occurred so in that particular case you could use any of the things relevant to you right there is no such restriction that you would only use printer statement or you would only use the uh like write out some logical things nothing like that you could write out anything in that P particular case right so hope I am very much clear with the use of try with the S Clause that how you could use this out and what are the cases where it is particularly used out now let’s see out the Practical that how we can use out the try and accept the statements with the else Clause so I’ll be writing out first of all two inputs from the user so a is equal to int input and I would be writing out here let’s say that into the number okay into the number one let’s coming to the new line I’ll be taking another input and that’s in here comes the input and goes that uh enter the number two okay so here I go with the small n now I’m going to write out a program for finding out that a number is even or odd okay so I do not need the second statement right if I write out the program for finding that a number is even or odd so I do not need out the second number right it only works with the one so let’s go ahead and write that out so I put on my trial statement come inside my condition goes that if a person two is equally equal to zero basically if the number is divided by two and the remainder is zero so in that case print out with the help of f strings that um I would write out the number first that a is an even number right and if this is not the case in that case print out the S part. print F strings a is an odd number right these these can be two statements two cases which could appear that if the number is even it means that the remainder is zero in that case write out that this particular number is even otherwise print out it’s OD after that here goes the except I would write out except exception as e put on the colon come to the new line print out the small e that is my exception now after this try and accept here you use out the else Clause so like this it goes inside this you could write out anything I would simply put on a printer statement that uh that else Clause got ex uh execute Ed like this I could print on one of the statements at the SSE Clause got executed right so okay now what I would just do is that I would run out this particular program so it’s asking me to enter the number one let’s say that’s four see what it got me it gave me that four is an even number and else Clause got executed now why did my else Clause got executed because my tri block got executed completely in a complete manner because there was no error or exception in my program that’s what he saying this else part got executed now what I would do let’s say I just make out any error into my program let’s say if I just uh put on one single uh this okay now if I run out my program okay so it okay it is syntax ER 1 second is equal to and here let’s say I just make on B because B is one of the variables which we haven’t defined let say I made out B run that out to you asking me to enter the number one let’s say my number is three see what it is giving me name B is not defined this is my exception that is occurring right and my else Clause even did not got executed the reason I have already told you that whenever your Tri block will get executed whenever the portion whenever the logic which you have written ins the tri block that would get execute after that only your else part will get executed if you are getting any error or exception then your else Clause will not at all get executed right so I would again make out the relevant changes so it’s a and again it’s a and now if I just again run out my program so now in that case I would not be uh getting any error any exception like that let’s say it’s right so 45 is an odd number and here I got the statement executed that else Clause got executed right hope I am very much clear with the statement for like how does the TR except and else Clause work together hope I’m very much clear with this that which part will basically execute when right so we’ll see up the next topics now let’s discuss about the finally keyword so now we be seeing up that this is finally keyword in the exception handle let’s go ahead so yeah here we have um okay I told you about the try and accept functions in a very much detail even we had done out the Practical as well right that was completely over then we then I introduced you to the else part as right that the how to use out the else Clause with the trial statement so that particular condition was applied at that particular case whenever you just wanted to like uh like let’s say you are writing out any particular logic or particular code inside the tri blog and whenever you do not have any particular error into your program it means that your accept part doesn’t works out it doesn’t executes at all in that case the else part was getting executed now what happens with the finally keyword here see finally is a keyword that would execute either you are having exception in your program or you are not having exception in your program it does doesn’t at all matters for the finally keyword it means that finally keyword has to execute no matters you are having any exception or you are not having exception right you could use the finally uh keyword directly with the try and accept or either if you just want to add on the uh that else Clause so in that case as well you could just add on your else clause and your finally keyword after that no matters that you’re using it with the else Clause your reading with the try andex whatever you just wish out but one complete case actually takes place here and that’s compulsory that whatever you’re going to use out like whatever the program or whatever the code you’re going to write inside the try and accept no matters try r or except Rons finally keyword will should be run out right now let’s quickly pay a little attention to what’s WR up which I have written out here so finally a keyword which shortly executes after to the execution of the try and accept block of statement so it means that finally is one of the keywords that is shortly going to execute after the execution of the try and the except block of the statement as I told you that particular thing as well right now when I move towards the talking of the syntax that how to use that out so syntax is super easy and even the same as we have followed from the previous uh like topics simply first for you put on your trial statement put out your relevant code or the logic whatever you just want to put inside the tri block after that put on your except so I would always recommend you to put on your except statement as except exception as e it makes a relevant exception for you it generates out a relevant exception so if you have any exception into your program so it comes to you as a completely defined one so that you could got out a clear idea that okay this was the exception that was occurring so now I won’t make out this particular exception into my program right this is what actually happens out then after that we have the El part that exceptional if you just want to add you could otherwise it’s not at all compulsory to add out right and after using out whatever the relevant is condition you want to use or do not next statement comes about the finally keyword so at this particular place you use out your finally keyword inside the finally keyword you put out your relevant code or you just want to put out a printer statement or you just want to put out some logic whatever you just want to wish you could just put that inside the finally keyword after that you execute out your program so whatever runs either try or accept that doesn’t matters but you will finally be getting the answer the finally getting the output with either our either with a try or accept and the finally keyword will surely come at the last it means whatever you have written in the finally that will surely be executed and given to you after the uh after the uh run of try or accept right so hope I am very much clear for of all regarding the finally keyword that what is this finally keyword how we just execute that out and what’s the syntax what it is used for what conditions are applied and what not are applied right so hope this thetical part is very much clear now let me take you to the Pam IDE and let’s Implement out the Practical for the sake so now let’s execute out some practical for the try and accept part right so I’ll be using up the finally keyword here with the try and accept so let’s get started up here and okay let me just come down at this particular place what I’m going to do is that uh I’m going to write out a program first of all uh to find out which is the greater number among the two okay let’s say ass simple program so I’ll be taking up the int and here goes the input and here goes my enter the number right my post number goes here next coming to the new line what I’ll be doing is that I’ll be using second variable and into that again as well I’ll be taking out the input from the user so here goes that into the num CL and giving out a space like this right so num a and num num one and num two have been taken the input from the user then comes my try function so try my condition goes that if a is greater than b right so in that case I could print out an statement print I could write out with the if strings print if I could put on that a is a is uh that’s greater than and here goes the B right a is greater than b coming back adding on my is condition is what we could print is that print uh okay let me go above add this particular place go adding the F strings in the bracket it goes like okay F will be out not inside like this right so yeah I would write here B is greater let me come down at a place right here B is 1 second so B is greater than and here here as a okay so B is greater than a that conditions are satisfied coming out and using out my except function so except exception as e putting on the col in and printing out here as e right this much code you absolutely understood because we already have dealt with these types of code previously right now coming down onto a place here I’ll be using on my S Clause as well let’s say that is as well getting executed okay let’s first of all simply add on the finally after that I would add that as class so here goes my printer statement and I would just write that um finally uh keyword uh W keyword U let’s say this is my printer statement okay fine so I don’t think that we have any of the relevant exceptions into our program because we haven’t made out any of these so my output will be first of all I’d be getting whether this any of the conditions from here and at last this particular statement will be printed let me show you how so let’s run it out here so as you remember for doing running out weekly uh on the blank space we do all the right click click on the Run option and here we go so the number one I would enter let’s say 21 okay okay above one is as well not commented one second I’m so sorry let me terminate this out from here okay yeah remember the previous program as well we have written out so let me just quickly here as well let’s comment that out right now it’s the correct time for running out the program so click on run into the number one so let’s say that’s 21 here um that’s 34 so what show me 34 is greater than 21 because my second condition was getting satisfied it means the value for the B is greater than a right and at last a statement came here that finally keyword used right because this finally statement got executed now what I’m going to do is that i’ be making out some um changes into the program leter let see here okay okay yeah let’s run this out now okay so I’ll be entering out the number one let’s say that’s 34 and number is let’s say the let’s one okay I got my relevant exception that name c is not defined other than that my finally keyword again got executed at this particular place so it showed me finally keyword used so I as will mentioned you when we were discussing about the Tory that uh finally keyboard always gets EX uted no matters that what are we using no matters that trap block is running or the except block is running the finally keyw will surely run at the particular place right hope I am very much clear with this particular thing let me close it out here and now I would be making it again the same here and let me as well show you how to use out the L CL simply after the accept you could put on the SSE condition um and one second go back hit out genter and write out your relevant print statement so print or whatever logic you want to put anything works out here so I will just write out here print um else part got executed so here goes the executed right so here else part as well I have added on here the finally and now let’s run that out so let’s say my n one is 67 and num to say 32 and here goes that 67 is written on 32 after the try we have used our the else part so that’s the reason else part got executed fast then we were having the finally keyword and then basically my finally statement was present there so this particular statement got executed that’s finally keyword used right hope I am very much clear with the complete detailed explanation for the program as well that how to add on the finally keyboard how to add on the else conditions and all the things are very much Clear hope right fine so let’s see the other things as well uh so now basically I’ll be discussing about the summary of this particular module that we have discuss so let’s take uh let me just uh take you to that particular presentation as well now let’s take out a quick summary of whatever we have learned in this exception and file handling module so let me take you to the very starting from where we had started out and there will be seeing up all the things so we had started out with the in ction that what is uh file handling so file handling basically deals with the uh text files it means that uh this is completely known as when you are dealing with the text files means you are opening you reading writing appending all these operations are done onto a text file and this particular procedure is known as file handling the another name for file handling is python file input output functions file IO functions or file in input output functions whatever you just want you could use that out right so particularly we have different uh functions here like read write upend alter many other functions we are having okay let’s move forward and here we described out the open read and write modes so open was one of the mode that was basically helping us to open out a file as we been read out a book so first of all the first um procedure that we do is that we open out that relevant book same here whatever the file you are going to uh particularly operate first of all you’re going to open out that file so that particular thing is done with the open mode then we have the read mode so read was a mode which allows you to read out whatever is written into your program into your file into your text file and write was one of the modes which basically allows you to write out anything to write anything onto your text files so these were the three modes that we had seen we had seen the Practical for these that how to implement them out then we were having adding text and the counting characters so for adding out some text onto your text file we were having that function that’s append function so append was a function that basically helps you to add on uh the text onto your file right that as well we had seen out next we were having a function that was used for counting out the characters that total how many number of characters you are having into your text file so that function was Len function right now let’s come then we had seen about the readline function so this was one of the functions which basically allows you to print out your uh relevant written out text line by line whichever text you have written into your um like into your text file so it allows you to print out all the text line by line as an output for you right then we had moved on towards the exception handling we had seen about the try and accept functions so we had seen about the try and accept statements whatever the code written inside the tri blocks gets uh it will only and only get executed when there is no such error or no such exception occurred if you are having any exception then basically the tribe block will not get executed and you will be getting out your relevant exception we had seen two methods for writing out the exception first for accept simply write out the accept and inside the print statement write out your relevant statement and the second one was you could use except exception as e and you could print out e so it will automatically give you a relevant uh and the meaningful exception right so we had seen about the try and accept we had seen one one more thing here that with one single try you could use any n number number of except functions right then we had gone ahead with the try and the else Clause so I told you that how to use out the try with the else Clause so the part uh the block of code written inside the else Clause only and only gets executed when you do not have any exceptions into your program if you are having any exceptions then your s Clause will not at all get executed right this was what we had seen in the try with else clause and at last we had seen about the finally keyword that what’s the finally keyword how we just execute uh like um in the finally whenever you do not have any uh like uh if you’re using out the tri block or if you are using out the except function either your Tri blocks executes or your except block executes it doesn’t matters but what matters is that your finally keyword will surely get executed no matters you are having any exception or you are not at all having ex any exception in your program but your finally keyword will as well get executed right so hope I am very much clear with whatever I have just told you regarding this module of exception handling and the file handling right so hope you’re very much clear with all of the topics which I had shown even what practicals we have performed hope you all are very much clear with advanced concepts in hand let’s tackle data structures and algorithms we will explore arrays stacks qes and dinker lists and dive into essential searching and sorting algorithms to enhance your problem solving skills now let’s talk about our first linear data structure that is array so what is an array it is a linear data structure that means elements will be stored in a linear fashion right linear fashion now if you talk about array let’s take an example now let’s consider that this is how you represent an array in the form of a row right and let’s suppose it contains elements 1 2 3 and four right now with every memory location there will be some address right so let’s suppose these are the four elements right 1 2 3 and four and these are some addresses let’s suppose this is 100 and this is 104 this is 108 and this is 112 now if you talk about memory obviously these addresses will be are decimal and when you talk about this this particular array it will be somewhere in the memory with four uh or you can say four bytes of memory for each integer now if I take if I consider this integer and let’s suppose integer takes four bytes now these four bytes are available for each integer now this is an integer right now it takes four bytes now the second interest will start from 104 right because now again this will take four bytes then 108 again it it will take four bytes and 101 112 right so in memory it will be somewhere around but the thing that obviously you might be thinking okay sir let’s suppose this is our memory and now if we have four and four bytes that means 8 bytes here and 8 bytes here but they are available in chunks right this is
one chunk and this is second chunk and rest of the memory is occupied can we store this array in your memory in the memory no because it needs contigous memory allocation that means when this is the scenario where in you have memory locations or memory locations available in a one big chunk right that means if you talk about this array it requires four into 4 that is 16 bytes are available but and they are available in a in a continuous memory fashion right or they are available in in such a way that it is a one single chunk of 16 bytes okay so then only you can store the elements at that location now obviously for Simplicity I’m taking this addresses as a integer number but in reality those are hexadecimal numbers okay so it is easier for me okay so now one more thing is that the elements are stored in a linear fashion right but can we access elements randomly yes with the help of indexes so if you talk about this array right 1 2 3 and 4 obviously this there will be a name associated with this array right now we have index 0 1 2 3 now why indexing starts with zero or why there is a zero and indexing always starts with zero now the question is that right now let’s try to demystify this fact that why indexing starts from zero why not it starts from one now if you remember right I told you that there will be a name associated with this array that is ARR now this ARR is nothing but name of the array and name of the array represents right it represents its Base address right now The Base address of this was earlier we spoke about it so it is 100 this is 104 this is 108 and this is 112 right so now this is 100 now let’s talk about how you access uh uh we will talk about in the coming slides we will see how to declare and initialize our array but let’s suppose if we talk about how to access this we use array and then the subscript and then the index okay the index is one now I told you name of this array represents the Base address so Base address is 100 now plus one now this one represents four bytes okay so the four bytes then what internally happens it will be it boils down to 10 100 + 4 that means 104 now 104 is not the first location it is the second location okay now similarly if you talk about accessing the second element or third element in the array it boils down to what array of two which is nothing but 100 + 2 now this two is nothing but 8 right 108 so you will be accessing the third element in the array now how can you access the first element so AR of zero now it boils down to 100 plus 0 because there are no bytes right so it boils down to this that array indexing starts from zero and now you know why and this is how you can access elements randomly so with the help of these indexes okay so now you might be thinking okay now we have an are can we store different elements right can we store let’s suppose this is can we store in this we will store integer then we will store a floating Point number then we can we store a character no if you talk about any particular array let’s talk about this array now the data type or the type of data that you can store in this array will be homogeneous that means you can only store similar elements okay so these are some facts and this is how array works and what are the addresses what are the indexes can you store different elements no you can only store similar elements in the array now let’s talk about the applications of array now you might be thinking so why do we need this array what is the uh what is the reason that we are using this array so basically when you talk about arrays now obviously when you have a scenario wherein you want to store your elements in a linear fashion right and that to you want to store them in a continuous memory locations right so that you can use your CPU or you can use your memory efficiently right not the CPU can use your memory and you can utilize your memory to the maximum right so you want to utilize your memory efficiently at that time you can use this but obviously it will have some drawbacks right it will have some drawbacks that is why we have different different data structures right so if you want to store your data in a linear fashion you can use arrays okay now it is also suitable for for the scenarios wherein you require frequent searching right if you want to search an element in an array you can directly go and access these indexes one by one right so in a linear fashion you will access okay is this the element that you’re looking for no is 20 the element that you’re looking for no is 30 the element that you’re looking for no is 40 the element that you’re looking for yes one by one you can access all those elements and try to search for the element that you are looking for okay so it is suitable for applications which require frequent searching now let’s talk about one dimensional so if you talk about 1D array it is can be related to a row like we saw in the example right so that is what is a onedimensional array it is represented in the form of row and we have addresses like 104 104 108 112 and 116 and indexing will be obviously 0 1 2 3 4 and then there will be a name associated with this array which is ARR and then you can store the elements in this array let’s suppose here the it is an integer array okay you can store only integer elements and the size of this array is five and you have stored the elements one 2 3 4 5 so now it can be related to a row wherein elements are stored one after the other like you see you have one then you have two then you have three and there those all of these numbers are in a continuous memory are available in a con location okay now when you talk about 1D array there is only one index used right when you try to declare and initialize your area at that time you will use one subscript okay so how you can use that let’s suppose if I if I talk about this special array that I that I have defined here right you will Define it a RR and then the sub or the index is that the number of elements that are present here which is five so only one subscript will be there or one index will be used okay so this is how you uh declare your array so now let’s talk about the Declaration and initialization of this array so obviously when you talk about the array there will be a name associated with the array and then the data type are you going to store integer values in that array then the one uh that one subscript or one index that we use and then definitely the size of the array so this is how you declare your 1D array now how can you initialize it there are different way you can initialize it obviously here you are declaring it then you might use a for Loop to initialize all the elements or you can declare or initialize your array at once so how do you do that so you will write let’s suppose this is the integer array and you don’t have to specify the size you can directly write the elements right and those elements let’s suppose those are 1 2 3 4 and 5 in this case when you’re declaring and initializing your array at once at that time this size becomes optional you don’t have to specify explicitly the size of the array but obviously the size of this array will be five okay now since you are declaring and initializing it at once so this is optional but in the case where wherein you are not initializing it at that time the size becomes very important and you have to mention this size explicitly okay now let’s talk about two dimensional are so also it is known as 2D so it can be related to a table like this or you can also say a matrix wherein you have rows and columns right now in this elements are stored one after the other in such a way that you can think of it as a 1D array now this is what 1D array right as we have already seen it right and inside this 1 and D array you have another 1D array right now this is known as 2D are so now how it works right let’s suppose you have numbers over here and you have four numbers 1 2 3 4 then you have 5 6 7 8 then you have 9 10 and 11 and 12 so this is a 2d array of having or and this will be similar to what of having three rows right you have you will have three rows not four rows you will have three rows and in that in those three rows right you will have what four columns 1 2 and so numbers will be like this 1 2 3 4 5 6 7 8 9 10 11 and 12 okay done so now obviously this will have let’s suppose this is 0 based indexing and this will have a zero index here one index here and one now internally what is happening it will be a 0 0 and it will be a 01 then 02 03 then 1 0 1 1 1 2 1 3 then 2 0 2 1 22 and 23 indexing right so similar to that we will have this index will be 0 0 this will be like this and this will be like this so if you want to access the element that is present at this location what you will do you will run two for Loops right one will be starting with from let’s suppose one will start from IAL to0 to the length of this outer array that is uh three less than three right so and the another from zero to the number of rows that are there okay so this one will be the outer loop this one will be the outer loop and this one will be the inner loop that means the number of columns that are there so this is for row and this will be for column that will start from 0o to less than four okay so this is how you iterate and it will be similar to this and now what about the addressing right what about the addresses that will be there so this will be let’s suppose if this is 100 now this will be 104 this will be 108 this will be 112 this will be 116 because internally it is treated as if they are again in a continuous memory location but this time around you have a 1D array and inside that 1D array you have another 1D array so for declaring it you will use two subscripts right so it will be something the name of the then two subscripts and now this will represent the number of rows and this will represent the number of columns so in this case the number of rows will be three and in this uh and the number of columns is four right so this is how you declare your what a 2d array so Dimension depends upon the number of subscripts you are using so this time around we are using two subscripts now let’s suppose you are using three subscripts right so similar to like this three three and three okay so this time around this is the 3D array and similarly you can have multi-dimensional array right and you just need to keep on adding the subscripts that’s it okay uh now we should learn regarding array implementation right we are solving three different problem statements here the first one is we are creating onedimensional array it is very simple and people can understand it in very easy way the second one we are concentrating on creating two dimensional array that means usually we use it for Matrix which includes rows and columns also we call it as M and N or M cross n all these three are the names which you can give it for two-dimensional array and also two dimensional array is used for different purposes at the last we are trying to sort search and insert delete the elements inside an array only which is having integers so these are the problem statements we are solving for arrays in Python so let’s quickly hop into the ID and check out the first problem statement that is how to create onedimensional array and insert elements inside that also put up the output whatever the input is given by the user on the screen so let’s hop into the ID now here I’m using Google collab in order to put up the first program right so we’ll rename this I’m naming this as one dimensional array so now we’ll come to this ID and we’ll type one dimension array example where you are including array size and you are asking the user what are the different inputs and then we are presenting the same inputs received by the user on the output screen so to quickly save the time I’m just putting up the code now so this is the python code where we’ll be using for one dimensional array I’ll explain what is happening here the first thing is we are asking how many elements to store inside the array for example it might be 5 6 10 so whatever the integer number is the whole number we can give it right so again we are asking assigning a variable for input so whatever the input is given by the user will be assigned to the variable called num right then we are assigning an empty array why because whatever the size has been defined by the user is put up here so if it is five it can take only five elements if it is six it can take only six elements that’s how it goes and immediately we’ll ask to enter the elements inside the array then we’ll be pushing through a for Loop and we’ll be using one important piece of code here that is ARR do upend upend in the sense will be assigning the elements one after the other at the back of the array we are not putting up the elements which is inserted by the user in middle or in the front or somewhere right so upend will always ensure the elements which is given by the user is put up at the back of the array one after the other right so next we’ll display whatever the array elements are so the array elements are again you have to push through for Loop because it has to uh just print the elements one after the other so let’s quickly run this program and check out how does this output look right so it is asking how many elements do you want to insert into array so I’m just putting up three as of now so enter then it will ask you for first number I’m putting up four and then the second number that is five then it is I’m giving seven okay so it will display 4 5 7 also you can modify this outputs by giving commas by giving uh spaces between those if not it can generally display this way four five and 7 so this is about onedimensional array in Python let’s see the second problem statement in arrays for python right so we are going to create two dimensional integer array where you can insert row number and column number and it will fill up the elements inside the array accordingly so let’s quickly switch on to the ID that’s Google collab and check out how does 2D array work in Python so here I’ve have named this particular file as 2D array and you can name it whatever you want and I’m putting up the code here so explaining the code for you that we have asked for row row numbers so how much the row should be in your Matrix I’ll take it as Matrix only because usually rows and columns will be using in Matrix so number of rows should be given by the user and we’ll store that number in our underscore that is row number again we’ll ask the user uh input number of columns right so whatever the number is given integer value whole numbers is stored in C num that means column number you can accordingly put up the variables as per the problem statements so here to keep it relatable I have used R num and C num next we are going to assign whatever the values we have right that is given by the user that is it might be a row number or it might be a column number we’ll assign that with the elements so to assign we’ll be using for Lo because one after the other it has to be printed right at last we’ll be printing the final array and final Matrix two dimensional array in 2D array I I just put up a abbreviation here so it’s understandable for you guys so T W2 D is dimension underscore array AR RR I not put up completely array it’s just ARR so this is how we initialize and the variables declaration and this is how we execute the program let’s quickly see the output of this so I’m running it is asking for the first time that is input number of rows so the number of rows I’m giving here is uh two and again I’ll enter it will ask for number of columns so then it is three here I’m entering that and it is giving you two rows and three columns also if you want you can arrange it as per Matrix so one after the other but here I’m showing it for you guys just with see you can count three columns you have and two rows right the bracket defines the rows here right the first bracket set of brackets is for first row and second set of bracket is second rowes so this is how 2D array Works in Python so we are going for the third problem statement which we are solving for array in Python so it says Implement search sort and delete operations on array of integers right so I’m breaking these three operations that is search sort and delete into three different programs to make it simpler rather than combining everything and making it to one huge program so first I’m concentrating on deleting elements inside an array of uh integers in Python so quickly we shall hop in to the IDE and see the program here Google collab is ready and the page is empty I’m just pasting this particular code in order to use time efficiently so explaining this code the first line it says enter the size of an array right we are first accessing an array size for example example it might be 10 5 8 as per the user command and then we are inserting so many elements in into that particular array say for example it is five right so we are inserting five different elements which we have already seen by now so next it is asking which element to delete right so we are telling an element a integer to delete then it will display the new array for you so fall Loops are there in order to keep the array in sequence and it might be printing or it might be taking input from the user both we are using for Loop only and upend is for putting up the elements into the back of an array right we are not inserting element in middle or somewhere in the front abruptly the insertion should not happen so one after the other sequentially in order to upend in order to insert the elements we use AR rr. upend so let’s quickly see what is the output of it so if you have entered any element which is not there in this particular array right so it will give you element does not exist in an array so this is how the program will work so let’s quickly see the output now so it is asking for aray size I’m giving three I’ll enter Then entering all the three numbers what I want to give okay it will ask you which value to be deleted right I’m giving value five so the new array is without five that is four and six so this is how it will work and immediately I’ll show you if you give any element which is out of the array bound how it will give you an error so I’m taking three elements again 5 7 and 8 right so it will ask you which value to be deleted I’ll say one one is not there in the array it is just 5 7 and 8 right so if you put that it will say element does not exist in an array right so this is how deletion will work in Python arrays after knowing how to delete element in an array so we have to see next how do you sort elements inside an array in Python so let’s quickly hop into the ID and check out how do you sort elements inside an array right so here we’ll start coding just putting up the code here so array is already defined the elements are 10 22 38 27 11 so on right so we have five elements here to be sorted in ascending order and you can also make it descending as well I’m showing you for ascending order so what is happening here I’ve just put up a comment for better understanding displaying elements of original array original array in the sense whatever it is here is displayed first right so next it is sorting by using for Loop right so so every element it will Chuck and it will try to compare with the next element if it is greater it will push up that particular element to the back and whatever it is lesser will come in front so this kind of exchange will happen and it will sort in ascending order so ascending in the sense from smaller to higher number so quickly it will display after sorting the elements of array sorted in ascending order are so and so so let’s quickly see what is the output of this particular code right so we have original array which we have given that is 10 22 38 27 11 and then we have the sorted array so in ascending order it is 10 11 22 27 38 so this is how it will sort the major function where it will be sorting is we are using this particular lines of code which I’m just highlighting in this particular ID where it will compare each and every element inside the array to the next one if it is greater it will push it to back if it is lesser than the compared array I mean array element it will push it to front so this operation will happen in this particular lines of code right you can also sort by using sort function directly as well so this is a simple example to know how sorting will happen in Python now we shall see how how do you search an element inside an array so here I’ve tried to put up occurrence as well so let’s quickly search and see elements in an array in Python ID okay so this is the code in order to search the element also find the occurrence of it right so here this is the array set so I’m giving the number 1 2 3 1 2 5 so you can see one two is been repeated those two integers are repeated so first it is showing up the created array whatever the array which is been given is put up in the first place and next what it is doing it is trying to find the occurrences of it so with the help of Index right so the element two the number two so where it is present and how many times right so first where it is present it will show that the second time will not be counted first occurrence will be counted so let’s quickly see the output of of this particular code right so here uh the new created array is so whatever the given array by the user is been put up in the first line and the second line it it is saying the first occurrence of two at position one why this is 0 1 2 3 4 5 right so two at the first time is present in the index value array one right again next it is searching for one where it is the first occurrence of one in Array is at Index point0 right so it is showing the output zero again you have one here that is 0 1 2 3 also you have second two in fourth position but still wherever it is available at the first is being uh demonstrated in this particular program right so this is how the occurrence is counted also the elements are searched in Python now let’s talk about advantage of arrays so obviously when you have indexes associated with the array right we have indexes so is it is easy for us to access any element right with the help of this index so if you want to access the third element we can directly go ahead and say a r of two and the 1D right so we can directly access elements with the help of indexing similarly it is easy for us to iterate through it right with the help of one for Loop we can iterate through all the elements right one by one that is there okay that are there in the array and similarly if you want to do the Sorting we can go ahead and easily iterate through one uh these elements one by one and look for an element if we are trying to search an element in the array let’s suppose uh we are searching for three so 1 by one we will search okay is this element three is this element three is this element three is this element three is this element three right and if this element is three we we can easily search and also for sorting right let’s suppose we want to sort this array what would it be it will be simply what if you have four here three here two here one here and let’s suppose you have zero here okay so now you want to sort this in the ascending order so what you will do you will use two Loops one will uh one will focus on this first element and then the second uh the second one will compare all the elements okay and then at the end of this thing you will have the largest element at the end of the array so sorting iteration searching it is easy and array you just have iterate through all the elements one by one now it is a replacement of multiple variables now what you mean by this thing let’s suppose you have an integer or let’s suppose you want to store uh the r number of 10 students right so what you have you would have done earlier prior to what when you don’t know the arrays what you would have done you would have said RO number one and then it’s or you can say S1 S2 S3 S4 and one by one you can store the role numbers in these integer variables right so as soon as our students increase now let’s suppose we are talking about here 10 students now as we talk about 100 now what happens if we talk about 500 are you going to uh write 500 variables integer variables S1 starting from S1 to S500 no it is a very inefficient way of doing so right so instead what you can do you can create an array and you can create an integer array and name it student student and and there in you will have the size which which obviously represents the number of students that are there and in this case it will be 500 now if you want to change it to uh tomorrow if you want to change it to 600 you can go ahead and easily change it to 600 right so it is the replacement of multiple variables so this is what it means now let’s clear the screen and now let’s talk about disadvantages there is one disadvantage that can be easily noticed is the size now obviously when you’re talking about 1D array right the size or any array right the size is there right so you you cannot exceed this size the elements cannot exceed this so let’s suppose you have size is five you can only store five elements right you cannot go more than that or beyond that now if you have a size 100 and now you’re trying to store only two elements anyway the 100 memory locations will be there for this array that means you are was ing your memory you are not utilizing it efficiently okay so this is what it means that size is fixed and you cannot store more Elms and if the capacity is more than occupancy most of the array gets wasted okay so these are two things apart from this you need a contigous memory allocation that means if chunks of memory are available here and there you cannot store an array which is let’s suppose here you have 16 bytes and here you have 16 bytes only if you have an array which is of 16 bytes that means if you have an array of size four that array can be stored here but if you have an area of let’s suppose size eight you cannot store four elements here and four elements here that will not be happening okay that cannot happen rather okay because it needs continuous memory allocation so there is one more disadvantage and the last but not the least is that insertion and deletion is difficult now why do you say that let suppose you have an array and you are having in this array 1 2 3 4 now let’s suppose you want to insert a value zero at this location now what you need to do you insert the zero and rest of the elements every element will be swapped so swapping is required right swapping is required plus there should be Memory available so that you can store that element else if uh there are only four elements and now you want to store zero and the size is also four and that time around what happens you will store one and rest of the elements will be swapped and you will be losing this value so it is very difficult to insert the value now same thing will happen when you’re trying to delete but at that time you will not be losing data but yes swapping is required right so let’s suppose you are you want to delete this location so what you will do or delete this number what you will do you will overwrite this with three you’ll overwrite this with four and let’s suppose if there is six you will over write this with six so at the end you will have 1 3 4 6 right 1 3 4 6 and one memory location is there and it will contain the same element that is six so next time around you will just override this so again the swapping is required so it is very difficult to insert and delete an element in the array now let’s see the concept of Stack now coming to the stack stack is a linear data structure which follows last in first out order that means the element which are inserted at last will be removed first that is Le order last in first out now insertion and removal of the element has done at one end I will explain you now so let’s see an example of a stack so here if I’m having 23 45 67 89 11 and let’s suppose I’m having 50 so these are the elements that has to be inserted in this stack so now what I will do so this is my empty stack let’s suppose that and inside this stack I will insert these elements by one so first I will insert 23 after 23 I will insert 45 then I will insert 67 after 67 89 11 and 15 so this is my stack now as I told you the element which is inserted at the last will be removed first that means last in first out or Leo order so you have seen here 15 is the last element that has been inserted here so now if you want to remove the element then 15 will be the first element that will be removed so for insertion we are using push so push was used to insert the element and pop will be using to remove an element from the stack so 15 is the last element that was inserted so now I will be using pop to remove this 15 so once 15 has been removed then I’m having element 23 45 67 89 and then 11 right so once again if I want to remove the element then my 11 will be removed so once again I will write here pop so always remember that push operation will be used for the insertion and pop operation will be used for the removal so whatever the elements I was inserting here 23 45 67 89 11 15 I was using push operation so if I’m writing push 23 then 23 was inserted then after that if I’m writing push 45 then 45 was in inserted and after that if I’m writing push 67 then 67 was inserted and in this way I can use the push function to insert the element now as I written here insertion and removal of the element has done at one end why if you see this was my stack right so this is my stack so whatever the element I was inserting in an empty stack I was inserting it through one end right and I was doing insertion through push operation now if I’m doing the pop operation then also I’m doing the pop operation through one end so that’s why you can see that here it is written that insertion and removal of the element has done at one end so this was the basic concept of Stack now let’s see the example of Stack so you can see here this is my pile of coin right so this can be considered as the example of Stack why because the last coin is removing first here so this follows last in first out so I’ll remove one coin one coin so if I’m reviewing step by step that means the last coin will remove first and in this way if I will follow then you can see that I can remove one coin one after other one after other and in this way this will be the example of Stack similarly the same example goes for the DVD if I am removing One dvd after other then this can be example of Stack so the DVD which was inserted at last will be removed first the same goes for the books the book which is on the top will remove first and after that if I’m going one by one from the top so you can see that the last book that was kept will removed first and in this way this can be the example of Stack so this was the basic example of Stack now let’s see some functions associated with stack so we are having push function so as I told you that if I’m writing here push 23 and let’s suppose this is my stack so this is an empty stack so it will insert 23 here so here you can see that it is used to insert the element X at the end of Stack so here instead of x if I’m writing 23 then it will insert 23 similarly pop function as I told you that pop will remove remove the element from the stack so it is used to remove the topmost or last element of the stack so if there is only one element in the stack 23 and if I’m writing pop then it will remove 23 right and also please remember that it will remove the topmost or last element in case of this stack we are having only one element so this will be the last element so if I’m writing pop then 23 will be removed but what if I’m writing here push let’s suppose that 25 then 25 will be inserted here and once again if I’m writing pop so this will be the last element so 25 will be removed so this was the basic idea about push and pop function now coming to the size so size function will give me the size or you can say the length of the stack next we are having top so it will give the reference of the last element present in the stack so let’s suppose that this is my stack and I having 23 25 and let’s suppose 27 so this is my last element here so top fun fun will give me the reference of this last element now coming to the empty function so empty function returns true for an empty stack so if this is a stack and if this stack is empty then the empty function will return us true right so this was the basic idea about functions in stack and what will be the time complexity for each function so here the time complexity for each functions will be bigo of one for push pop size STP and EMB so for for every function time complexity will be big of one so this was the basic idea about the functions now let’s see the stack implementation so there are several ways to implement stack in Python we can use list we can use collection module from where we can provide DQ class and we can also Implement through Q module so these are some ways from which we can Implement stack in Python so now let’s see the implementation using list so in implementation using list list in Python can be used as a stack so we can use list as a stack in Python so in Python we are having append and P function we don’t have any push function in Python so if you want to insert the element we need some function right so we can use the append function which is used to insert the element now coming to the PO function yeah we are having po function in Python and pop removes the element in the Leo order that means last in first out and as we know that our stack also follow the Leo order the elements which are inserted at last will be removed first so these two are the functions that we will be using here in list now let’s see the logic of this as I told you that list in Python can be used as a stack right so here I’m using list as a stack so this is my stack variable and this is an empty list and now as I told you that if you want to insert the element then you can use append so this was my UT list that is Tack and as we know that in Python list is denoted by square brackets so now what I will do I will write here stack. append and inside this happend if I’m writing X so X will be inserted in my list now now coming to the pop function if I’m writing here stack.pop and if I’m writing print and inside that if I’m putting it then whatever the element I’m having it will remove so let’s suppose that this is my stack and in this if I’m having X element so if I’m writing stack. popop so it will remove this x element right because I’m having only one element here so the last element will be removed from the stack so this is the basic idea from where stack can can be implemented using list now let’s see the Practical example so now for practical implementation I will be using jupyter notebook so I will click on here new and then I will go for Python 3 and if I’m writing here I’ll give the name here stack and let me comment it down first here I will write here hashtag and I will write here implementation using list so as I told you that stack can be implemented using list so I’ll create a stack variable and this will contain list this is an Mt list and after that I will write here stack do append and inside this if I’m writing here welcome and after that once again I’m writing stack. append and I will write here now [Music] two once again I will write this tag. append I’ll WR great learning so you can see that this is my append now if I’m printing my stack so I will click on run button so you can see that this is my list and earlier my list was EMP but now through append function I have inserted welcome to Great learning so now this is my list now what I will do here from this stack I want to remove the element so for that I will be using pop function so I will write here stack. pop and I will put this stack.pop inside a print function so I’ll write print and now let me execute this so on executing you can see that I am getting great learning so that means the element which was inserted at the last has removed first right and as I told you that PO will always follow the Leo order last in first out so if I’m printing my stack you can see that I am getting welcome to because great learning has been removed through for function if once again I’m writing here let me copy and paste this contrl C control V so once again I’m performing here stack.pop and if I’m printing stack then you can see that I will be getting welcome only so you can see that welcome I’m getting and here stack. pop if I’m doing then two has been removed right so clearly we can see that we can Implement stack using list through aen and po function so this was the basic idea about stack implementation using list so the another way the stack can be implementation using DQ so we’ll see the concept of implementation using correction. DQ so here Stacks in Python are created by the collection module which provides DQ class so now let’s understand this is a collection module so in Python I will write here from collections so from collections module I will import my DQ class right so I will write from Collections and then I will write here import DQ so DQ here is double-ended q and here append and pop operations are faster as compared to list why because the time complexity of DQ is Big of one whereas the time complexity of list is Big of N and also in list if you are inserting more element then the list will grow and it will go out of a block of memory so python have to allocate some memory so that’s why on inserting more element in a list the list will become slow so that’s why we come with the another way from The Collection module we import DQ and then so I will create my stack variable and inside that I will assign my DQ right so now I will perform the same operation that I was performing in list I will write here append and pop so always remember that DQ will be preferred more as compared to list because the append and pop operations are faster here right and rest all the concept is same so let me execute it so now let’s see the implementation with DQ so let me comment it down here I will write here implementation using DQ now after this as I told you that if I want to implement DQ then is a class right so I have to import it from The Collection modules so for that I’m writing here from collections import DQ and I will write stack variable and inside this I will assign the DQ now after this I will write here stack. end and let me write the value as XU and if I’m printing my stack so on execution you can see that I’m getting my DQ as X now let me append some more value so I will write here stack do append Y and after that I will write here stack do append let’s suppose Zed and once again if I’m executing so I will write here print stack and on execution you can see that I’m getting XY Z now let’s perform pop operation so I’ll write here stack dot pop and let me put inside this into the pin function so as we know that if I’m writing here stack. pop so the last element which was inserted will remove first so Z will be removed here so you can see that it’s Zed has been removed now if I’m printing my stack so I’m getting here only X and Y so you can see that list and DQ are the same the only difference is that DQ is faster because the append and PFF operations are faster in DQ so this was the basic idea about the stack implementation using DQ now let’s see the stack implementation using Q so here in implementation using q q module contains the Leo q that means last in first out so here basically what happens here it works same as the stack but it is having some additional functions so it is having some additional functions and work same as a stack right now we have seen that in list as well as in DQ we were using pop as well as append operation right but here to insert the element we will be using put operation so if I’m writing here put of three then that means it will insert three in my stack so similarly if I’m writing here get function so it will remove the element and as I told you that it works same as the stack so the last element will be removed first here now we are having some functions available in the Q module so the first function that is get so as I already told you in get function it is used to remove the element now coming to the max size so here Max size means the number of Maximum elements that are present in the Q coming to the next function we are having empty function so if a q is empty then it will return true or else in other case it will return false next full so whenever the Q is full it will give us true similarly put I have already discussed about the put that if you are inserting any element so you can write the put and suppose if I am inserting here two so it will insert two in a q now now Q size so Q size will give me the size of a q so let’s suppose that if you are having a three elements that are inserted in Q 3 2 4 so what will the size of the Q Q size will be three now coming to the logic so how can I import Leo Q through the Q module so I will write here from q and then I will write here import and I will write here leao and then I will write here Q after that as I told you that stack can be implemented through the Q module so I will create a stack variable here and I will assign here Leo Q so I write here Leo q and now if I’m writing here stack dot put and if I’m writing two so this means I’m inserting the value two in a stack similarly if I’m writing here stack dot get so that means I’m removing the value from the TX so this is the basic idea now we will see all these functions in the Practical coding example so let’s start with the coding part I will write here comment and inside this comment I will write here implementation using Q now after this what I have to do I have to import Leo Q from the Q module so what I will write here I will write from Q import Leo q and I will create a variable stack and I will write now Leo Q so after creating stack variable as I told you that if I want to insert the element in a queue then I have to use the put function right so I will write here stack dot put and I will insert here let’s suppose two so you have seen that I’ve already inserted a two element now let me insert some more elements so I will write stack. putut and I will insert three here and after this I will write stack. putut 4 so this is all about the put function right so we have seen several functions in Q so let me write here function so here I will write print and if I’m writing here stack do Q size so as I told you that Q size will give you the number of elements that are present present in the Q and I have inserted three elements so the Q size must come as three so on execution you can see that I am getting the Q size is three right now I’ve also told you about the max size function right so inside this if I’m writing here Max size Max size is equal to three and if I’m writing here once again print and if I’m writing stack Dot full so as I told you that full function will return true if my stack is full so here I have allocated the max size as three and I’ve inserted three elements that means my stack is full so on execution you can see that I’m getting true right because my stack is full now if I want to remove the element from the stack then which function I can use I can use here stack dot get and now if I’m once again writing print stack dot full will I get True Value no because I have removed one element so if I’m running it so on execution you can see that I’m getting a false value so here you can see that we have used the put function get function full function Q size function Max size so this is the basic idea about the stack implementation using Q now let’s try to understand Q linear data structure what is q q is a linear data structure that means all the elements in the queue are stored in linear fashion now it follows a principle of V4 that means there’s a restriction that whatever is the first item in is the first item that is to be out okay so now let’s try to make a cube let’s suppose you are in a cube and you’re waiting for a movie you’re waiting for movie ticket to buy okay so there is one person then there is another person right these are few persons here right and you’re waiting in a queue so now the first person who is in the queue will be the first person who will get his ticket right makes sense right so he will be the guy who will get his movie ticket first and he will be out of the queue then the next person who is in the queue is the next person who will get his tickets right and let’s suppose a new person comes in he’s not going to go ahead from this person rather is going to go behind this person then the next person comes he will go after this person and in the same same way so this is nothing but a P4 principle okay the first person in is the first person out okay now insertion will always take place from the rear end okay and if you talk about deletion it will always take place from the front end okay so this is our front end and this is our RAR cool so for examples buying a tickets from the counter or it can be a movie ticket or can be a bus station you are in front of a bus station trying to get tickets for your uh bus right these are some examples now there are four major operations when you talk about Q what are those major operations Let Me Clear My screen so NQ so you are going to insert an element in the cube this is what you mean by NQ theq you’re are going to delete an element okay from the cube then Peak first that you’re going to Peak the first element that is in the in the cube and Peak last means that you’re going to Peak the last element that is in the cube so you will have two pointers one is front and another is where and with the help of these pointers you’re going to NQ DQ Peak first Peak last you’re going to perform these operations now one major advantage of these operations these four operations is that all of these operations are performed in a constant amount of time that means time complexity of Performing these operations is before of one so that is why when you talk about competative programming Q is most commonly used data structure because of these things right because of its time complexity right you are able to perform your uh operations in a constant amount of time now let’s talk about applications of Q so it is used in scheduling algorithms of the operating system like first in first out scheduling algorithm is there round robin is there and we have multi-level q that is there in all these algorithms Q is used okay for storing the data or the processes it’s also used in maintaining playlists like when you have a playlist let’s suppose you have 10 songs in a queue right and after one song the next song which is in the que will be played and it goes on for like this right so for Main a playlist again a que is used it’s also used in interrupt handling uh let me take an example here you know the process State diagram of operating system so it is also used at that time so uh when you have an interrupt and therein if your process is is being executed at that time that Pro process is printed out and it is stored in a queue now the next time when this priority or this interrupt is handled once it is done then it starts picking up the process C which was in the queue and starts executing that in the meanwhile if there are some other processes that those processes will also be in the que so a queue is maintained and once the interrupt is handled they will start taking out that process that is that was being executed earlier and executes it and completes its execution and terminates the process so it is also used in interrupt handling after learning what is Q in Python theoretically let’s know how to implement lement that into practicality so Q will be having two different basic operations that is NQ and DQ so these things will be shown in with a simple example in Python so let’s quickly hop on to python ID that is Google collab for the reason I’m using it is visible for everybody to access because it’s online availability and it is open source so let’s quickly start the simple program for Q displaying two different functions that is NQ and DQ so here is the Google collab environment where you’ll be working so what we are doing in this particular code is we are creating a class called Q right we are also giving different functions for NQ and DQ NQ is nothing but entering or inserting values to the Q and DQ is deleting values from the Q right as you all know Q will follow F4 that is first in first out so wherever you want to buy a ticket for example in your Railway stations or anywhere you will stand in a queue right so whoever in the first will get the ticket first and he or she will move out of the queue it’s same in here as well but the elements are not humans it’s all integer numbers so whatever the number you put in first is the first number to get out right so let’s quickly see here we have two different fractions as I mentioned that is NQ and DQ and later you will display we are seeing three different functions displaying NQ and DQ so what happens here is we are using self. q. appen so here whatever the item whatever the uh number you give right it will be inserted to the back of the Q right it is maintaining the sequential process of inserting the numbers or the integers or the values you give in order to insert into the queue and while deleting you can use pop right is it upend for insert and PO for deleting and display is nothing but it’s normal print statement you will display whatever the Quee it is accordingly so let’s quickly run this program here I’ve just used certain numbers 1 2 3 4 five five numbers and the after deqing right what it should display it should remove one first and 2 3 4 5 should be displayed so let’s quickly see how it is right okay so as you can see whatever the uh Q is given is printed at the first place that is 1 2 3 4 5 and then after removing the first element right so the first person will be removed because it is ff4 so 2 3 4 5 is there so this is how a simple basic Q will work in Python so after knowing a basic Q implementation right let’s see one of the type of q that is circular Q implementation there are many types of cues but still I’m taking circular Q as an example and showing you the same operations of inserting and deleting elements from the queue so let’s quickly hop into the Google collab ID and check out the program how can we build a circular Q in Python here is the program for circular q and what are the different elements we have inside this program let me tell you the first part is class declaration so here my circular Q is the class right so class can be named accordingly or whatever you feel right so keep it very program oriented rather than keeping which is off topic so here it is my circular q and then again we have two different initialization that is for NQ as well as DQ so whatever the elements we use here right whatever the items we try to insert in the que we have to ensure whether the Q is full or the Q is empty and there is still space or not so all the conditions should be checked so let’s hop into NQ and check out what are the different conditions you have to check so the first thing is the Q is full or not so before inserting something say for example the Q size is five and the element six has been inserted then it has to show an error message that is there are only five spaces they are inserting Sixth Element it is not allowed hence the cube is filled so in order to print that we use this the circular Q’s Bui statement so the next part is you have to know how when it is empty right in order to have the DQ the main condition is whenever the uh elements are out of the Q then it has to be declared as the Q is empty so nothing to delete from the que it’s every all the elements or items are deleted already so the error message or the statement the user will be the circular Q is empty now there is nothing to pop out or delete or DQ so apart from that also you can also uh find if you are trying to print something right if it is mtq it does not have anything then you have to show up the no element in the circular Q found statement why because if there is no elements there is nothing to show our display the display function does not work the print does not happen so this is a basic idea of this particular code and accordingly we have used the iterations and the Declarations so next you have to look at the inputs what we are giving I’m trying to give 12 22 31 44 and 57 right so the five elements for the Q is being given and what you have to do is you have to check the initial values first you have to display the initial values what is the exact Q which you have given with the elements to the user and then which is deleted so the first element is deleted obviously but yes how the circular Q is different from the basic Q right so let’s quickly run the program in order to see the output okay if you could see the output here right so initial Q values so is whatever we have given here that is 12 22 31 44 and 57 so after removing an element so obviously the first in first out process the first element will be removed so it is 22 31 44 and 57 what is difference between a normal Q and A circular Q if you could see here right in the last space after 57 you have a space allocated so in normal Q it is not connected here the front and rear is being connected forming a circle right if one the first element for example 12 goes out the 22 will take the first place and 31 followed by 44 followed by 57 the last place will be empty right so it is in circular motion so whatever you want to insert again right so that will for example if you want to insert six right six will sit in the fifth position that is after 57 right this this will be connected circular motion that is front will be connected to the rear part so this is the difference between the normal basic q and the circular Q now let’s talk about advantages and disadvantage ages of Q first we are talking about advantages so it follows a principle of fif or the elements are stored in fif manner that means let’s suppose this is a Q and in this Q you have elements so the deletion will take place from the front right and the insertion will take place from the rear side so this is known as DQ the deletion and insertion is known as and Q operation and both these operation are performed in a constant amount of time so that is one of the advantages right and the insertion from beginning and delation from end takes a constant amount of time plus if we want to do Peak first Peak last all these operations are performed in a constant amount of time and this is most widely used data structure when we talk about CP that is competive programming when we talk about competive programming this data structure is most commonly used because of these features that all the operations that are performed like insertion deletion Peak first Peak class NQ DQ all these operations are performed in a constant amount of time now let’s talk about disadvantages since we are only able to delete or insert from the front and the rear that means deletion from front and insertion from the rear so the Restriction of insertion or any manipulation right we have a rest restriction over these right what these operations insertion and deletion so this restriction is always there and so this sta structure that is the cube is not is not much flexible right we are fixed we can delete and insert element in a fixed pattern or in the fif manner because it’s not much flexible so now let’s start with the Ling list so Ling list is a collection of group of nodes now what is node here so here you can see that this is a node so a node will contain a data as well as reference so each node contains data and reference which contains the address of the next node so this is a node and as I told you that node will contain a data as well as reference so let’s suppose I’m inserting the data here 20 and this is nothing but a reference or you can say that pointer so this pointer will contain the address of the next node right so as I told you that link list is a collection of nodes so this is nothing but a single node so let’s suppose if I’m having more than one node and if I’m connecting them then it will form a link list so we will see the linked list representation in the next slide now so link list is a linear data structure now coming to the last point we know that in Array as well as in list elements are stored at the continuous memory whereas in link list elements are stored randomly now let’s see the representation of Link list so as I told you that link list is a collection of nodes so let’s suppose that this is my N1 node this is my N2 node and this is my N3 node so each node will contain data as well as reference or you can say pointer so this is data and this is reference so now I will give the address of this N1 node so let me write the address of this N1 nodes at 20110 I will give the address of this as 2020 and I will give the address of N3 node as 2030 so these are the addresses so as I told you that each node will contain a data so let me assign here data let’s suppose 10 is here and a reference or you can say a pointer so I told you about Pointer that pointer will contain the address of the next node so what’s the address of next node the address of next node Is 2020 so I will write here 2020 so this pointer or this reference or you can say this link will contain the address of my next node and what’s the address of my next node Is 2020 now again this will be a data and this will be a reference of my N2 node so let me assign here data as 20 and what will be the reference the reference will contain the address of the next node so here it will be 2030 now again this N3 will also contain data so I will assign here 30 so now you might have a question that what should be reference here so now are you seeing any node after this N3 node do we have node N4 or N5 not right so this reference will be assigned to null so I can write here five because there is no next node is present there right now coming to head what is head so head will contain the address of my n node that means 20110 right so this is my linked list representation now the question arises that why Ling list so now why do we need Ling list because Ling list is having more efficiency for performing the operations as compared to list so what are the operations that we are performing in Ling list we can perform the operations like insertion deletion as well as traversal so it is having more efficiency in performing the operation so moving to the next Point as I already told you that in link list elements are stored randomly whereas in list or you can say in Array elements are stored at continuous memory now moving next accessing the elements in linked list will be slower as compared to list so if you want to access the element in link list it will be slower as compared to list why I will tell you the reason now let’s see this slide link list representation so here this is my N3 node right and if I want to access the data elements of this N3 node then I have to go from N1 N2 and N3 then only I can access the elements whereas in case of list we can access the element through indexing but in linked list it’s not possible so you have to go traversy right here traversal means that you have to go through each node so if you want to access the elements of N3 then you have to start with N1 then you will go to N2 then you can go to N3 so that’s why accessing the elements in linked list will be slower as compared to list now coming to the last Point here in link list utilization of memory will be more as compared to list so let’s start with the singly Ling list so Ive already showed you the representation of Ling list which is same as the singly Ling list so in singl Ling list I’m having here a data and reference in a node so let’s suppose that this is my N1 node this is my N2 node and this is my N3 node so as I told you that each node will contain data as well as reference so I will give here data let’s suppose 10 in node two I will give as 20 and here I will give as 30 and each node is having an address so let’s suppose the address of this N1 node is 1,000 it’s having 1100 and it’s having 1200 so this reference or you can say that link or pointer this will contain the address of the next node so this will contain 1100 similarly my this reference or this link will contain the address of N3 node so I’ll write here 1200 and here after N3 node do you see any node we are not having any node so here this link or this reference will null now coming to here what is head here so head will contain the address of my first node that is 1,000 so in singly Ling list the traversal is done only in One Direction so what do you mean by traversal traversal means that you are going through each node so let’s suppose that if you want to go to the N3 node first go to N1 then N2 then only you come to N3 you can’t directly jump to N3 you have to go through N1 and N2 then only you come to N3 now let’s see some operations in singly Ling list so we are having several operations in Ling list we are having insertion deletion traversal so insertion as well as deletion can be done at beginning at any specified node as well as end now coming to the Traverse I have already told you that traversal means you have to go through each node so going through each node of the link list is a traversal now let’s see the pseudo code of single link list so if you want to create a node in a single link list then what should be the code here so I will write first here class node so here I have created a class whose name is node so this class node will also be having a object right I will create object later on but let’s see let’s suppose this is my N1 node as I told you that a node will contain data as well as reference right so instead of reference I’m writing here next I’m taking a small word here so that it will be easy for coding now so this is my node creation Now what I will do here so in this class node you have seen that I am creating a init method or you can say a Constructor so to create it for first I will write a reserved word that is DF and then I will write in it method so I will write first DF and then underscore underscore init and then I will write underscore underscore then I will write self and then comma comma data so why I written here self I will tell you later on and I’ve also passed data as a parameter here so inside this I have written self. data is equal to data and self do reference is equal to none so why I have written this because my node will contain data as well as reference so I will write here in this method self do data is equal to data and self do reference I have written here next so I will take here next is equal to none so when you are creating a node let’s say this is a node N1 so initially it will be having a data and because I’m just creating a node as of now no I’m not linking this node so the link or you can say the reference will be none right so this is my initial node I have written here self. data is equal to data and self do next is equal to none right now this is a class whose name is node I can create the object so how to create a object I will write here N1 and then I will write here class name node and inside this class I will pass the parameter 7 so here now what will happen instead of self my object will pass here so my N1 will pass here instead of self so now it will be N1 do data is equal to and what’s my data data is seven now the next step we are having the self do reference is equal to none right let’s see here self do next is equal to none so instead of self my N1 is there so N1 will be pass here and N1 do next I will be having a none so this is nothing but a creation of my node now if you want to check then we can write print function and when you will write here node one data inside a print function you will see that you are getting the value as 7 similarly if you’re writing node one. reference inside a print method then you will be getting none so now this is the idea about how to create a node now let’s see this into a coding so I will be using here Jupiter notebook so I will go on here new and then I will click on Python 3 and here you can see that I’m getting a name Untitled 21 let me change it I will write here link list link list and I will write here python now let’s create a node so I will comment it down creating a node so first I will create a class and I will give the name as node and inside this class node I’ll create my edit method so I will write here DF which is a reserved word and then I will write here in it but before that I will write underscore underscore then again I will write underscore underscore and then I will write here self comma data so so why I have written here self so when I’m creating a class object that is N1 I’ve already showed you in the example so instead of self N1 is passed so as we know that we can create a multiple object of a class so if I’m writing here N2 or N3 then instead of self I can pass N2 and N3 also so now let’s create a node so I will write here self dot data is equal to data and I will write here self dot next I will write here none so this is my node creation so whenever I’m having a node it will contain a data and it will be having a reference so initially it is not linked so the reference is none so this is my class now I will create a object of node so I’ll write here N1 and I will write class name and I will pass data as let’s suppose 8 value here so if I’m executing it so on executing this N1 will go to self and this 8 will go into the data so my N1 do data is equal to 8 and my N1 do next is equal to none let me print it so if I’m writing here print and inside that if I’m writing my N1 do data once again if I’m writing print function and inside that if I’m writing N1 do next then you can see that I’m getting the data as eight and the next that is a reference I’m getting as none because I did didn’t link this node to any other node so this is the basic idea how to create a node now let’s see how to create a class of singly Link list so when will my singly link list will be empty so as I told you that if this is a node let’s suppose N1 this is another node N2 so N1 and N2 are connected with each other so we are having a head pointer which always points to the first node right so if there is no no head if head is none then my link list will be empty so now what I will do here so I will create a class and I will give the class name as let’s say singly ling list and inside this class once again I will write init method so I’ll write here def underscore underscore in it underscore and I will write here self now here I will write self dot head is equal to none so this is my condition to create a class so if the head is pointing to none that means it is not pointing to any node and it shows that link list is empy so now let’s see the creation of singly Ling list yeah so let me remove this now I will create a class so creating a ling list so if I want to create a link list I will create a class of Link list so I will write here class class singly Ling list so this is my class and inside this class I will once again write init method inside the singl Ling list I will create an init method so I’ll write def underscore uncore init underscore underscore and then I will write here self and when my link list will be empty so when self dot head is equal to none so this is the simple way to create a single Ling list class now so after creating a class now let’s create a object of this link list so I’ll write here SL single Ling list this object name and now I will write the class name so class name is singly and then Capital LL is there right so on execution always remember whenever you are creating an object and if you are executing it so inside this class in it method will always run I will show you the example if inside this init method let’s suppose if I’m writing here print gorov so I created the object here SL and right now if I’m executing then you can see that gorov is executing here right so always remember whenever I’m creating a object of class and whenever I’m executing it so whatever the statements are inside the init method it will execute so on execution what will happen here I will get here SL do head is equal to none right so SL is my object so instead of self SL will assign here so SL do head is equal to none right so this is my basic concept of creating a node and creating a ling list let’s talk about searching algorithms and the first searching algorithm that we are going to talk about is linear search algorithm so what is linear search it helps us to search an element in a linear data structure now let’s talk about one example wherein we will be searching some element inside the array so let’s suppose this is an array and the elements are 10 20 30 40 and 50 now if we trying to search an element that is 50 inside this array how linear search works is that it checks each and every element that is to be search right that is there in the element array right let’s talk about this example here 50 now 50 will be compared right we’ll check is this 10 equal to 50 no is this 20 equal to 50 know is this 50 equal to 30 is this equal to 40 is this equal to 50 yes so here we were able to do a linear search right we were searching for this element inside this array one by one we compareed first with 10 then 20 then 30 and then 40 and finally then with 50 at the end we were able to find this element in the array in a linear fashion now this is what is termed as linear search now let’s talk about linear search algorithm since it is a very straightforward or you can say a Brute Force algorithm right it’s a Brute Force algorithm of finding the element in the array so this is how it works right we have one for Loop wherein we will be what iterating through all the elements that is from 0 to n and inside that what are we doing we looking for the item that is that element that we want to search right let’s suppose This Is 50 right this 50 will be we were checking if this 50 is equal to the element that is a of I right and then if that is the case if we find out the element in the entire array we will return its Index right that is Index right that I we will we will return this I now there might be the case as well if we are at the end of the array and we have exhausted the last element as well and we were not able to find the 50 right let’s suppose this is 10 20 30 and 40 now the 50 is not present in the entire array at that time what we are going to return is minus1 so we will say that okay we will not able to find this element whenever we are returning this minus1 in this array and this minus1 indicates that we were not able to find that element now we shall see how to implement linear search in Python so linear search will work with the help of an array here so what we are doing is we are searching one single element in throughout an array in sequential manner so this is how linear search will work so here if you could see we have array we have number which one you have to search for and you have the starting position variable so in iterations Array will Move On and On by searching from one place to another place the first place to second second to Third and so on in total we have five different elements in an array that means four different places because array starts from zero 0 1 2 3 4 so index is of four and the elements are of five so we have to first take the key search element and we have to compare that particular element to all the elements inside the array right so if it is not matching the array is not matching with the number you are searching it will throw up an error called element not found if it is found it will show you index value where it is which place of an array it is there so let me quickly run the program for you so I’m trying to search the element one right so the element one is in index position three 0 1 2 and 3 so X is the variable which is used in order to find which number it it will just act as a key X will act as a key you can change this and check if you want to search for eight for example it is not at all there in the array so it will say element not found if you want to search two for example the answer should be zero right let’s check right so index value is zero it is sited in the first place of an array if you want to search for nine it is at the last place so it’s at four right so this is how the value which you want to search is always compared with all the elements sequentially one after the other so for example 9 is compared with two it’s not matching then it will go to the next one N9 is compared with four it is not matching and zero again compared with one not matching it will go to the N ninth place where it is situated right it will compare the elements sequentially so this is about linear search in Python now let’s talk about the time complexity of linear search now if You observe carefully let’s try to understand this best case right so now if you are looking for the element and let’s suppose these are the elements in the array now let’s suppose in best case what can happen you’re looking for 10 and 10 is the first element in the array now how many iteration did you require did it require to find you the 10 none right the constant time right only one single unit operation was done and you were able to find this 10 so this is the best case time complexity where the element that you’re trying to find is the first element that you search right in this case you you looking for 10 and 10 is the first element so this is your best case now what about the average case and the worst case now let’s suppose average case is that you were looking for an element which is at the middle point right let me just 0 1 2 3 4 now or we can put another another and looking for 60 now in this case or you can just skip it okay no need to add one more okay so now you’re looking for an element which is somewhere around in the middle okay in this case you’re looking for 30 okay so now if You observe you are only iterating half of the elements that is 5×2 which is nothing by n by2 since constant doesn’t play do not play any role when you’re talking about time complexity that is why average case still boils down to bigo of n now what what happens in worst case you’re looking for an element that is 50 and which is present at the end of the array or in the worst case you’re looking for something that is not present in the array that is 60 let’s suppose and in that case you will still iterate through the entire area and that is why the worst case time complexity in that case will be biger of n because you are iterating through the entire array and that element was not found you’re looking for 60 and that is not present there so you’re iterating through the entire area that is n operations are done so that is why it boils down to Big of n now let’s talk about the space complexity of linear search when we are trying to find the element in the array that is 10 20 30 and 40 and 50 we were not using any extra memory right we were not using any auxiliary memory that is auxilary memory or extra memory in order to find that element we were just looping around these elements one by one and we were doing it on this particular on the same array that we were given right since we are not using any auxiliary memory that can be in the form of what a stack a link list or an array or a string or a q we are not using these auxiliary memories because they don’t they are not required right we are searching for an element in this particular array that we given to us that was given to us right so the space complexity of linear search is constant right with we were find we were able to find it in a constant amount of space okay we are not using any extra space now let’s try to understand binary search algorithm what is binary search so binary search is one of the searching techniques right like we saw in linear search where in the time complexity of linear search was big of n right we were iterating through all the elements and and now this is a much more efficient algorithm as compared to linear search now again why do we need searching is the thing that let’s suppose if you have a given set of elements and you want to search if that element is present in your array or not that time right we can use either linear search or binary search now binary search is much more efficient and it is used on a sorted array or it can be used on an array wherein some order is maintained because based on that order we will divide our array right it is a searching algorithm which is or which follows the divide and conquer strategy right let’s suppose this is our array and now since it will be divided in such a way that we can neglect one part of it it right we will be dividing and then conquering that means we will be then searching for our element now let’s suppose we are looking for something that is now let’s take an example where in this array is written or the elements contained in this array are in such a way that we if we skip this part or the uh leftand side will be skipped or the right hand sides can be skipped in such a way that they don’t affect our output so every time in linear search our search space is reduced unless and until we find that element or the array is exhausted okay so our search space is redu to half in every iteration so this is what a binary search is we’ll look for an element in such a way that every time we are neglecting half portion of the array and let’s take an example when we have this entire array so first half that means if four elements if there are eight elements four on this side four on this side these four will be neglected then we have two on this side two on this side these two will be neglected then one on this side one on this side then this one will be neglected until unless and until we find that element or the entire array is exhausted right so this is how your binary search works now let’s try to understand B search algorithm so first we are going to understand the iterative approach and then we are going to understand the recursive approach so iterative as the name suggests we are going to use for Loops right we will start with a for Loop and it will iterate and we will iterate unless and until the beginning is less than the end right so because we will be updating our both beginning in some cases and in some cases we’ll update our end now what happens now since we know that in this iterative approach or in this binary search it doesn’t depend whether we are using iterative approach or recursive approach the logic will remain same right so we will be having this array and it will be in some order so that we can neglect some part of it it doesn’t have to be sorted always we can still apply binary search even if the array is not sorted but still some order is there so that we can neglect some part of it because again keeping this thing in mind that it follows the Paradigm of divide and conquer so now we have this beginning and end at place and we uh we will always iterate when beginning is less than end right so now what happens after that now we have this array and now what we will be able what we will do let me take new pointers so this is your big beginning and this is your end so this is your beginning and this is your end now you will be taking a new middle Index right M let’s call it m and now let’s name these things 0 1 2 3 4 so you will do what beginning plus n / by two so that some part of it can be neglected right so it will be two so your mid is at this position now you will see okay the element that I’m looking for is uh let’s suppose is 50 and the element that I am currently at is 30 so obviously it will be never from this side there is no chance that we will be able to find 50 from this side that is the left hand side right first we will check okay is this 30 equal to 50 no so this will never be executed right then we will check is my item that is there is this 30 less than or greater than 50 if it is greater than 50 right if it is if the element that is if item that is 50 is greater than 30 right which is in this case our 50 that is the element that we are looking for the item item is this point is greater than 30 so there is no point that it will be on this side so we will skip or we will neglect this half portion of the array so that is why our new beginning is updated it will be new it will be middle index + one that is middle index was 2 + 1 that is this will be our new beginning so we have smartly skipped the half portion of the array so now let’s rub all of these things and now let’s see what happens in the next iteration now we’ll keep this thing in mind that we are not looping or we are not exceeding this limit that is beginning should be always less than it should be always less than or equal to okay so this this condition should be maintained and similarly we’ll again divide our array and then look for the same things right first we’ll look for the element then we’ll skip some part of it so this is the iterative approach for binary search right now let’s look at the recursive approach or recursive algorithm for the same so again beginning the ground rule will remain same we will always iterate or we will always cursively call binary search unless and until this beginning is less than end done now what happens we’ll again find middle index that is beginning plus end divided by two then we will look for the element these three steps will remain same even if you’re using recursive approaches now what happens in recursive recursion right we again call the function again and again that is what is recursion so in this uh in this entire tutorial we will be covering ing recursion as well but in the later part part of the course here you can get a good intuition or let me give you a brief intuition about how recursion works so let’s suppose this is your activation record every time when a recursion uh is there an activation record is called so let’s suppose you have these three statements let’s suppose in your algorithm you have statement P1 P2 and P3 right and at P2 you are calling the function again right you’re calling this function again so now what happens an activation record is called he will check okay is this statement executed yes so one will be executed is second executed yes so second is executed but at second you calling this function again so at that time again a new activation record is created now this third step is left behind right now this will be covered when we come back or return from this function call that we called here so let’s suppose this function was here now in here you are returning right this function called let’s suppose this is not less than beginning uh beginning is not less than end so this will be some somewhat this case is relatable right this is similar to what we are looking for right let’s Suppose there is some s similar situation where in beginning is not less than and at that time you will be returning from this right now once you have returned you will be then calling this function again but this time around for this and let’s suppose this time around you will you are calling this one is executed Step One is executed now again this activation is record as called this activation report is one and then again this is called right this is executed again this two is called again a new activation record will be created and these three three steps the step third will be still left for execution so now here you return right then it will go back to this step right and then once you are done with this now there are two positions or two possible scenarios where you can return either you are returning from this function just like we have executed this condition and we return right another is that once you are done with this entire activation record at that time you will also return okay so these are two scenarios now you have executed this there is no step to be executed it will return now this left this was left behind this will be executed now nothing is to be executed it will go to the caller which was this and finally it will go to the main method wherein we call this at the first place this function okay so this is how an activation record is created a stack is maintained okay even if uh you might be thinking we are not using any extra space but whenever recursion is there an extra space that is in the form of Stack that stack is maintained so you need to keep this thing in mind while you are playing around with space complexity at the time when you’re using recursion okay so now with that being said let’s clear our screen and let’s see how recursion is called here so again now recursively what we will doing if now we have this mid right and let’s take an example of an array 0 1 2 3 and 4 10 20 30 40 and 50 so middle index will be 0 + 4/ 2 that is 2 so this is our middle Index right so this is zero uh this is our beginning and this is our end right so now we are hit hit right so we again check the 50 that we are looking this is our item that we are looking for okay so is 50 and this is our middle index is 30 greater than 50 no it is not in this case so this will never be executed this is not executed as well right now what about this condition the else part now what we will be doing we’ll be skipping since this 30 is less than we’ll be skipping this part and we will focus on middle index + one which is nothing but this so this will be our new beginning and our process will start moving right so now again then the same thing will happen unless and until this condition is false okay so this is how your binary search works when you’re using recursion so now let’s try to understand binary search and let’s see its demonstration okay so we are looking for 20 and this is our array right 10 11 16 20 and 2 now this array is sorted right so we can apply binary search Okay since we can neglect some part of the array based on some conditions okay so now our beginning in the first iteration what is happening our beginning is zero our end is 4 and our middle is this element now what we be looking for is 16 equal to 20 no it is not but 16 is less than 20 so we will skip this part in the next iteration what happens we’ll be focusing on these three elements right that is 20 uh from we will be focusing on this part rather if we say we’ll focus on this part right focus on this part okay so now in the second iteration what will be happening our beginning is updated now our new beginning is this point our end will remain at its own position now we’ll find the middle index so it will be 4 + 3 that is 3 that is seven right and divided by two it is 3.5 right so since this will be truncated right the truncation will happen and the integer that is there the middle index will be three so this is our middle Index right so you can see middle index is three now is this element that we’re looking for yes so we’ll return the index so we found our element at index 3 and hence we return three because if You observe carefully it is returning if the element is found it is returning the index so this will be returned okay so this is how binary search works after knowing what is binary search we’ll implement the same in Python quickly switching up to the ID so the binary search has four different elements are important the first one is array the second one is which is the element to search for which is stored in X and L low and high why because every array in order to have the binary search will be divided into two parts right it will go accordingly if the key that means whatever the element you are searching is matching the middle element it will exit the binary search immediately if not it will try to proceed with the search of that particular element in halves of the array like it will divide the array into sub arrays the right and left part it it will try to see and search for that element accordingly as per the key element is right so mid is equal to low + High minus Low by 2 so this is the basic formula which will be using in order to split the binary array in order to have the search right so if array of middle that means middle element is equal to equal to that means it is equal to the key element which you’re searching then it will immediately give you the middle element as the searched element so if else what happens if the middle element is lesser than x what it will do it will go to the right side of an array if it is greater than x it will go to the left side of an array right so it will try to search in halves like sub arrays here if you could see the array that is 3 4 5 6 7 and 8 and N9 you have all these elements inside the array what you have to search is four so four is the second element immediately you can see but accordingly you have to search as per the binary search rules what it will do it will first cut this particular array into two halves by using this formula and then it will compare the key element which you are trying to search with the Elements which is already present in an array in order to find so let me quickly run this okay it is telling the element which you are searching is present in index number 1 that means it is having the count of array index not on the element so 0 1 2 3 and so on so four is present in index value one so this is how binary search will work work in Python now let’s talk about the time complexity of binary search now in the best case now what is the best case now let’s take an array and in that array 1 2 3 4 and five these are the elements now the best case is that not that if the element like we saw in linear search this element when we are looking to search for this same element at that time that was the uh best case scenario for linear search right but in this binary search the the best case scenario is when your middle index is at the at this location and you’re looking for you’re searching three in the entire array so at that time this will take a constant amount of time and this is the best case time complexity in that case okay now in average case what happens right if you talk about this algorithm let me just clear out my screen so it follows a paradigm of divide and conquer so let’s suppose you have eight elements first in the array it will be divided into four because these four either it can be on the left side or on the right side will be neglected and then we deal about these then we focus on these things okay these four elements again it will be divided into two and two then we will DCT two elements then one and one then again there will be one of the element can be neglected so there are one and one so we focus on this element so the entire operation will be done or entire searching will be done in three steps right now if you I take an example and if I do a log 8 to the base 2 what should be the value of this obviously when I do this this can be written as 2^ 3 right and this can be written as 3 into log 2 to the base 2 now this is 1 and now you get the answer as three so this three and this three are equal that means if I talk about the worst case time complexity of binary search it will be somewhere around log n as it Al as we saw in three steps we were able to find the element and the log n that means log 8 is the answer of that is also three so you get the point right so the worst case type complexity of binary search is log n and same goes for the average case wherein it will be somewhere around log n / by 2 neglecting log nide by 2 neglecting the constant terms it will be again or it boils down to bigo of login okay now let’s talk about space complexity of binary search now when you talk about space complexity right we only think of auxiliary memories or you can say that or you can say that what any extra memory that you guys have used since we did not use any extra memory that can be in the form of array or it can be in the form of stack or it can be in the form of Q or link list or even strings right since we never use these extra memories in our implementation so the space complexity of binary search is bigger of one that is it takes a constant amount of space what is insertion sort so the question is that what is sorting you might be thinking why do we need these sorting algorithms so if I told you that you have a bunch of students right you have bunch of students and they each have their role number they are not present in what in a numerical order or you can say they are not present in some order I want that order to be maintained let’s suppose you have 1 to 10 students in those bunch of students and each are having role numbers from this range from 1 to 10 now some of them are absent and some of them are some of the role numbers have left the school but the role numbers are not changed yet now what I told you I told you please sort them or arrange them in such a manner so that I can easily understand which role number is after which either in ascending or in descending order suppose one is there two is there then six is there then eight is there then 10 is there so rest of the RO numbers I can easily depict okay these are the ones which either are not there or are absent so in order to do so we have these sorting algorithms in picture and one of those sorting algorithm is insertion sort now it is the simplest easiest and a Brute Force sorting algorithm now what do what you mean by glute Force glute Force means straightforward right in a naive way it means straightforward that means you’re not keeping into uh you’re not considering any efficiency or you don’t cons you don’t care about time complexity or space complexity you just straight away sort it with the most simpler and naive approach okay in this root Force algorithm what happens that let’s suppose let me give you an example right obviously we can sort with the help of this insertion sort algorithm you can obviously sort either in ascending or in descending model right uh let’s take one example we all know about the card game right wherein you have a bunch of Cards Right suppose you have a single card that is in your hand right and you have bunch of cards available on the table now you start picking those cards one by one obviously the one that is in your head is sorted because if I told you to sort a number one obviously there is only one element in the array or anything right in the link list I told you to sort it but if you’re having only one element that is itself sorted right you don’t need to sort that similarly what happens now this card is in your hand right it’s just like playing cars right now you have this one card in your hand and it is obviously sorted now what you will do in the next turn you start picking up one by one from these set of cards that are available on the table now let’s suppose this is zero okay I’m considering these numerical values so that because so that you can understand and you can just connect the dots right so what happens you have the zero and now you start comparing it now we are considering the scenario where you are trying to sort in ascending order okay so now let’s try to erase these things so that it’s easier for you to understand things okay so now you have these two elements right and now we are considering the case wherein you are trying to sort in asset name so you check okay if 0 is less than one yes it is now you swap them okay now you have zero and one now these are the two cards that are present and both of these are sorted so now insertion sort Works in such a manner that you will always have two parts right one is the sorted part obviously which is in your hand and one is the unsorted part which is on the on this deck right so similarly you can you will start picking uh elements or you can start picking these cards one by one and keep sorting them okay now this is one simple scenario wherein you can apply what insertion sort right this is the most simpler way one can explain or one can understand you this insertion sort algorithm now it is simple right now you start picking these elements and you keep sorting them and the at the end when all of these elements are exhausted you will get your sorted areay now let’s try to understand insertion sort algorithm so in this algorithm what happens obviously now we know that we will have two parts right one is the sorted part and another is the unsorted part right so obviously the one element that is present in your hand or the element or the card that is in your hand and there’s only one element there right the one element in your hand obviously that is sorted right so we will not consider that first element and we will start our iteration from the second element right now we understand why we are doing this that we are starting from 2 to n minus one or 2 to n depending upon the array that we are starting from either we can start from zero index or we can start from one Index right so we always start from element number two right and then what we will do we’ll just store this value inside temporary variable and then we will check if that element is less than the element that we have in this sorted part if that is the case then we will shift their positions right and we will get both now we will have two elements in the picture that is 0o and one and both of these will be sorted in ascending order and then what we will do we’ll consider the rest of the cases that is starting from three to so on to n okay now you might be thinking okay how does this thing happen let me take an example and let me show you how let’s consider this array that we have over here that is index zero these are all the indexes that we have and this is our array that is 23 10 16 11 and 20 so in the first step we are making now we are making partitions now this is our sorted part that is the first element and this is our unsorted part now what we will do in the first iteration this is our iteration number one because this is the case wherein we will start moving from second index that is first index if we consider from zero right so we consider from second element and so on to end right so now in the first iteration what we will do we’ll compare these two values okay let me just erase everything so that it’s easier for you guys so now we will compare these two now obviously 10 is less than 23 what we will do we’ll shift their positions now this is your sorted part and this is your unsorted part again we will do the same thing right so in second iteration what we will do here comes 16 now what we will do we’ll compare it first with 23 okay we know now okay 16 is less than 23 so now what we will do we’ll swap their positions so this is 16 and this is 23 now what will happen now 16 will be compared with 10 obviously it is not less than 10 so it will remain as its at its own position that is its new position at index one right so this is the second iteration and after second iteration this will be your sorted part as you can see that I have bolded this text right bolded the borders of these two these two elements and bolded the same for these three elements because this is the sorted part that we have over here and this is the unsorted part now what will happen in the third iteration that it will check for this number that was there it is 11 so for 11 what we will do we’ll compare it with what read this thing now we’ll take 11 into consideration and now we’ll check it we’ll swap them then 11 is here 23 is here we’ll check them we’ll swap them 16 is here 11 is here we check them so since 10 is less than 11 so nothing will happen so in the third iteration what will happen we will have 10 11 16 and 23 these are all sorted and we are only left with one element which is unsorted right now in the final iteration what will happen that 23 now this 20 will be at its original position that is there and rest of the elements will be sorted now since we have exhausted all the elements all the elements have been exhausted and we add the final step that is in iteration four we will have this array that is sorted after learning what is insertion sort let’s quickly implement the same in Python language so I’m using Google collab whether it is easy for everybody to access Google collab so need not install anything it’s right available in the online so let’s quickly switch to that Google collab ID for python so here you can find insertion sort the name for the file in Python extension so with that we already have this particular program which is easy for me to explain to you so here so we are considering a function called insertion sort right so the function is called whenever the data is being passed in order to sort the elements inside the data in ascending order right so in order to do that we have to write a proper function accordingly as inent s will work so how does that work you have already learned about it so in order to implement you have to use a for Loop so for Loop has a range so it will be always checking for the elements in inside the array one by one for comparison with the key element right so whenever it is finding the key element it will which is greater than the key element or which is lesser than it will swap accordingly right so we are using Y Loop in order to do that same work so we are swapping from the current position where it is being found which is greater or which is smaller accordingly we’ll swap it right so then we have the data which is been given here so the data is present that is 52 178 so what happens in this particular data is when it passes through this function every element will be sorted with the help of incision sort function which we have written here so first it will compare the elements and it will try to sort in ascending order say for example if you want to do descending order then you have to change just one single element that is this key should be greater than array element that’s about it nothing else no change so after that incision sort uh is the function is having the data which is present here so all the functions will be completed then we’ll be printing the final output how do you print once the function has completed sorting immediately it will be stored in the variable data itself so that particular data is being printed after sort element will be viewed right so this is just a print statement sorted array in ascending order so if you’re doing for descending you can make it a sorted array in descending order so let’s quickly check how this output look like so here you have sorted array in ascending order so that is 1 2 5 7 8 right from smaller to the higher number so let’s quickly make a small change here so that it will give us the descending in order let’s try to work on it right if you could see here key is greater than array element then you will be getting the descending order that is 875 2 1 so you can change it likewise okay I didn’t change the printing statement so I’m just changing descending order right run the same that’s been declared so this is how insertion sort will work in Python and the code if you could see it is very small and quickly it is eliminating all the variable initializations we make anything and everything you just want to have the function pass the data get it sorted and the output is done so this is all about insertion sort in Python now let’s talk about insertions or time complexity so in the worst case when all the elements are in fard manner and we need to sort them one by one so obviously we are talking about first the outer loop which runs from one to n and then the inner loop which runs backwards and in the last first we consider in the first iteration we only consider the zero element then as we move along it will be running from n to zero element right we will be considering the whole n elements so in that case the time complexity the worst case will be order of n squares because we have two nested Loops that is one is for Loop and inside that for Loop we have that we have that y Loop right so this is the in the worst case and it happens also in the average case where some part or the sorted part is already there and it is let’s suppose we have 5 4 5 6 7 8 and then we have the unsorted part so half of the elements are sorted and half of the elements are not sorted so it will be n² by 2 so we not considering the case where we talk about constants and we are negotiating the constants and in that case the average time complexity will be n² right but the most important thing that is there in this time complexity is the best case that means when your elements that is 5 6 7 8 9 and 10 when the elements in the array are already sorted what happens in this case if You observe the war loop that runs from 1 to n will be always there n is always there the time complexity the Big O notation Big O of n will be always there but in this y Loop wherein we were checking for if J is greater than or equal to zero and if AR R of J is less than 10 right in that case this will never be executed because this AR of G will always be less than will always be greater than 10 why because we talking about this element and we’re checking if this 6 is less than five no it is not if this s is less than six no is it it is not so this condition will always be false for all the elements so in nutshell we are just checking these steps only once in every iteration so that is for the reason that the whole time complexity in the best case will be bigger of N and not Big O of n² in the best case okay now let’s talk about insertion sorts space complexity if you have observed in algorithms and in implementation we never talked about any auxiliary memory right we were not using any extra space either in the form of array link list stack Q or anything right so that is for the reason the space complexity of insertion sort is B of one that is constant amount of space now let’s talk about insertion sort analysis wherein we will be analyzing comparisons number of swaps stable or unstable in place or out place so first let’s talk about number of comparisons required in this we will talk about two scenarios wherein we will talk about worst case and average case in worst case the number of comparisons required is n² by 2 now if you talk about average each case scenario It Is n² by 4 which is twice as much as this right it is two times if you talk about number of swaps that are required in insertion sort in again we will talk about two scenarios average and worst case in average case it is n² by 8 and in worst case it is n² by four these are the number of swaps required and if you want to check those if these statements hold or not if these equations hold or not you can always take an example wherein you will be considering both the cases even as well as odd so take an example and run through it now if you talk about stability of insertion sort it is a stable algorithm what do you mean by stable so if you have an array which contains 1 3 1 d and five in this array the relative position of these two ones that is this one and this one let me change a color and let me show you the relative positions of this one and this one will remain intact what you mean by this thing that whenever you are sorting it you can sort it in two different ways right this is also sorted and this is also sorted that means you can either have one 1 D3 and 5 or you can have 1 d one and 3 and five this is obviously that this this number is repeated but this is the first number this this occurred here the first time and here it is the second occurrence now you want to keep their relative positions intact right so both of these are sorted right but if you talk about stability this is known as stable and this is unstable okay now insertion sort whenever you are trying to implement insertion sort it is stable that means the relative positions of both these ones will be intact okay so if someone asks you if insertion sort is stable or not you will say yes why because the relative positions of the number that are of the numbers that are repeated remains intact now what about this in place or outplaced since we are not using any auxiliary memory right we didn’t use any stack Q Link list or array that is the reason that whenever you are not using any extra memory it is supposed to be in place algorithm so if an algorithm is sorted within the array that was there earlier that means you’re not using any extra space that algorithm is known as in place algorithm which is evident now in insertion sort as we are not using any extra memory so insertion sort is an in place algorithm now let’s look at the example wherein we will implement insertion sort if you can see we have this example over here wherein we have 6 5 3 2 8 10 9 and 11 and we have been given this K what this K signif signifies that the maximum swaps or comparisons needed for this three either on the left side or on the right side right the number of positions that it this three needs to get to its original position is three so this is a question that is known as nearly sorted array or k sorted array we do not need to sort all the elements in the array but we are specifically looking for those Elements which are not at its original position and if we want to get them to their original position the maximum comparisons or swaps that we require is three so if you see this three the original position of this three is this five that means in the sorted array it will be here similarly if you talk about this two the number of swaps that it should do is 1 2 and then it will it will be at its original position or you can say that 1 2 and three so max it can go to three positions okay so similarly it will be the same for all the elements so at most three okay and at least it can be that it will have it doesn’t move need to move at any location that it will have its own original position just like in 11 you see 11 is at its own position in the original array as well as in the swapped array so at most you have three positions let’s try to understand what is sorting and why do we require sorting so sorting is a mechanism wherein we will be sorting or arranging our data either in ascending order or in descending order right so let’s suppose you have a student you have 10 students and all those students have role numbers allocated from 1 to 100 and you want to know which role numbers are present and which are absent and which have left the college or school right so in that scenario you can easily Implement sorting right and you can understand when you have that sorting uh arrangement in place you can easily detect which elements or which students are absent or not right so here in you can use sorting so in this tutorial we are going to understand quck sort algorithm it is one of the most widely used algorithm it follows a paradigm of divide and conquer what do you mean by divide and conquer basically we will be dividing our array in such a way that every time we will be dividing let’s suppose this is an array and now we will be dividing into two then further we will divide it into two then further we will divide it into two and so on right so we’ll see in the algorithm part how we can implement this divide and conquer Paradigm and in this tutorial we will be implementing this quick sort using recursion we’ll see how we will recursively call those functions based on some pivot element now in this recursive call we’ll choose a pivot element let’s suppose you have have this array and we were choosing this element as pivot obviously you can choose any element as pivot right so it can be first element it can be uh last element it can be any random element but once we have chosen those that pivot now what we will do in each iteration right in quick sort what happens in each iteration this pivot will have its original position that means this will be the position in the original array as well let’s suppose this is our pivot now this pivot will have its original position after one iteration after that iteration is over and all the elements that are less than this pivot are on the left hand side and all the elements that are greater than will be on the right hand side now then we will be choosing another pivot now what are those pivots we’ll see in the algorithm uh more extensively what are how we can choose that pivot now let’s suppose we choosen we chose this pivot and this pivot is here and and after the second iteration what happens this pivot this will be our next pivot and this will be our next pivot now we will be having two pivots so this is how we indued that we are implementing divide and conquer approach okay with each step our problem gets reduced to two which leads to Quick sorting quick sort right or quick sorting algorithm okay so now we’ll be dealing with this subar and we’ll be dealing with this sub AR and now we’ll be implementing the same procedure on this subarray that means this is the pivot and this is a pivot right now let’s try to understand the algorithm of Quake sort so now we have this first of the method that is there that is known as Quake sort in which we will be calling this quick sort recursively again and again but first time around what happens we will check okay now we have this array always we will check beginning should be less than end because that way we can keep keep the track of things that okay this is the part that is already sorted and this is the part that is unsorted right and now we will be checking and after checking that we will be calling this method we will see what this method is we’ll see the algorithm and we will see how this partition happens and we will get the index of the let’s suppose we pick this element as pivot and after partition what happens this pivot has its original position at index 3 right and that will be returned and that will will be contained in this pivot Index right and now what happens now we know that this is its original position in the original array wherein we will get the sorted array this will be its original position that means this element let’s suppose is 8 8 will be at index 3 and this will have its original position after each iteration now first time around what happens this partition is called next time around what happens this quick sort algorithm is called again recursively first time on the left left hand side that means this portion now in this portion this will be your pivot okay you see beginning is uh we are sending the arguments as beginning and pivot index minus one that means we are not including this element because this has been already sorted we are not including this element and we are calling this function on this subarray again and this time around this will be our pivit and same thing happens similarly when we are done on the left with the left hand side now we’ll be moving to the right hand side that is we will be implementing it on pivot index + one that means this element from this element that is there to the end of the array and this time around this will be our pivot okay now with that being said this is what happens when we are implementing quick s but now what about this partition method let’s see how that happens so in Partition what happens we will be setting up the PIV PIV element that is setting up the element which is our pivot obviously you can choose any element but in this tutorial what I’m going to use and what you should try first that we should try to pick pivot as the last element obviously you can pick any element and it’s time complexity depends on which pivot you will be choosing we’ll see that in the time complexity part okay now we have set this pivot as the last element and now what we are doing we are saying that okay the pivot Index this uh this step refers to what is this is the index from let’s suppose this is the pivot index and what happens this will be our pivot okay what happens this pivot index maintains that order okay from this index from this index everything on the left hand side is less than the pivate and everything on the right hand side is greater than the pivate so we’ll see when we we will see an example and there in I will show you how this pivit index is very important okay now what we will do obviously at start it is at this position that means we are not we have no such scenario wherein we have some elements that are less than pivot and we have some elements that are greater than pivot okay so now let’s suppose this is our array and this is our pivot right and this is our P index that is the index PIV index and it is minus one right now okay now these two steps are done now what happens in the third step now we will iterate from beginning that is this point and we will check if any element is less than pivot if that is the case then what we will do we will increment this and swap those elements that is the area the first element and the index that is present at that means now if you see this step now we have incremented it first right now let’s suppose if any element that is less than pivot we first increment the pivot index that means that pivot index will be here and we will be swapping with a r of I and a r of I is also at this location so this element will be swapped with itself now you might be thinking okay so why we are doing this right why we are doing why we are swapping this with its own uh with its own position you won’t get the intuition in this step but in the next step you will definitely get the intuition now let’s suppose this is the thing that happens in the for Loop now let’s try to reiterate this now if an element is not less than pivot let’s Suppose there was here we had five and here we had three so it was less than and we swapped it very yourself now let’s suppose we have this element six and it is not less than P right and what happens over here so we will not be we will not execute this if block right and then we’ll have this AR of I now I will be here now I will be incremented and this time around we have two and P index is still here right now this time around it is less than two right and now what we will do we’ll increment first the P index it will be pointing here here and then what we will do we’ll swap swap these two elements right these two elements will be swap so now you have two here and you have six over here right so you see this is the reason why we have this pivot index at in place and why we are swapping them so in the first step it was uh it was that it happened due to the fact that the element was less than pivot and if the element would wouldn’t have been less than the pivot then we have incremented the I pointer and P index would have remained on minus one now finally what happens now when Once the entire iteration is complete and let’s suppose we have eight over here and we have then 10 now once the iteration is completed now what we will do we’ll swap these two elements that means five and six will be swapped and we have five here we have six here we have eight here we have 10 here and we have three here and we have two here so you see after one iteration all the elements that are less than pivot will be on the left hand side and all the elements that are greater than will be on the right hand side and finally we will uh return pivot index uh that is p index + one that means we’ll be returning this index so that this element is not considered or will not participate in any further iterations or any further recursive calls because you see if You observe carefully that we we’re sending pivot index minus one that is without five all the elements on on the left hand side and plus one that means without this index all the elements on the right hand side okay this is how partition works now you might be confused a little bit now let’s try to demonstrate this with the help of example so you see we have an example over here right we have 5 10 9 6 and 7 these are the elements in the array and we have this pivot here the last element we have chosen last element to be the pivot and after that what we are doing we have this end pointer and we have this beginning pointer also we have that pivot index which will be somewhere around here right that pivot index which will be minus one now this seven will be checked okay is 5 less than 7 yes five is less than 7 so it will be swapped with itself and pivot index will be incremented first and then swapped with it itself now pivate index will be here next time around our a our I pointer will be here first it will be here then what it will be incremented now we’ll be again we’ll again check okay S7 is 7 less than 10 no it is not so our I will be incremented I will be now here at this position right now again it will be checked no again it will be checked yes so now what happens 7 and six uh the six will be replaced with what 10 so you have this six in here obviously PIV index will be incremented first and then we have the six over here and it will be swapped with 10 so 10 will be here right done and finally when we are the end once the entire iteration this is the step one once the entire iteration is completed we have 5 six and then seven will be the last swapping that we did the last swap that we did If You observe here carefully this swap that we are doing this is the the one that is responsible for swapping this seven with the pivot index that is Pivot index + one that is this location and we have this seven over here and it will be replaced with nine so that is why we have nine over here and 10 was here and this is the array after first iteration now you might be thinking okay now this element is fixed now we will not never talk about this element because this has its original position in the sorted array as well now what we will be dealing with we’ll be dealing with this left part and we be dealing with this right part so now what happens in this part right and what happens in this part you see now we have new this is our beginning and this is our pivot because this is the last element that we will be picking and this is our end similarly this is our beginning this will be our PIV the last element in the in this sub array and the end will be here now we’ll be again doing the same step and this time around we’ll be checking okay Pate is less than no nothing will happen and then we will be we will be swapping this thing with itself right and now once this entire subar is completed we’ll not go any further because this time around beginning is not less than end both elements are at zero and 0 is not less than zero and now if You observe carefully this is the condition that we were setting at the start of the of the function that is the quick sort function and we be checking we were checking if beginning is less than end right so this is the importance of that similarly the same thing will happen happen over from this this side and again beginning will not be less than index end part and we will not go any further so after two iterations our entire array is sorted right so this is the step one after step two our entire are is sorted after learning what is quick sort let’s quickly implement the same in Python so here we are using python ID that is Google collab one of the ID mean to say and then we’ll implement that particular program there so let’s quickly hop into the ID now so here is the program for quick sort in Python so let’s understand how this program works right the first part we need partition to be made right any array in quick sort to be broken into two halves and we will start sorting in that particular different pieces so partition positioning will be done with the the help of array low and high variables so at the rightmost always we’ll consider the element as pivote element rightmost element of the array is a peot element that is the consideration so in order to do that we’ll use p is equal to a RR of H right so then point of for greater element so whatever the element is greater in order to compare we’ll be using this point in order to Traverse from all the elements inside an array keeping one PE element in consideration with comparing with that particular element we use this for loop system right if smaller than element is present which is smaller than PE we’ll use this IAL to I + 1 and immediately we’ll swap the element in the position which is there in I with J right that will be done with the help of a r of I and J is equal to J and I we’ll exchange change if you could see here I J is being changed to J and I so we’re exchanging the elements if it is smaller than the P element then swap p with I if it’s greater than P right if any element which is greater than po element wherever the I is pointing to that element will be swapped between the element and PE right in order to do that we’ll be using this particular condition then we’ll get back to the initial position where we started the partitioning right where we broke that array into two parts the partitioning is done there we’ll go back and we’ll try to start initial position then the quick sort function will come right so here in quick sort again we need three different elements AR low and high if low is less than high that is smaller element than peot is present it will all go towards the left side if there is greater element than prior is present it will go to right side so partitioning is done accordingly so this is a recursive call which we follow for quick sort right we’ll be having again array low P minus one Pi is p minus one so again for the right of the P we have a recursive call function which is declared here once all these things are done we have to give data in in order to sort something right we are here presently concentrating on sorting the array which is given in the ascending order right so the data set here is mentioned and it is been assigned as d right so the set is been assigned as D 9A 8 7 2 10 20 and 1 so these are the elements which we are trying to sort right we are printing the unsorted array that means however the input is present here that is printed as it is unsorted is array is equal to so and so which is already there which we are not performing any functions then we have print D that means immediately it will print then size is equal to length of D we’ll consider in order to print while we are printing right we have to print element wise so again we have to print it nine first8 next seven next and then two followed by up to one so after that is done we will send this particular data raw data which is unsorted data to the function called quick sort which we have created here right so that is been sent once that is sent it will follow all the procedures which is mentioned here all the functions will be passed with the data and then finally we will print sorted array in ascending order which is uh sorted using quick sort right so let’s quickly run this program and check out out what is the output so it will take some time in order to take the output so let’s quickly see okay so that is what I mentioned unsorted array is nothing but the array which is been given by the user and sorted array is also given after performing all the functions assigned for the quick sort so if you could see it is in ascending order starting from one and ending at 20 so this is all about quick sort in Python now let’s try to understand the time complexity of quick sort algorithm in quick sort algorithm we have now seen that partitioning of elements takes place and we are partitioning all the elements that means all the N elements if there are eight elements all the eight elements will be we iterate through all the eight elements right so partitioning them takes end time that is order of end time and then quick sort problem divides it into the factor by the factor of two right every time we are divid dividing it by two so the entire process or the time complexity of quick sort in best case and in aage case takes order of end time that is bigo of log n and same thing happens when we are talking about the average case as well but why this is n s in worst case that is the question right so let me clear it out so the question is that why this thing happens if you are picking either the smallest element in the array or the largest element in the array as pivot in that case you are traversing through all the elements again that means this n is already there for partitioning them that means you will be iterating through the array but the extra n and that means inside that n you’re again traversing through all the elements and swapping them because you have picked your pivot in worst case you can either pick it is smallest or the largest element in the array in both these cases you are you will be swapping all those elements with itself that this element will be swapped right this is this is the largest element right this is let’s suppose this is eight so nothing will happen right so these are this is smallest then it will be swapped with itself this is smallest this is this will be swapped with itself this will be swapped with itself this will be swapped with itself so all the elements will be swapped and finally this element will have its original position at the end right so this thing will happen if you are picking your pivot as the smallest element or as the largest element in the array okay so in this in these two cases this is not the case you are picking your pivots as random you picking your pivots randomly okay in nutshell when you are picking your element that is your pivot element as smallest or or the largest element in the array in that case that will be your worst case time complexity and it will be B of n² now let’s talk about the space complexity of quak sort now you might be thinking okay we are not using any extra space right we are not using any auxiliary memory like in the form of array stack Q Link list or anything right but for calling this function that is the quick sort function we are using recursion right we are calling this quick sort again and again right to quick sort calls are there for maintaining the call stack we require order of n space that is the time complexity will be big off and when we are using this approach and in the worst case this will be the scenario that all the elements will be on the call stack okay so in worse case the space complexity will be bigger of and but if we modify this approach of of storing the elements and calling the call stack and maintaining the call stack we can reduce it to beo of login now let’s try to analyze quick sort algorithm let’s first try to understand the stability so let’s suppose if you have this array 1 3 1 dash and 4 now an algorithm is said to be stable if both these one and this one both these in the sorted array will maintain their relative positions now you have the sorted array right and both one this one and this one are maintaining their relative positions which were ear in the unsorted area right so if that thing is maintained right if that thing is maintained the algorithm is stable else it is not stable obviously you can have another way with which this is also sorted but this is not a stable this is unstable algorithm and if you are sorting in such a manner and you have these things placed this algorithm is unstable so if you talk about quick sort algorithm quick sort algorithm is an unstable algorithm although so we can do some modifications and we can stabilize it or we can add we can make this algorithm as stable but as of now if you talk about quick sort algorithm it is an unstable algorithm what about in place and out place since we are not using any auxiliary memory right we are not using any extra space explicitly right in the form of array or link list or stack right or even CU we’re not using any extra memory right so this algorithm quick sort algorithm although we are maintaining a call stack wherein we are you maintaining a call stack and we have a space complexity of big of and but since we are not explicitly mentioning this these uh uh these auxiliary memories this algorithm is an in place algorithm and these are the two analysis that can be done on quick sort so in nutshell if you talk about quick sort right it is unstable algorithm what is merge sort if we talk about merge sort let’s try to understand first sorting sorting is a mechanism of giving order to your values right so let’s suppose you have some values random values 10 30 and then you have 5 2 1 and so on right you have these values and now you want to maintain some order so in order to to visualize this data let’s suppose you want to see uh the ascending order of it or the descending order of it that is what you mean by sorting so let’s suppose you have a class and in that class you have several Ro numbers and some of the RO numbers are not present and then you want to sort those role numbers uh in terms of ascending or descending order that is when you require sorting so this is the basic intuition behind sorting trying to give order to some kind of values or some kind of a data set right so in this particular tutorial we are going to talk about M sort so M sort is a classical sorting algorithm in this sorting every time your problem is divided into sub problems so that your problem set is reduced and then you will be focusing on that sub problem similarly every time when you’re dividing your sub problems you will keep on dividing it unless and until there is only one element left right if you compare it with simpler sorting algorithms like bubble is there insertion is there selection is there Quake is there when you talk about its time complexity as compared to these algorithms this is very much efficient now it follows a paradigm of divide and conquer what does this mean this means that first you keep on dividing your sub problems and then you will conquer those problems and then you will combine those things okay so here in we will see when you are trying to divide your sub problems and then when you have your problem set and those problem sets are conquered that means those problems are further when you talk about in this example those sub problems are sorted in this case and then you have conquered them and then you will combine them that is your merge phase wherein you will be combining your problem again and then for forming again a single sub problem so every time you will be dividing that sub problem you will be conquering it and combining it so this is how this divide and conquer Paradigm works so basically when you’re dealing with merge sort you are focusing on two functions that is your merge function and your merge sort function so now let’s talk about this divide that means you’re dividing your sub problems which continues unless and until there is only one element left because one element in itself is sorted right now this is your divide phase what about conquer basically you are conquering those idual sets and then merging those two sub problems into a single problem and finally you will be doing it on each step and finally you have your original array which is sorted now let’s talk about M sortor so first let’s talk about merge sort method so in this method what we are doing we are dividing our array into further sub arrays how we are going to do that we have basically if we have this array right and this array let’s suppose this contains eight elements right this is our array and let’s suppose this is our left pointer and this is our right pointer and now what we are doing we are dividing it so we need some kind of a in iterator wherein we will store the sum of and we try to calculate the mid value how would you do it in simple words we calculate left plus right ID by two that’s it right so we have this Division and then we will divide this part because we are calling this function again right on the left hand side so this is going to call on this side that is we will be talking about now only three elements so this is let’s or let’s take four elements on this side and four elements on this side so our mid will be 3.5 so we’ll be talking about elements from 0 to three so we will be talking about four elements and then further these two steps are remained why because we are implementing this in recursive fashion so now let’s suppose this is our first function call and you have these three steps one let’s name it one 2 and three okay so in the first function call 1 2 and three so this is the first function call and in this we’ll call in again this is the second function call and we are calling again these two remain right and we are calling again 1 2 and three right so in this case again we are calling it on these four elements and it will be divided into further two elements 0 and one right and in this case again this this is called this will be called on this these two elements right here we are talking about only two elements so this is a third function called and again we will be dividing it these two and three steps are still remaining so in the fourth step what we are dealing with only single element right and in this case we’re talking about only this element right and further we will not be able to divide it and in that case our left is not greater than our left will be greater than or equal to right and in this case it will will be equal to so we will return so now it will be returned right and then whatever was the left over right now we talk about this single element the other element that was left behind we’ll talk about that so again that will be divided into one right and again this will the second option I’ll just erase it because it looks a little bit messy so now what happens let me just put it again in red so here we called this fourth time and this time it returned right so in this case now we will be on the second step now again it will be called on that single element and again left is not great will be greater than or equal to in this case it will be equal to and then we return so again we are returning so we have these two elements one and one that means not one and one element but there is only a single element in both these arrays right why I’m saying that in these two arrays we will be we will check when we talk about merge okay we’ll see how that is implemented okay so now these these two function calls are done and then we deal with merge now before going into the merge let me show you a demonstration of how things look so you have these elements and here you have how many elements you have five elements right and now you’re dividing it into three and two now this is your first step the second step will be this so now will you go ahead and create this as your third step that means you will move on to this no because we saw unless and until left is not there is no left left right we will not go to the right so this is your second step then this will be your third step this will be your fourth step now you will move on to your fifth step right and now once you don’t have anything on the left nothing on the right then what happens will this be your sixth step no your sixth step will be merge so let’s move on to merge now so in the merge function if you see the algorithm for that is simple that you create two sub arrays that is the one is your left array and another is your right sub array now in this you have obviously in the last case if you have seen we have a single element here and a single element here now once we have deduced out the length of these aray aray s what should be the length of these sub arrays and we have declared the length or declared these arrays and then we have initialized these arrays once these three steps are done with then what we are going to do we are going to create three iterators i j and k and those iterators deal with I iterator will deal with left array J iterator deal with right array and K with the original array which helps us to insert the elements so once we we have everything in place what we are going to do the next step is comparing the values right if this element that is the element in left array is less than the element in the right array we are going to insert that in the original array so now let suppose you have 10 here and 23 here so 10 is less than so we are going to insert this and we increment the K pointer and now also our I pointer pointer will be incremented it was earlier it was zero and it will go to one right and now what happens now our our I is pointing to one and our length is also one so now that in that case when one of the array is exhausted the next array whichever is the left whichever is Left Right it can be either the left array or the right array those elements will be directly inserted in the original array because we know for the fact that both of these left as well as right arrays will be sorted in itself okay so let’s see what is the next step in the demonstration so here we we had our steps right and this will be the sixth step wherein we are going to merge this thing now will we will this be your seventh step no your seventh step will not be this your seventh step will be here this will be your seventh step now six step is done now you will be dividing it and you will be creating all those arrays now once you have your right array and there is no right because this left is already done and now you had your right left now this is also done now your eighth step will be this that you will be merging it this will be your eighth step then you will be merging it now will this be your ninth step no you have your this array that is your left array in place but what about the right array is this in place no it is not so now let’s try to calculate that now what will be your ninth step this left is done this is your ninth step then what will be your 10th step this is your 10th step will now there there’s no left right now we’ll move on to this right so this is your 11th step because this is the right side of it right and now when you don’t have anything on the right now you will be merging these two steps and this will be your 12th step which is over here so this is your 12th step that means you will be merging these two and the final sorted array is this array and it you will get this array in the 12th step so you see 10 11 16 20 and 30 now if You observe carefully you have these individual arrays one and one so now while you are merging them you are also sorting them so the left array is sorted and same thing happens on the right hand side as well if you see three and four these two elements are sorted in this left array so this is the reason in the right array right not the left array so now when you’re are merging them you will get again an array which is sorted in itself you see 10 16 and 23 so if one of the array is exhausted the next array elements can be directly inserted in your original array let me erase this and you see you have your left array which is sorted and then you’re merging it with the right array which is also sorted now if one of the arrays is exhausted the next array either it can be left array or the right array the elements from that array can be directly inserted in the original array because we know the elements itself if in either of the arrays either the left or the right are sorted okay so this is how you execute your merge function so here is the program for mer sort in Python so how does this mer sort work generally one single array will be broken into two different pieces again those two different sub arrays will be broken into Sub sub arrays so after that whatever the answers we get at the last will be combined together in order to finish the Sorting of that particular array so we are merging all the answers which we got from the sub arrays to make a final result so quickly let’s see what do we do in order to have a merge s in Python so first we want an array which is being passed through this merge sort function so what happens inside this function first the length of the array is been calculated once that is calculated it is been divided by two so it gets left and right parts of an array right so after sorting the array into two different halves we have mer sorting left side of an array M sorting right side of an array right then we’ll perform the V operation um here with the help of the looping systems so we’ll first try to check out whether we have the right array less than the length of an array of the left and then again left array it is less than length of the right so we’ll try to merge and we try to solve the elements then and there itself so later we’ll go back to the left and right parts of while loop here we have length of an array towards the left side we are checking whether it is lesser than or greater than and accordingly we are deciding where we have to merge the answers what we have got from the subar right so then we’ll always have a printing option of this particular arrays we’ll do that in the last before that in order to merge all the answers we have got from all the sub arays we’ll be using for Loop here right so all the array answers will be submerged and we’ll get the final sorted array which is of uh so many elements which is there in the uh input given by the user say for example five different elements were there in an array so after combining all the sub arrays answers we’ll get the five sorted ascending order elements in the array by using M sort so let’s quickly have a look at it how does this particular M sort will work so uh this is set of an array with eight different elements inside that which is not sorted we have to sort that once this array is been passed through the merge sorting function it will perform all the operations finally it will merge all the sorted arrays and it will display in the print list right so let’s quickly run this program and check out even though if if it is we are mentioning the words array but we are using list here in Python in order to store it right so this is the sorted array which we get so here we could see we don’t have a sorted array but here it is sorted in ascending order that is smallest to the highest so so this is all about the M sort next we move to python form machine learning this is where you will learn to manipulate analyze and visualize data using powerful libraries like numai pandas matplot lib and cbon unlocking insights from complex data sets now we’ll start off with this Library called as numpy which stands for numerical Python and as it is stated over here it is the core library for numeric and scientific Computing so whatever numeric or scientific calculations you have to perform numpy should be a go-to language and this Library called as numpy consists of multi-dimensional array objects and a collection of routines for processing these arrays so let’s go ahead and create our first numpy array so you can have a single dimensional numpy array or a multi-dimensional numpy array now we’d have to start off by importing this Library so to import numai we’ll type in import numpy as NP this NP which you see over here is known as the alas so we are importing the library numai with this alas NP now this numpy library has a lot of methods and one method is called the array method and with the help of this we will be able to create the numpy array all we have to do is type in np. Array and inside this I am passing in the list of value starting from 10 going on till 40 and I’ll store it in this object called as N1 and when I print it out I get the result 10 20 30 40 similarly I go ahead and create a multi-dimensional array so here we are passing in a list of lists so here we had a single list here we are passing in a list of list so as you see we have a list over here and inside this we have two more lists the first list comprises of the elements 10 20 30 and 40 and the second list comprises of the elements 40 30 20 and 10 and when I print out this is how I get this multi-dimensional array the first list is present in the first row and the second list is present in the second row now let me go to jupyter notebook and Implement these two let me just add a comment over here I’ll name it as numai now I’d have to import the numai library so I’ll have import numpy as NP and let’s just wait till this library is loaded now now that this is loaded I can go ahead and create the numpy array so for this I’ll have to use np. array and inside this I’ll be passing in a list of values so I’ll pass in 10 20 30 and 40 and I’m storing it in this object called as N1 now let me print out N1 over here and as you guys see I have successfully created this numpy array which over here the values are 10 20 30 and 40 and just to be sure I’ll go ahead and check the the type of this numpy array so I’ll have type inside this I’ll pass in N1 and as you guys see we get the result numpy do ND array so ND array stands for n dimensional array now we’ll go ahead and create a multi-dimensional array over here so to create a multi-dimensional array we’d have to pass in a list of lists inside this np. array method so I’ll have this outer list inside this I will create two lists so the first list let’s say comprises of the elements 1 2 3 and 4 and the second list comprises of the elements 4 3 2 and 1 now I’ll just print out N2 over here and I have created this multi-dimensional array where all of the elements from the first list are present in the first row and all of the elements from the second list are present in the second row now that we have created these numpy arrays we’ll now see how to create or how to initialize a numpy array with different ways so now let’s say if I want to initialize a numpy array with only zeros then we have a method called as zeros it’s very intuitive isn’t it so here we are importing the numpy array then we are using np. Z and it takes in two parameters so these two parameters basically indicate the dimensions of the numpy array so if I want to create a 1 cross2 numpy array where all of the values are zeros then I can just go ahead and type in np. Z and inside this I’ll pass in the dimensions which is 1A 2 and I get a 1 cross two numpy array where the values are only zeros similarly over here I am creating a five cross 5 numpy array where all of the values are zeros so I’ll just use np. Z and inside this I’ll pass in 5 comma 5 now let me go ahead and implement this in jupyter Notebook here I’ll add the comment NP do Z now I’ll go ahead and uh let me just create create this in N1 and inside N1 I’d have to use the np. Z’s method and over here I’d have to pass in the dimensions so the dimensions would be 1 comma 2 and let me go ahead and print out n one over here so as you guys see I have successfully created this numpy array now if I want maybe a numpy array with a different dimension so the method would be the same I’ll have np. Zer over here and inside this let’s say I want to create a 3 cross3 numi array which consists of only zeros and this I’ll go ahead and store it in this object called as N2 now let me print out N2 over here and we have a 3 cross3 numpy array which comprises of only zeros now if I want to initialize a numpy array with the same number then we can go ahead and use the full method so here I am using np. full and this takes in two parameters the first parameter is the DI di menion of the numpy array the second parameter is the value which we want to insert into this numpy array so here we are creating a 2 cross2 numpy array where the value is filled with 10 so as you guys see it’s a 2 cross2 numpy array where we only have 10 so it’s time for np. full I’ll just type in np. full I’m adding a comment over here then let me add NP do full and I’d have to give in two parameters let’s say I want 4 cross 8 numi array and I want the value five inside this now I’ll store this in this object called as N3 and I’ll just print out N3 over here and as you guys see I have created a 4 cross 8 numi array where the value is only five now similarly if I want to initialize a numi array within a particular range then I can go ahead and use the a range method so here as you guys see I am using np. range and this again takes in two parameters the first parameter is the initial value from which the range has to start so here when I give 10 as you guys see the range starts from 10 and when I give 20 so here again you’d have to remember that 20 is exclusive or maybe the second parameter is exclusive and since this is exclusive we’ll only have value starting from 10 and going on till 19 and that is why 20 is not included in this result over here now we can go ahead and add another parameter so here the initial value is 10 the final value is 50 and we have the skip value so the skip value is five which would mean that after 10 we’ll have 15 so 15 + 5 becomes 20 20 + 5 becomes 25 and that is how this keeps on proceeding now when we reach 45 when you add five more to 45 that becomes 50 and since 50 is exclusive over here that is why we end at 45 but on the other hand if we had given the final value as 51 then we would also have The Element 50 over here so let’s go ahead and Implement a range method over here np. AR range and I’ll store this in N4 now I’d have to use np. a range and I’ll go ahead and give in the initial value as let’s say 100 then I’ll give the final value as 200 and I’ll print out N4 over here and as you guys see we have all of the numbers in sequence starting from 100 going on till 199 now if I actually want the value 200 to be included in this as well let me make the final value to be 2011 and as you guys see this time the range starts from 100 and also includes 200 over here and we can also add a skip value now let’s say if I given the skip value of 10 so here after 100 we have 110 then 120 and this goes on till 200 now instead of 2011 if I keep the final value as 200 we see that this numpy array ends at 190 because 200 is exclusive now we can also go ahead and initialize a numpy array with random numbers and to initialize numpy array with random numbers is we can use random. randint so here we are invoking np. random. randint and over here we have three parameters and over here we have three parameters the first parameter is basically and over here we have three parameters the first two parameters basically indicate the range from which we would want the random numbers so we would want the random numbers in this r range of 1 to 100 and this third parameter would tell the python interpreter how many random numbers do we need so in the range of 1 to 100 we would need five random numbers and as you guys see this is the result which you get over here so we have 95 88 26 22 and 76 which are five random numbers generated between the range of 1 and 100 I’ll add this comment random now let’s go ahead and initialize an ire with some random numbers so I’ll have np. random. Rand in because I want a random set of integers and this will take in three parameters let’s say I would need values between 50 and 100 and I would need 10 random values over here and let me store this in N5 let me go ahead and print out N5 over here and and as you guys see I have 10 random values which are generated between the range of 50 and 100 similarly if I go ahead and run this again I’ll get a different set of values as you guys see we have a different set of values again when I click this we again have a different set of values that was all about initializing a numpy array with different methods now you can also go ahead and check the shape of a numpy array and to check the shape of a numpy array we have the shape method which again is very intuitive so here we are creating a numpy array where we are passing in a list of lists so in the first list we have 1 2 and three in the second list we have four five and six so obviously we will have a numi array where we’ll have two rows and three columns and this is what the N1 do shape gives us now if we want to change the shape of this then we can use the same method so here what I’m doing is I’m typing in N1 do shape and I’m changing the shape from two comma 3 to 3 comma 2 that is instead of having two rows and three columns I will have three rows and two columns so this same shape method can be used to check the shape of the numpy array and also reshape the dimensions of the numpy array so let me create a numpy array over here so we would have to create a multi-dimensional numpy array so this will be n6 is equal to I’ll have np. array and inside this I’ll have to create a list of list so in the first list I’ll have values 10 20 and 30 and in the second list I’ll have values 40 50 and 60 and I’m storing this in n6 now once that is done let me just print out n6 over here so you guys can see this numpy array now I’ll also go ahead and check the shape of it so I’ll have n6 do shape and we get the result that this is a numpy array where we have two rows and three columns now I can also go ahead and change the shape of this so I’ll have n6 do shape and over here I am changing the shape to be equal to 3 comma 2 then I’ll go ahead and print out n6 and as you guys see we have converted this from a 2 cross 3 numi array to a 3 cross2 to numi array so you had 10 20 30 in the first row we’ve got 10 20 in the first row here so similarly this is how this has been changed then we have some stacking methods over here we have v stack head stack and column stack so let’s just start with v stack so we are creating a numpy array N1 where we have the values 10 20 and 30 then we are creating the numpy array N2 where we have the values 40 50 and 60 now when we use v stack over here this again takes in two parameters where we’ll just pass in two numai arrays inside this so as you guys see we are vertically stacking over here so when I say vertically stacking I have one numi array on top of another numai array so because I’m using N1 comma N2 N1 comes at the top N2 comes at the bottom so this is how vertical stacking works then we can also go ahead and horizontally stack two numpy arrays so N1 and N2 we’ve got the same numpy arrays over here and instead of using v stack I’m using the head stack method I’m passing in N1 and N2 and as you guys see 40 50 and 60 so N2 has been stagged horizontally to N1 then we have the column stack so if we want to Stack these numpy arrays into separate columns so we have N1 and N2 and when I’m using column stack over here as you guys see N1 goes into the First Column N2 goes into the second column and this is how we can work with these stacking methods so I’ll have to create these two numi arrays over here I’ll have N1 which will be NP do array and inside this I’ll have 1 2 and three then I’ll also go ahead and create N2 so this will be np. array and inside this I’ll have 4 five and six so I have my N1 and N2 ready now I’d have to I’ll start off with vertical stacking so I’ll use np. v stack and inside this I’m passing in N1 and N2 and let’s see what would be the result so we have vertically stagged N1 with N2 N1 is at the top N2 is at the bottom we can also change how these are stacked so instead of giving N1 N2 let’s see if I give N2 and N1 you guys would see that N2 is at the top and N1 is at the bottom now we can similarly work with the head stack method so here I’ll type in np. hstack and inside this again I’ll pass in N1 comma N2 and as you guys see I have stagged N2 at the back end of N1 now if I want N2 first and N1 second I just have to change the sequence so inside NP do hstack I’ll given N2 comma N1 and I have 456 first and N1 is attached at the back end of N2 then we have column stack so I’ll just have np. column stack over here and inside this I’ll pass in N1 comma N2 and as you guys see I have N1 in the First Column N2 in the second column similarly if I given N2 comma N1 you will see that I have N2 in the First Column and N1 in the second column so this is all about stacking the numpy arrays now we’ll also work with intersection and difference methods so here again we have two numpy arrays so in the first numpy array we have the values from 10 to 60 and in the second numpy array we have the values from 50 to 90 and if I want the common elements between these two numpy arrays then I can use the intersect 1D method so here in the intersect 1D method I would just have to pass in these two numpy arrays and as you see in the result we get a new numi array comprising of the common elements in these two numpy arrays then over here I have N1 and ns2 if I want to find out all the elements which are unique to N1 then I can use the set diff 1D method so here in N1 we have the elements starting from 10 going on till 60 in N2 we have elements starting from 50 going on till 90 so here as you guys see 50 and 60 are common in N1 then N2 and if I want the elements which are unique to only N1 then I would have to use set diff 1D and I’ll pass in N1 N2 as you guys see I get only 10 20 30 and 40 because 5050 and 60 are present in both the numpy arrays I can also change the sequence over here so instead of passing in N1 N2 when I pass in N2 N1 then this will give me all of the unique Elements which are present in N2 and since 50 and 60 are common in both the NPI aray the resultant will be 70 80 and 90 because these are the only unique elements in N2 so let’s go ahead and work with intersect 1D and set diff 1D I’ll just add a comment over here intersect 1D and I would have to uh create two new numi arrays I’ll have N1 over here so I’ll have np. array and inside this I’ll pass in 1 2 3 4 5 6 and I’ll have N2 and inside this I’ll go ahead and create a list of elements where the elements start from 5 6 7 8 and and N so I have these two set over here now that my two numpy arrays are ready if I want to find out the common elements which are present in these two numpy arrays i’ have to use intersect 1D so I’ll have NP do intersect 1D and inside this I’m passing in N1 comma N2 and when I hit on run we see that the common elements between N1 and N2 are five and six now if I want only the elements which are common to N1 then I can use the set diff 1D method so here I’ll have NP do set diff 1D and inside this again I’ll be passing in N1 comma N2 and as you guys see I have 1 2 3 and four which are common to only N1 now similarly if I want all of the elements which are only common to N2 then I can have NP do set diff 1D and I’ll just change the sequence over here instead of passing N1 comma N2 I’ll have N2 comma N1 and the only unique Elements which are there in N2 are 7 8 and 9 now we’ll go ahead and perform some simple numpy array mathematics so we’ll see how to add two numpy arrays so again over here we have two numpy arrays in N1 we have 10 and 20 in N2 we have 30 and 40 now if I want the total sum of all of the elements which are present in both of these two arrays I can just directly use the sum method so I’ll have NP do sum and inside this as a list I’ll pass in N1 comma N2 and you will see that the resultant value would be 100 because 40 + 30 + 20 + 10 is equivalent to 100 now if I want to find out the individual sum along the rows and along the columns then I can use the additional parameter called as axis so if I want to sum the values along the column then I’ll set the axis to be equal to zero so when I have the axis value to be equal to zero as you guys see I have 30 + 10 = to 40 and 40 + 20 = to 60 similarly if I want to sum these up along the rows then I’ll set the axis value to be = to 1 and over here I have 10 + 20 = 30 and 30 + 40 = 70 I’ll add a new comment over here addition of numpy arrays and let me create new N1 over here so I’ll have np. array and inside this I’ll have 10 and 20 then I’ll go ahead and create N2 and inside N2 I’ll again have np. array and over here I’ll have 30 and 40 I’d have to pass this on as a list of values so I’ll have 30 and 40 inside a list so I have created N1 and N2 now it’s time to find out the total sum which is present along all of these so I would have to use NP do sum and inside this I’ll just pass in N1 comma N2 and actually I’d have to pass this as a list so I’ll have N1 comma N2 over here and as you guys see the resultant comes out to be 100 if I want to add the values along the column so I’ll have NP do sum then I’ll have this list over here I’ll have N1 comma N2 then I’ll have this new attribute called as axis and I’ll set the axis value to be equal to 0 and I get the resultant 40 and 60 because 30 + 10 is equal to 40 and 40 + 20 is equal to 60 now going ahead if I want to add the values along the horizontal rows so here it will be NP do sum and over here I’ll have N1 comma N2 again and this time I’ll set the axis value to be equal to 1 and I have 30 and 70 because 20 + 10 is equal to 30 and 40 + 30 is equal 70 now we’ll see how to do some scalar operations on these numpy arrays so here we have a num array where we have values 10 20 and 30 and if I want to add the scalar value one to each individual element of the numpy array all I have to do is add this value one to this numpy array and as you guys see N1 + 1 becomes 11 21 and 31 similarly if I want to multiply each individual element of a numpy array with a particular value so here if I want to multiply it with two I’ll just write down N1 into 2 so 10 becomes 20 20 becomes 40 and 30 becomes 60 and if I want to subtract a value all I have to do is perform N1 – 1 so 10 becomes 9 20 becomes 19 and 30 becomes 29 and if I want to divide it I’ll just have N1 divided by 2 so 10 becomes 5 20 becomes 10 and 30 becomes 15 so this was some basic idea about numai now uh let me just see what is there in N1 over here let me actually add some more elements inside this so I’ll have N1 is equal to np. array and inside this I’ll have 10 20 30 and 40 let me also print out N1 over here for your reference so now that we have N1 what I can do is I will just go ahead and add some scalar values to it and let’s say if I want to add five more to each individual element of the Stumpy array so I’ll just write down N1 + 5 and as you guys see 10 becomes 15 20 becomes 25 30 becomes 35 and 40 becomes 45 similarly if I want to subtract a value I’ll just write down N1 – 5 over here and 10 becomes 5 20 becomes 15 30 becomes 25 and 40 becomes 35 we can also go ahead and multiply something to this so I’ll have let’s say N1 into 10 let me print this out and as you guys see we have multiplied these values with 10 similarly I can go ahead and divide this with something so if I have N1 ided 10 so we see 10 20 30 40 becomes 1 2 3 and 4 so this is some basic scaler operation on top of the numpy arrays and we can also go ahead and use some mathematical functions so we have this mean function over here which would give us the mean value of all of the elements which are present so the mean value of all of this elements comes out to be 35 similarly if you want to find out the median then all we have to do is use this median method we have to use np. median will pass in the nampi and we see that the median value comes out to be 55.5 and if you want to find out the standard deviation I’d have to use STD and I’m passing in N1 inside STD and the value becomes 36.5 n so we have N1 over here and if I want to find out the mean value I’ll just have NP do mean and inside this I’ll be passing in N1 and as you guys see the mean or the average value of all of the elements which are present in N1 comes out to be 25 let me go ahead and create another numpy over here so I’ll have np. array and inside this I’ll be passing in some random values so let’s say these are all of the values which are present in N2 and if I want to find out the median of all of the values which are present so I’ll just use np. median method and inside this I’ll be passing in N2 and the median of all of these values comes out to be five similarly if I want to find out the standard deviations so here I’ll have np. STD and if I want to find a standard deviation of this particular numpy array so I’ll pass in N2 and you would see that the standard deviation of all of the elements of N2 would be 2.39 7 so till now we’ve worked with some basic numi array now let’s go ahead and work with a numpy matrix so here we are creating a 3 cross 3 numpy Matrix and to do that you’ll again need a list of lists so over here we’ll have 1 2 3 4 5 6 and 7 8 9 so so this first list goes into the first row second list goes into the second row and third list goes into the third row now that we have created this numpy Matrix let’s see how can we access individual rows and columns from this entire numpy Matrix so here let’s say if we want to access the first row again You’ have to remember that the indexing in Python starts from zero if we want to extract the entire first row we’ll just have N1 and inside parenthesis will pass in zero and as you guys see over here I have successfully extracted the entire first row similarly if I want to extract the entire second row then the index value for second row will be one and I have extracted the second row and if I want to extract a column then I’d have to do something like this so in a column I would want all of the rows so here from this numpy Matrix I would want the second column and all of the rows from the second column so here since I would want all of the rows I’ll just put in a colon over here and since I want the second column I’ll give in the index value as one and as you guys see I have extracted the entire second column over here similarly if I want to extract the entire third column the index value will be two and I have extracted the entire third column let’s perform this in Jupiter notebook so I’ll just write in numpy metrics over here now that this is set I’ll have np. array and over here I’ll have a list of lists so in the first list I will have 10 20 and 30 in the second list I will have 40 50 and 60 in the third list I will have 70 80 and 90 and I will go ahead and store this in N1 again now I’ll go ahead and print out N1 and let’s see what would be the result so this is our numpy array which we have just created now if I want to access individual rows from this I’ll have to give in N1 and inside parenthesis let’s say if I want to extract the third row then the index for the third row will be two I’ll just have two over here and as you guys see I have successfully extracted the entire third row now similarly if I want to extract the entire third column then this time I would have to write N1 and over here since I would want all of the records from the third column so I’ll just have a colon over here then over here so here you’d have to understand whatever is given on the left side of the symbol would indicate rows and whatever is given on the right side of this comma would indicate all of the columns so I want all of the rows and all of these rows need to be from the third column and the index for the third column is two and I have successfully extracted all of the elements which are present in the third column now we’ll see how to transpose a matrix so what is transposing transposing b basically means when you’re interchanging the rows and columns so here as you guys see we have 1 2 3 4 5 6 and 7 8 9 now the rows should be interchanged with the columns so here 1 2 3 which is present in the first row comes into the First Column 4 5 6 which is present in the second row comes into the second column 789 which is present in the third row comes into the third column let’s go ahead and perform transpose as well so all I have to do is use NP do transpose go and inside this I’ll just pass in N1 over here so as you guys see initially I had 10 20 30 which was in row this became in column 40 50 60 was in second row became the second column 70 80 90 was the third row which became the third column over here now we’ll see how to perform two matrices so over here we have N1 where we have the elements starting from 1 going on till 9 then we have N2 where we have elements starting from 9 going on until one now if we perform the dot operator on this which is basically matrix multiplication this is how the multiplication happens so the multiplication is row by column which would basically mean so here we have 1 2 3 here we have 963 so it will be 1 into 9 + 2 into 6 + 3 into 3 which will give you a result of 30 then again we’ll have row by column so here it will be 1 into 8 + 2 into 5 + 3 into 2 which will give you a result of 24 then it will be 1 into 7 + 2 into 4 + 3 into 1 which will give you a result of 18 and this is how this progresses and finally we’ll get this result over here and the dotproduct of N1 into N2 and N2 into N1 will be different so as you guys see this is the dot product of N1 N2 and this is the dot product of N2 N1 both of these will be different so I already have N1 over here let me go ahead and also create N2 so here I’ll write N2 is equal to np. array and over here I’ll have the elements in reverse order so I’ll have 90 80 and then I’ll have 70 going ahead I’ll have 60 50 and 40 after this I’ll have 30 20 N1 and I am storing this in this object called as N2 let me also go ahead and print out N2 for you guys over here so this is what we have now if I want to perform the dot product so I’ll have N1 I’ll actually have if I want to perform the dot product here I’ll have N1 dot dot inside this I’ll pass in N2 and as you guys see this is the dot product of N1 cross N2 but we know that N1 cross N2 and N2 cross N1 is different so when I perform ns2 dot N1 the result will be different from N1 do N2 so this was about metrix multiplication now we’ll go ahead and see how can we actually save a numpy array and then load it from somewhere else so here we are creating this numpy array where we have elements from 10 to 60 then to save this numpy array we just have to use the save method and over here we are saving this numpy array with this name called as mycore numpy so this takes in two parameters first parameter is the name by which we’ want to save this num array second is the array which we’ want to save now once that we save this to load this numpy array we will have to use np. load and over here we’ have to given the name by which we Sav this numi array so we save this numpy array as mycore numi and we’ have to give the extension which is do npy which basically stands for numpy and we go ahead and store this in N2 and we print out N2 we see that we have successfully loaded this numpy array over here now I’ll go ahead and save this so I’ll have NP do save and this as we have seen takes in two parameters the first parameter is by which I save this so I’ll have save N1 and I would want to store N1 so I have saved this now if I want to load this I would have to use np. load and over here I’d have to give the name of the numpy array so it will be savecore N1 do npy let me actually remove this over here and I will store this in let’s say N9 let me click on run over here so we have an error over here we have this error because I’d have to give this inside single codes now if I click on run we’ll get the result now if I print 10 and N over here we finally get the result so Panda stands for panel data and it’s the core library for data manipulation and data analysis so if you want to perform any sort of data analytical task pandas should be your goto library and pandas provides single and multi-dimensional data structures for the purpose of data manipulation so the single dimensional data structure is known as the series object and the multi-dimensional data structure is known as the data frame we’ll start off by understanding about the series object so series object is a onedimensional labeled array so we have already worked with the numpy array so in numai Array we had no labels along with it it was just a simple blank array where we had stored some values but over here in a series object as you guys see we have labels or you can consider them to be index with labels over here for these so first we’ have to start off by importing pandas which is the library and we are giving this alas as PD so import pandas as PD then if we want to create a series object will have PD do series and inside this I am passing in the values 1 2 3 4 and 5 and when I print it out I get this series object so when I check the type of this type of S1 this gives me pandas doc. series. series now over here you’d have to keep in mind that s is capital over here so if you’re given a small s you will get an error so let’s go ahead and create our first series object so I’ll just add the comment pandas now our first task would be to import the pandas Library so I’ll go ahead and type in import pandas aspd let’s just wait wait for this to be loaded properly now that we have loaded the library I can go ahead and create the series object so I’ll type in pd. series where s is capital inside this I’ll pass in the list of values so let’s say I’ll just have 10 20 30 40 and 50 and I’ll go ahead and store it in this object called as S1 let me print out S1 over here and as you guys see I have created this series object let me also check the typee of this so inside the type method when I pass an S1 you guys would see that this is a series object and over here we have the labels so the labels are 0 to 4 so by default the label or the index starts with zero over here so 10 is present at label or index 0 20 is present at index 1 30 is present at index 2 and that is how it proceeds further now since we have labels in a series object we we can change the how the label of the index looks like so over here we just had numbers starting from zero but instead of numbers let’s say if I wanted alphabets over here then I can add a new attribute called as index so over here with this index attribute I am setting the values to be equal to a b c d e so here initially we had index 0 zero has been changed to a then we had one one has been changed to B we have 2 two has been changed to C and that is how it proceeds so now over here let me go ahead and change these index value so it is the same command over here and with this same command all I’m doing is adding a new attribute called as index and I’ll pass in a list of values for the indices so I’ll have a b c d let me have D over here and and I’ll have e now when I click on run and I print out S1 over here you guys would see that I have changed the indices from 0 to 4 to a to e now we can go ahead and see how to create a series object from a dictionary so we have already worked with dictionaries we know that the dictionary is a key value pair so here we’ll just given pd. series and over here we have three key value pairs a B20 C30 so here automatically the keys are taken as the labels and these values are taken as the series values over here let me create a new dictionary so I’ll have D1 and inside D1 let me have four key value pairs maybe I’ll have a and 10 then I’ll have B and 20 after that I’ll have C and 30 going ahead I’ll have D and 40 now I’ll just go ahead and print this out as you guys see I have successfully created this dictionary now I would have to create a series object out of this so I’ll just have PD do series and inside this I’ll pass in D1 and let’s see what would be the result so these four Keys which were present became the labels and these values over here in the dictionary became the series values as well now we can also go ahead and change change the index position so similarly as we had actually changed the index values from numerical to alphabetical so when I given the index values as b c d a this sequence is maintained so I have B and C first so for B I have the value 20 C I have the value 30 and D we had not created any key with this particular index so that is why we have n a n over here and then we have a for which we have the value 10 so this is how we can maybe add a new index position or change the existing index positions so this is what we had over here this was our series object and now what I want to do is so instead of a b c d I would want let’s say C B A and D and if I click on run you guys see that the sequence has changed over here now we also see how to extract individual elements from the series object so here we have all of these elements starting from one going on till 9 and again You’ have to keep in mind that the indexing starts from zero so if I want to extract this particular element over here so the index value for this would be three so 0 1 2 and 3 and when I given the index value as three I am able to extract this particular element and if I want to extract a sequence of elements over here so if I want the first four elements then I’ll have S1 colon 4 this would mean that I am extracting all of the elements starting from index number zero going on till index number four and since four is exclusive so that is why we will only have till index number three so we’ll have index number one going on till index number three and if you want to extract elements from the back side here we’ll have S1 and we’ll type in Min -3 over here so minus 3 basically means third element from the end third element from the end when I given colon this would mean third element from the end going on till the end so this is the third element from the end over here so that is why I’ll have 7 8 and n and this is how I’ll be able to extract a single element a sequence of elements from the beginning and a sequence of elements from the back let me just create a new series object over here so I’ll have S1 is equal Al to PD do series and inside this I’ll pass in a list of elements I’ll have 10 20 30 40 50 60 and 70 now that I have this let me extract this element which is presented index number three so I’ll have S1 I’ll have parenthesis then I’ll just go ahead and give the index value so index value will be three and as you guys see I have successfully extracted this particular element now if I
want to extract the first four elements then I’ll just give in the colon over here and I’ll have four and as you guys see I have extracted the first four elements if I want the last three elements over here then I’ll have S1 then I’ll have colon and I’ll type in minus 3 which would mean the third element from the last going on until the last element over here and I have 50 60 and 70 which are the last three elements now we can also go ahead and perform some simple operations on top of the series object so if I want to add a scalar value so initially we had the series object where the number started from one went on till 9 and if I just wanted to add the scalar value five to all of the individual Elements which are present in the series object all I have to do is use plus 5 and as you guys see 1 becomes 5 2 becomes 7 3 becomes 8 and so on and we can also go ahead and add two series objects over here I have S1 where the elements are from 1 to 99 and S2 where the elements are from 10 to 90 and when I perform S1 + S2 this would add the elements which are present at the same index position so here we’ll have 10 + 1 11 20 + 2 22 30 + 3 33 and this goes on till the last index position over here so let’s go ahead and perform some basic operations on top of the series object so I I already have S1 over here and these are the original values which are present in S1 now I’d want to add 10 more to these existing values so I’ll just type in S1 + 10 and as you guys see the values all of the values which are present in the series object have been incremented by 10 now also I can add two series objects together so in the series object I have seven elements I go ahead and create S2 where I’ll have seven more elements over here so I would have to type pd. series and inside this let me just have 7 6 5 4 3 2 and 1 let me print out S2 for your sake over here so we have S1 and S2 and when I perform S1 + S2 this is the result which we get so 10 + 7 becomes 17 20 + 6 becomes 26 30 + 5 becomes 35 and this proceeds to the last index value so that was all about the series object which was a single dimensional labeled array now we’ll work with a data frame which forms the major part of all of the machine learning data science projects so what exactly is a data frame it is a two-dimensional label data structure and if you’d have work with SQL or maybe Excel you would have dealt with tabular data and a data frame helps you to deal with tabular data in Python seamlessly so data frame because this is a tabular data consists of rows and columns now let’s see how can we go ahead and create a data frame from a dictionary so to create a data frame we’d have to use this particular method over here we’d have to type in pd. data frame where D is capital and F is also Capital so by any chance if you give maybe D as small or f as small you’ll get an error so both of them have to be in capital case and over here I have two key value pairs so the first key is name and then we have a list of values which are Bob Sam and Annie then we have the next key which is marks then we have the list of values for Marks which are 76 25 and 92 so here as you see the keys become the column names and the values become the records over here so name and marks become the column names and these values over here the list of values op Sam and Annie which are the values for this key become the records of this particular column similarly these values are there for this particular key and these become the records for this particular column so let me go ahead and create a First Data frame over here so I’ll just go ahead and type in data frame Now to create a data frame I’d have to type pd. data frame and D and F both have to be capital and inside this I’ll create a dictionary so to create a dictionary I would need Calli braces so the first key would be name and I’ll go ahead and give in a list of names over here let’s say the first name is Sam then we have Annie going ahead we have Jennifer now once we have the first key value pair I’ll go ahead and also add their marks over here so the second key would be marks and I’ll have a list of values over here let’s say Sam has got 50 marks Mar Annie has got 60 marks and Jennifer has SC 70 marks and I’ll go ahead and store this in DF let me print out DF over here and we have created our first data frame where the column names are name and marks and the values are these over here and let me go ahead and also show you guys the type of this object which I’ve just created so inside this type method I’ll be passing in DF and as you guys see this is p. c.f frame. data frame which basically means this is a data frame object now that we have created our first data frame we’ll perform some basic functions on top of a data frame we’ve got head tail shape and describe so we’ll just Implement all of these now to implement this we will be performing them on a data set called as the iris data set now to read any CSV file we have a method called as pd. read CSV so here I’ll have pd. read CSV and inside this I’ll give single codes and given the name of the file so the name of the file will be iris.csv and I’ll go ahead and store this in a new object called as Iris now let me hit on run let me check the first five records which are present in this Iris data frame so if I want to check the first five records which are present in this Iris data frame I need to use the head method so iris. head as you guys see I have the first fire records so this Iris data frame comprises of five columns which are SLE length seel width petal length petal width and species and we’ll have three different species which would be setosa ver color and virginica so this is how we can work with the head method now similar to the Head method we would also have the tail method which would give us the last five rows which which are present in a data frame so here I’ll type iris. tail and when I click on run you guys would see the index value over here the index value starts from 145 and goes on until 149 because there are 150 records in this Iris data frame so we have extracted the last fire records and we have printed it onto the console then if you want to check the number of rows and number of columns which are present in this Iris data frame we can just use the shape method so here I’ll have iris. shape and as you guys see this gives us a dimension value of 150 comma 5 which means there are 150 records in five columns then we’ll have the described method so here I’ll have IRS do describe and now when I click on run we have all of these numerical quantities over here so let’s say if I want to find out what is the minimum value which is present in the seel length column the minimum value present in this Seer length column will be 4.3 similarly what is the maximum value in Seer length column it will be 7.9 what is the mean value it will be 5.84 so these are some interesting metrics which we can find out with the describe method so now that we know this let’s actually see how can we extract individual records or individual columns from a data frame so for that purpose we can use the do iock and lock methods so let’s start off with the DOT iock method so do iock method with the help of it we can extract rows and columns on the basis of index so here iock basically stands for index location and over here as you see I have a comma and on the left side of the comma that would indicate all of the rows and the right side of the comma that would indicate all of the columns so from this entire Iris data frame I am extracting the first three records so here the rows would be 0 to three and three is exclusive over over here that is why I’ll have the records where the index values are 0 1 and 2 and similarly The Columns would be 0 to2 which would mean the column which is present at index0 which will be SE length and the column which is present at index one which is SLE width two again over here is exclusive so let me go ahead and extract some rows and columns with this iock method so we already have this Iris data frame with us let me again print out out the head for you guys so that will be easier for you to have a glance at this now let’s see from this entire data frame I would want the records from index number 30 going on till index number 40 and I would want the columns which are present at maybe index number three and index number four so index number three will be 0 1 2 and 3 this is index number three this is index number four so here I’ll have index number three going on till the end because this is the last column let me print this out and show you guys the result as you guys see I have extracted all of the records starting from index number 30 going on till index number 39 and the columns which you see starts from index number three which is this particular columns index and goes on till the end over here so this is how we can extract individual rows and columns with the dot iock method now we have the Dot Lock method so instead of giving the column index if I want to extract columns on the basis of their names then I can go ahead and use the Dot Lock method and over here when it comes to rows you see that I have given 0 to three here when it comes to Dot Lock you’d have to keep in mind that three is inclusive this is the only case where maybe you will find that the final value over here is inclusive so when I given 0 to three you will get all of the records starting from index number zero going on till index number three which is also inclusive and over here I’m giving in the column names which are SE length and petal length and that is what I’m extracting over here so I have this Iris data frame then I’ll just go ahead and use this do lock method now from all of these records let’s say I’d want all the records starting from index number 10 going on till index number 20 and the columns which I want to extract are seel length and petal length I’ll just have seel do length over here and the next column which I want would be petal do length let me hit on run and as you guys see I have all the records starting from row number 10 going on till row number 20 and 20 is also inclusive over here and the columns which have extracted are seel length and petal length now we’ll see how to drop a particular column so many of times it would happen that not all columns which are present in a data frame are important so from this entire data frame if we want to drop a particular column then we can just go ahead and use the drop method so here I’ll have iris. drop and I am dropping or removing the SE length column from this entire data frame so here when I set the access value to be equal to 1 this would basically mean that I am dropping a column so if you want to drop a row then you would set the axis value to be equal to zero and if you want to drop a column then you would set the axis value to be equal to 1 so if I if from this entire Iris data sets again I’ll show you guys the head of this so that you guys can have a glance at all of the columns which are present over here so from all of the columns if I want to drop the species column all I have to do is type in iris. drop and inside this I’d have to give in the name of the column which would be species and I’d have to set the axis which will be equal to one because I’m dropping a column and as you guys see I have successfully dro the species column from this entire data frame now similarly if I want to drop some particular rows which are present in this data frame so here as you guys see the index value it starts from zero goes on till four over here but if I want to drop the row indexes of 1 2 and 3 here as you guys see I have two parameters first parameter I’ll given a list of all of the indices that I’d want to drop so I’d want to drop the index value one index value two and index value three and the resultant which you see over here after zero we directly jump on to the index number four so now from this entire dat data frame this what you see over here I’ll just use iris. drop and I would want to drop the index values of 1 2 and 3 and I’ll set the axis to be equal to zero and when I hit run you would see that after zero we are directly jumping onto index number four so this is a very simple example of how to drop some records and how to drop some columns from your data frame now we’ll go ahead and work with some simple pandas fun functions so from the iris data frame if I want to find out the mean values of all of the columns I can just go ahead and use the mean method similarly if I wanted the median values of the records of all of the columns then I’ll just go ahead and use the median method similarly if I wanted to find out the minimum value I’ll use the Min method and if I wanted to find out the maximum value I will use the max method over here so very basic operations so when I use iris. mean this would give me the average values of all of the columns so average SLE length of the entire data frame is 5.8 average SLE width is 3.05 average petal length is 3.75 and average petal width is 1.19 similarly if I want to find out the minimum value of all of the columns so I’ll have iris. mean and this will give me all of the minimum values and if I want to find out the maximum values I’ll just go ahead and type iris. Max and this would give me the maximum value of all of the columns over here so I’ve got the mean value the minimum value the maximum value and I can also find out the median value so I’ll just type in iris. median and when I click on run over here this would give me the median values with respect to all of the columns which are present now we will get on with this Library called as m lip which is mostly used for data visualization and with the help of this Library we can create stunning plots such as bar plots Scatter Plots histograms and a lot lot more so we’ll start off by creating our first plot which will be a line plot so we would require two libraries over here the first Library would be numpy because we would want to create our data with this numai library then we would import this pip plot sub module from this mat plot lip Library so we’d have to type in from matte plot lip import P plot as PLT and the Alias which I’m giving for pi plot is PLT then I’ll create two numpy arrays over here the first numi array will be X and I’m creating this numpy array with the help of this np. a range method and the range will be from 1 to 10 and then I’ll create the next numpy array which is basically 2 * of X so all I have to do is multiply x with two and then I’ll get y so here we have 1 we have two 2 becomes 4 four 3 becomes six and this is how it proceeds now once we create the data all we have to do to create a line plot is use this PLT do plot so we’ll have the plot method in this P plot module so this takes in two parameters which are X and Y so we have already created our data X and Y so X will be plotted on the x- axis y will be plotted on the Y AIS and as you guys see over here x goes from 0 to 10 and Y goes from 1 to 20 over here and we see that there is a linear relationship between X and Y or in other words as the value of X increases the value of y also correspondingly increases so let’s go to jupyter notebook and create our first line plot using M plot LEP so so i’ have to start off by importing the required libraries so I would need numpy here I’ll type import numpy as NP and after this I would also require matplot lib so I’ll type from Matt plot lib import pip plot as PLT let me write those spelling properly over here and once I’ve imported these two libraries I’d have to create the data so first I’ll have X and this I’ll be creating with np. a range and the range will be from 1 to 10 since I want the numbers from 1 to 10 I’d have to give the value 11 because 11 will be exclusive over here then let me just go ahead and print out X for you folks over here as you see we have the number starting from one going on till 10 now if I have to create y y will just be 2 * of X so here I’ll have 2 into X and then let me print out y for you folks over here and as you guys see this is all of the elements are just two times of the elements which are present in X now since I have to create a simple line plot I would have to use PLT dotplot and this would take in two parameters which are X and Y so this data would be plotted onto the xaxis this data would be plotted onto the Y AIS and I’ll just show this as a result so as you guys see we have this object X mapped on the x-axis this object y mapped on the Y AIS and this is the corresponding line plot now that we have created this we can also add the title X label and Y label so we’ have to use this title method so we’ll have PLT do title and inside this we’ll give the title as line plot similarly we can also add X label and Y Lael by using these two methods and as you guys see we have added these two labels over here so let me add the title X Lael and Y label PLT so I’ll copy this entire code over here and then I’ll paste it over here now after this I’d have to add the title so for that I’ll use PLT do title and I’ll just give the title as first line plot then I’ll have X label so here I’ll have PLT do X label and here I’ll give the X label as xaxis then I would have the Y Lael so PLT do y label and inside this I’ll give the Y Lael as y AIS let’s run this and wait for the results so as you guys see initially this was just a bland plot without the title and the X and Y AIS labels now with the help of these three methods we have added the title The the x-axis label and the y- AIS label now we can also go ahead and change some more attributes with respect to this line plots so we have color line style and line width so initially as you see over here the color of this line by default is blue but if I don’t want the blue color and if I want some other color then I can just use this color attribute and assign it a new color since I’m giving it a value of G which basically means green color and as you guys see this is a green color similarly we have this next attribute called as line style so initially we have a solid line but instead of a solid line if I want a dotted line then I can go ahead and use a colon over here and as you guys see we have a dotted line right now and by default also the line width is one so we can go ahead and increase or decrease the line width so here we are setting the line width to be equal to two and this is the final result which we get so let’s go ahead and add some color line plot and line width I have the same code over here now what I’d have to do is add in some color so I’ll have this attribute called as color and I’m setting let’s say I’ll give it orange color to this now I would have to change the line style so I would want a dotted line instead of this solid line so I’ll give in a colon over here and I’ll also change the line width so I’ll give the line width as three so as you guys see initially this was the line which we had but now I have changed it to this so from Blue we have converted it to Orange from a solid line we have converted it to a dotted line and also you see that this is a thin line and we have increased the width of this line by two points now we have only created one line in one plot but we can also have two lines in the same plot so for this purpose I’ll have two y variables so X variable will be the same which will be the number starting from one going on till 10 but I’ll have two y variables y1 and Y2 y1 is 2 * of X Y2 is 3 * of X so now that we have y1 and Y2 ready I’ll have to make two plots because I’d want two line plots in the same graph so first I’ll have PLT dotplot and this line will be between X and y1 so this first line which you’re making it’ll be between X and y1 and for this particular line I’m setting the color to be equal to Green the line style to be equal to so this will be a dotted line then we’ll set the line width to be equal to two then we’ll have have our next line which will be between X and Y2 and the color of this line will be red and this will be a dashed line and we are setting the line width to be equal to three then again we have the title X Lael and Y Lael and we also have this new method called as grid so in the earlier plot as you guys see we don’t have any grid over here but when we set PLT do grid to be equal to True we’ll have a grid as well well and this is the resultant line which we get so here we have the green line over here which is this dash line then we then we also have this next line over here which is between X and Y 2 and this is the line and since I’ve also set the grid to be equal to true we also have a grid over here in this particular graph so I’ll go back we already have X now let me just print out X for you guys over here this is these are all the numbers which are present in X now we I y1 I’ll set it as 2 * of X and then I’ll have Y2 which will be equal to 3 * of X so I have y1 and Y2 ready now after this I would have to make a plot between X and y1 so I’ll have PLT dotplot and onto the x axis I’ll obvious obviously have X then onto the Y AIS I’ll have y1 and the color for the first line I’ll have green and let’s say the line width I’ll set this to be equal to 2 then I’ll have the next line which will be then I’ll have the next line which will be between X and Y 2 so here I’ll just write down X comma Y2 and for this line I’ll set the color to be equal to red and I’ll change the line width over here again so I’ll set the line width to be equal to 5 and I would just have to print it out so it’ll be PLT do show and I would also want a grid over here so before this I’ll set PLT do grid and I will set this to be equal to True let’s hit run and as you guys see I have two lines in the same plot now in the earlier example we had two lines in the same plot but if we actually want two subplots itself that is as you guys see over here this is one subplot this is one subplot and this line is present in the first subplot this line is present in the second subplot so this is also something which we can create so first we have X y1 and Y2 so these would be the same variables once we have our variables ready we we would have to use the subplot method so we’ll have PLT do subplot and inside this I am passing in 1 2 1 so here one two basically means that I would have two plots over here and those two plots would be present in this way so I’ll have one row two columns as you guys see I have one row and two columns so this is column number one column number two which are present in the same row then I will given the index of this subplot so this is index number one and for this first Index this will be the plot which we’ll be creating so for the first index the plot will be between X and y1 color will be green line style will be dotted and line width will be two and as you guys see at index number one we have this green colored line between X and y1 then we’ll have PLT do subplot which is our next sub plot and the first two parameters will be the same the third parameter here will set the index value which is two so this is what we’ll be getting over here and the second index will have the line plot between X and Y2 and the color as you see is Red Line style is dotted and line width is equal to two then we’ll just go ahead and print it out so we already have X y1 and Y2 ready with us now after this we would have to start off by creating a subplot so here I I’ll have PLT do subplot and I’d have to given the and here I’d have to given the dimensions over here so I’ll have 1 2 comma 1 so I’m creating my first subplot over here PT do plot and this plot will be between X and y1 and I’ll set the color to be equal to Yellow then after this I’ll go ahead and create the second subplot and the first two parameters will be one and two because i’ want these two plots along the columns and I’ll set the index to be equal to two then I’ll have PLT do plot and the next plot will be between X and Y2 and over here I am setting the color to be equal to Orange then I can just go ahead and show you guys the result result so as you see I have two subplots over here the first subplot is between X and y1 and the color of this line is yellow the next subplot is between X and Y2 and the color of this line is orange now if I want the subplots along the row and not along the column that is also I can set so all I have to do is make this change over here I’ll set this to be equal to 2 comma 1 and similarly over here here I’ll make this to be 2 comma 1 which means that I will have the plots along the rows I’ll have two rows and only one column when I hit run as you guys see I have two rows and only one column this is the first subplot this is the second subplot so that was a line plot which helped us to understand the relationship between two numerical entities so whatever we mapped onto the xaxis was a numerical entity and whatever we mapped onto the y- axis was also a numerical entity now we’ll go ahead and work with something known as a bar plot which would help us to understand the distribution of a categorical column so for this we are creating a dictionary called as student and it compris of three key value pairs we have Bob 87 Matt 56 and Sam 27 now we’ll go ahead and extract the names and values individually so the names of these students are basically the keys so I’ll have student do Keys which will give me all of these keys and I’ll go ahead and convert these Keys into a list so I’ll pass this into this list method and I’ll store the result in this names object similarly I’ll extract all of the values I’ll convert all of the values into a list or I’ll store all the values into a list and I’ll store that list in this object called as values so I’ve got names I’ve got values and to create a bar plot all I have to do is use PLT dob bar and the takes in two parameters the first parameter will have the categorical values the second parameter will have the numerical values since the first parameter compris of the categorical values I’ll pass in names over here and the second parameter will be the values and as you guys see over here on the x-axis I have the names which are Bob Matt and Sam and on the y- axis I have the corresponding values so VC that Bob has scored the highest marks followed by Matt followed by Sam now since we are creating a bar plot I’ll just add this comment bar plot over here and I’d have to create a dictionary so that we get the data for this bar plot so I’ll name this dictionary as student and we can create a dictionary with these curly braces over here so I’ll have the first student who is Bob let’s say Bob has scored 45 marks then we we have the second student Sam and Sam has scored let’s say 97 marks then we’ll have Matt and let’s say Matts has scored only 23 marks so we’ve got three key value pairs now that this is done I’d have to extract the keys so I’ll type in student. keys and I will convert this into a list so I’ll cut this I’ll put this inside the list and I will store this in a new object called as names now that I have names of all of the students I’ll go ahead and also extract marks of all of the students so I’ll have I’ll store that in this object called as values I’ll have to convert the result into a list and inside this I would basically have to extract all of the values so it’ll be student. values I have names and values ready and to create the bar plot I would just have to use PLT do bar the first parameter will be names and the second parameter will be values then I can just go ahead and show out the result so we have Bob Sam and Matt mapped on the xaxis and their corresponding values and we see that Sam has the highest marks and Matt has the lowest marks and now the plot which we had created earlier was very Bland and we can go ahead and add the title X Lael and Y Lael to it and also assign a grid so we’ll be using the same methods to add the title we’ll have PLT do title and to add the X label and the Y label we’ll be using PLT dox Lael and PLT doy label and we’ll also set the grid to be equal to true I’ll copy these two set of commands over here and I would have to set the title so here I’ll have PLT do title and and I’ll set the title to be equal to marks of students then I’ll have something on the xais PLT dox label and I’ll just have names and the x-axis then I’ll have something on the Y AIS here I’ll just write down PLT doy label and on the Y AIS I’ll just write down marks and I would also have to set the G to be equal to true so it will be PLT do grid and here I’ll set the value to be equal to true and as you guys see I have names on the x-axis marks on the Y AIS and I’ve also set the grid to be true now after this we can also create a horizontal plot so the plot which we had created earlier was a vertical plot so here we are basically doing two things so if we have to create a bar plot we have to use bar hedge instead of using just bar and we are adding a color as well so by default we had the blue color and if I want to change the color from blue to green I’ll use this color attribute and I’ll map the green color to this rest everything will be the same let me add a new comment over here which will be horizontal bar plot now that I have added this comment let me go ahead and copy everything I’ll paste it over here and instead of just having bar I’ll have bar H and I’ll set the color to be red and we have this bar plot over here so it’s just that we have to Interchange the label so on the x axis now we have the marks so let me keep this as marks and on the Y AIS we’ll have names let me change this to names and as you guys see we have successfully created this horizontal bar plot now that we are done with the bar plot we’ll head on to the next geometry which will be a scatter plot a scatter plot again is used to understand the distribution between two numerical entities and these and these entities are represented in the form of data points so we’ll be creating two lists over here the first list will be storing in X which basically comprises of the elements starting from 10 going on till 90 then we’ll have the next list a which comprises of some random elements and here you’d have to keep in mind that both of the lists have same number of elements else there’ll be an error and to create a scatter plot we’ll just use PLT do scatter we’ll pass this over here we’ll pass this over here as a second parameter and then we’ll just show off the result let me go ahead and add a comment over here so this will be a scatter plot Now to create this scatter plot I’d have to create the data so I’d have to store something onto the x axis so in X I’ll just have 1 2 3 4 5 6 7 8 and 9 and then I’ll have y and then y I’ll just have nine Rand ROM numbers over here so let me just store some nine random numbers which is done now to create the scatter plot I’ll have PLT do scatter and I’ll just pass in X comma Y and I would have to show out the result PLT do show and as you guys see I have created this scatter plot let’s start off with this particular point over here this particular point in indicates these two so I have X Y which is basically 1 and 5 so this intersection between 1 and five is where we’ll be getting this point so I have X I have y and this is the point I have then I have 2 comma 2 so the intersection of 2 comma 2 I’ll get this particular point then we have this point over here which is the intersection between 9 and 7 so as you guys see I have 9 and 7 over here now we can also go ahead and add some athetics or change the athetics of the existing points so we had same X and A these are the same list which we have it’s just that we are adding new attributes over here the first attribute as marker initially we just had solid circles so instead of having solid circles if I wanted a star then with the help of this marker attribute I’ll add star over here so similarly to change the color I’ll just have C and I’ll assign green to this attribute C and also I can change the size of this and to change the size of this I’ll be using S let me copy this entire thing I’ll be pasting it over here so these two will be the same I’ll add this new attribute called as marker and I’ll set the marker to b equal to Star and I’ll change the color color will be let’s say I’ll have orange again and I’ll have size to be equal to 200 let me print it out and as you guys see this is the result just to show you guys what happens if we increase the size instead of 200 if I keep it to be 500 you guys see that the size has increased again now instead of 500 what happens if I keep it to be 50 you would see that the size of the Stars has decreased now as we did with the line plot where we had two lines in the same graph we can perform a similar sort of thing over here where we’ll have two different sets of points in the same plot so for this we would need a new list we already have X and A then we’ll create a new list called as B again we have to keep keep in mind that the elements which are present in this list or the number of elements which are present in this list should be equal to the number of elements which are present in a as well as X then we’ll go ahead and create our first scatter plot by using PLT do scatter and the first cat plot will be between X and A and the first cat plot here these dots will be represented with stars then we’ll go ahead and create the second scatter plot which will be between X and B and these will be represented with circles and also we have different colors for both of these cater plots and also the size of the different data points will be different I’ll copy this entire thing over here and I’ll paste it down I’ll change this to be equal to y1 then I’ll have a Y2 as well and then Y2 I would need uh some some bunch of elements over here random nine elements so let me just have some random N9 elements let me just check how many elements do we have so I have 1 2 3 4 5 6 7 8 and 9 so these three lists are ready after this I’d have to go ahead and create the first catter plot which will be between X and Y one then I’ll go ahead and create the second scatter plot which will be between X and Y2 and I’m not adding the marker because we have already added the marker for the first one I just change the color for this so the color for second one let’s just keep it to be blue so I don’t have to add the color as well and I’ll change the size of this so for this I’ll set the size to be equal to 500 so as you guys see I have two sets of points over here the first set of point is being denoted by the small Stars the second set of points is being determined by these solid circles now instead of having those set of points on the same plot we can go ahead and create two subplots as well so we’ll be using the subplot method as we had used during the case of line plots so here we have these three lists then I’ll have PLT do subplot then we’ll have the same three parameters and since I want these plots to be present column wise in not rowwise I’ll have 1 comma 2 which means that I’ll have one row two columns and then I’ll give the index so at index number one we’ll have this scatter plot which will be between X and A so this is the scatter plot between X and A then I’ll go ahead and create the next subplot and the next subplot will be between X and B I’ll copy this entire thing I’ll paste it over here it’s just that I’d have to create a subplot now so I’ll have PLT do subplot and I want these plots column byse so I’ll have 1 comma 2 comma 1 and the first subplot will be this then I’ll go ahead and create the second subplot so I’ll have PLT do subplot and here I’ll be writing 1 comma 2 comma 2 and this is our first subplot and this is our second subplot so that was all about the scatter plot for categorical column but when it comes to histogram we’ll be using that to understand the distribution of a continuous numerical column and we’ll be creating this continuous numerical column or continuous numerical data with just a list over here so this is a very basic example I’m just creating a random list which comprises of all of these numbers and I’m storing it in this object called as as data and to create a histogram all I have to do is use this hist method so inside PLT doist I’ll pass in this list and when I show out this is the result which I get so here let’s actually have a look at this particular bin so in a histogram these are known as bins so here for this bin for the value three we have this value four or for the value three on the x- axis we have this value 4 on the y axis which would mean that this number three is occurring four times similarly if I look at this one over here so for this one on the xaxis we also have the value one on Y which would mean that one is occurring only once similarly we have four so this number four is occurring two times then we have eight which is occurring three times so let’s go ahead and create a histogram in Jupiter notebook I’ll just add a comment over here histogram and let me go ahead and create a list so I’ll store this list in L1 and I’ll have some random numbers over here so I have created my list and now that this is ready I can just go ahead and build out the histogram by using this method called as PLT doist and inside this I’ll be passing in L1 then since I just have to show this out I’ll just have PLT do show and this is the result so as you guys see this number three is occurring four times then we have this number six which is occurring three times and the rest of the numbers are occurring only once now we can also go ahead and change the number of bins which are present or the color of the histogram as well so to change change the color we’ll just use this over here so for the color attribute we are mapping in G which will give us this green color and initially we had 1 2 3 4 5 6 seven bins over here but instead of seven bins let’s say if I want to reduce the number of bins I’ll just use this attribute and set the number of bins to be equal to four and this is the result which I get I’ll copy this entire thing I’ll paste it over here now that I have created this histogram I would want to change the color of this so I’ll set the color to be equal to green and then it off so how many bars do I have 1 2 3 4 5 6 7 8 and 9 instead of having nine bars let’s say I would want only three bars over here or three bins over here I’ll set the bins value to be equal to three and as you guys see I have only three bins now let me set it to be five and I have 1 2 3 4 and five b this was all about histogram now the earlier histogram which we had created was with respect to a single list but if you want to create a histogram on top of a data frame then let’s see how can we do it so here we’ll be building this histogram on top of the iris data set so if you have to load any data frame we’ll have to use reor CSV since this is a CSV file so inside reor CSV I am passing in the name of the file and I’ll store it in this object called as Iris and when I use iris. head this will give me the first five rows which are present in this data frame now after that to create the histogram we’ll just use PLT doest and inside this so here we were passing in the list of numbers but here instead of passing in the list of numbers I’ll pass in the column so we have this SE length column which is present in the iris data frame so I’ll just pass in the seple length column and I’ll set the number of bends and I’ll also set the color to be equal to something and when I show it out this will be the result which I’ll be getting so here I’d have to load the iris data frame first so in the iris object I’ll just have pd. read CSV and inside this I’ll give the name of the file which will be equal to iris. CSV I’ll click on run so I’d have to import the panda data frame as well to use reor CSV method so I’ll have import pandas as PD and we have let’s just wait till this is loaded both the library and also the data frame now in the while it is loaded I’ll go ahead and write in the head method as well now if I click on run we’ll have a glance at the first five records which are present in this data frame and as we see we have seel length seel width petal length petal width and the species column and now I’d want to create a histogram for let’s see this petal length column over here then I’ll just have to type in PLT doist and inside this I’d have to pass in this petal length column so here so i’ given the name of the data frame first and using this parenthesis I’ll give the name of the column so the name of the column let me keep this to be small it’ll be petal length and I’ll set the number of bins to be equal to let’s say 50 and after that I’ll set the color of the bins to be equal to Green again and we can just go ahead and show the result so this should be be color and not C I’ll keep it as c o l o r all right so as you see we have successfully created this histogram for this petal length column now we’ll head on to the next geometry which is a box plot so this box plot basically gives is a five number summary so here in this result what you see this is the minimum value this is the 25% value this is the 50% value this is the 75% value and this is the maximum value so we’ll be understanding more about this as we progress through the session so first what we’ll do is we’ll just go ahead and create three list in the first list we just have numbers from 1 to 9 in the second and the third list we have randomly given some numbers over here and then we’ll create a list out of all of these three lists so inside this list method I am passing in 1 2 and three as a list and I’ll store the resultant list in this object called as data then if I have to create a box plot I’ll just use PLT dobox plot and inside this I’m passing in this data object which I just created and when I show it out this is the result which I get now when I compare these three boxes let’s actually understand the inferences over here so for this plot or this plot this box basically refers to this particular list this box tells us that the median value of the numbers which are present in this list is five the maximum value is N9 the minimum value is 1 similarly if we look at this particular box so this box refers to this particular list and this box tells us that the median value will be three the maximum value will be five and the minimum value will be one then if we have a look at this particular box this would tell us that the median value will be seven for this list the minimum value will be four the maximum value will be 9 so it’s time to create a box plot I’ll add this comment over here box plot and after this I’d have to create three lists so I’ll have L1 and inside L1 I’ll just have all the numbers starting from 1 going on till 9 then I’ll have L2 inside L2 I’ll just randomly given nine numbers and again I’ll have L3 and also in L3 I’ll just randomly given some numbers over here now once we have L1 L2 and L3 I’d have to create a list of lists so inside this this I’ll just be passing in L1 L2 and L3 and I will store this in a new object called as data so now that we have created data I can just go ahead and build out the box plot so I’ll have PLT do boxplot and inside this I’ll just pass in data then I can just show it out to you guys so we have these three box plots over here so the first box plot represents this particular list we see that the median value is five minimum value is one and the maximum value is N9 then we have this second list over here so for this the median value is five the minimum value is also one and the maximum value is 8 so and for this particular list it seems that the median value and the 75% value is same so for this the median value is 8 the minimum value is five and the maximum value is 9 so one another geometry which is analogous to the box plot is the whin plot so the only difference is to create a while in plot we’ll be using Vin plot method instead of box plot method and this is the difference between how these boxes and vience look and we can so normally if we don’t set the show medians to be equal to True will not have these lines or these indicators over here so we also have to set this to be equal to true so now here I’ll just copy this entire thing I’ll paste it over here and instead of having PLT dobox plot I’ll just have PLT dowh in plot and I’m printing out the same data and as you guys see I have created this while in plot and now if I want the median so I’ll have show medians and I’ll set this show medians to be equal to true and as you guys see I have added the medians as well and and after the viin plot we’ll have the pie chart and pie chart again helps us to understand the frequency or percentage of different categorical values so here we have two lists the first list comprises of all of the names of different fruits so we’ve got Apple orange mango and guwa then in the second list we’ve got the quantity of these fruits so we’ve got 67 apples 34 oranges 100 mangoes and 29 guav was and if I want to represent this relationship of the quantity of these fruits in a pie chart this is how I can do it so I’ll be using PLT do PI and here first I’ll be passing in the numerical entity so the numerical entity is this quantity and I’ll be passing that over here then I’ll have the categorical entity over here which is fruit so I’m assigning fruit to labels then I can just go ahead and show out the results and as we see in the result we see that the maximum percentage is of mango and the minimum percentage is of guwa so i’ have to create two lists over here I’ll create the first list I’ll have fruit and the first fruit will be apple the second fruit will be mango the third fruit will be orange and the fourth fruit will be ly now that we have created all of these fruits I’ll also assign the quantity so let’s say I have 53 apples I’ve got 43 mangoes I’ve got only 12 oranges and I’ve got 97 Lees so I’ve got these two ready now after this I’d have to create the pi chart so I’ll have PLT do PI first I’d have to given the new numerical object which will be quantity then I’d have to given the categorical object so I mapping fruit onto the labels then I would just have to show out this pie chart so PLT do show as you guys see this is the resultant pie chart so the maximum portion belongs to lii and the minimum portion belongs to Orange because we have 97 lies and we have only 12 oranges now now we can also go ahead and change the colors of these different sectors and also add the actual percentage in these different sectors to add the percentage we’ll be using Auto PCT so here for this autop PCT attribute I am using 0.1f now what this basically means is the 0.1 basically means that I’ll have the decimal values to one place so if I have 0.1 this will mean I have decimal values to one place if I’ll keep it as 0.2 then I’ll have decimal values to two places and after this I’m just adding this new attribute called as colors and the coloring it starts from the first label which is Apple over here orange then I’ve got blue which is for Mango then I’ve got black which is for guaa I’ll copy this entire thing over here I’ll paste it over here now to add the percentage I’ll be using autop PCT and here I’ll have to use percent 0.1 F let me add percent percent and after this I’ll also have to set the color over here so the colors I’d have to give a list of colors so let’s say for Apple I’d want to given green then for for mango I’d want to give in yellow then for orange i’ obviously want orange and for liy I’d want pink now when I hit on run let’s see what would be the result let me change this to colors instead of color so as you guys see I have the percentage over here because I had used autop PCT attribute and it seems that we have out of all of the fruits 47.3 of them are lies and this is the color indicated similarly out of all of the fruits only 5.9% of them are oranges so we have created the pie chart then something which is very similar to pie chart is the donut chart and to create this donut chart we’ll be using two pie charts over here so the data is same we have fruit and quantity it’s just that first we’ll go ahead and create our first pie chart which comprise of quantity and labels and I am adding a new attribute inside this which is the radius so I am setting the radius of this to be equal to two then I’ll go ahead and create another pie chart here inside this I’ll just pass in so first we have to pass in numerical entities so I’ll just have a list which comprise of only one element or one value which is one and this entire value or this entire list compris of only one color which is white and I’ll set the radius to be exactly half of the original Pi so I’m setting the radius to be equal to one and as you guys see this is the outer pie chart this is the inner pie chart so the outer pie chart has a radius of two the inner pie chart has a radius of one and since I’ve given a color of white this is what I have over here so you can give any random number over here that doesn’t really matter so you can give 1 10 5 it is all the same it’s just that keep the color as W because since a donut it just basically looks like a donut we have to give in the white color I’ll copy this entire thing I’ll paste it over here I’ll set the radius for this to be equal to let’s say four then I’ll have a new pie chart over here I’ll just give a random value let’s say I’ll give five over here and after this I’d have to set in a color and since there is only one value I’ll just give in white color over here and after this the only thing which I have to set is radius and I’ll set the radius for this to be equal to two let’s hit on run and this is the donut chart which we get so as you guys see the radius for the outer pie chart is four the radius for the inner pie chart is two let me reduce this let me keep this to be two actually and let me keep this as one and this is the resultant donut chart so cbor is another visualization Library which is built on top of M plot lip so if you want to work with cbon then we’d have to import matplot lip as well so to import cbon we have to type in import cbor as SNS and since this is built on top of mat plot lip we also have to import mat plot lip so we’ll have from mat plot lip import P plot as p LT and inside cbon we have this method called as load data set and we have some built-in data sets inside the seor library and one such built-in data set is the fmri data set and I’m storing this this new object called as fmri and then I’ll have a glance at this first five columns of this data set so we have these columns we’ve got subject time Point event region and Signal now out of all of these columns I’d want to make make a line plot between the time Point column and the signal column so to make a line plot with the help of the cbor library since I’ve given the alas for the cbor library as SNS I’ll type in SNS do lineplot and onto the xaxis I am mapping the time Point column and onto the Y AIS I am mapping the signal column and then I’ll have a new attribute called as data so basically I am building this line plot on on top of this fmri data set that I just go ahead and show out this line plot so let’s understand this properly so if you look at this line plot closely you would see that till the time point of 5 Seconds so let’s say if this time point is in seconds so till the time point of 5 Seconds the signal value is increasing but from time point of 5 Seconds to 10 seconds you have the signal value to be increasing and after 10 seconds this sort of stabilizes and only increases two so here if the value is min – 0.05 so from – 0.05 it goes up to close to zero so now that we are done with mt plot lip let me go ahead and create a new notebook over here and I’ll name this new notebook to be equal to cbon let me rename it I’ll delete this I’ll name this as cbon demo and we’d have to load the required libraries the first library is obviously cbon so I’ll have import cbon as SNS then i’ also need pip plot so I’ll have from Matt plot lib import pip plot as PLT let’s just wait for these two libraries to load and once we have cbon with us we’ll be working with the fmri data set so to load the fmri data set we have the load data set method meod which is part of the SNS Library so I’ll have SNS do load data set and inside this I’ll be passing in the name of the data set which is fmri and I will store it in this object called as fmri and let me have a glance at the first five records of it so I’ll just type in fmri do head and these are the different columns which are present and I’d want to make a line PL between the time Point column and the signal column and for this purpose I’d have to map the time Point column onto the x-axis and the signal column onto the Y AIS SNS do line plot and onto the xaxis I am mapping time point and onto the Y AIS I am mapping signal and the data is obviously fmr right then I would just have to show out the result so I’ll have SNS i’ actually have to give in PLT do show over here let’s hit run so we have successfully created this line plot and as we had already seen so till 5 Seconds there’s an increase in the signal value from 5 to 10 seconds there’s a drop and then it sort of stabilizes now we can also add a new attribute or new athetic called as Hue so here we had only one line and this one line arbitrarily the color of this was blue but if I want the color of the lines to be actually determined by a column what I can do is I can map a column onto the Hue athetic so we have the event column and we are mapping the event column onto the Hue athetic so now the color of the lines would be dependent on this event column and since we have two events over here we have the stim event and we have the Q event this blue color line represents the stem event and this orange color line represents the Q event and if we look at this blue color line over here you would see that till time point of 5 Seconds the signal value it goes up till maybe 20 and then it drops down to a Min – 0.1 and similarly if we look at this Q event you see that the peak is not so high so for the stem event it was almost 0.2 and when it came to Q it is only 0.05 but you’d also notice that the drop is not so steep so for the drop of the stem event it came from 0.2 and it’ll drop down to Min – 0.10 but for this particular signal Q the drop is very small it dropped from 0.05 to only minus 0.05 and also if you see the increase of it so once it dropped the increase of Q event is much higher when compared to the increase of this stim event so this is the same set of commands it’s just that I am adding a new attribute called as Hue and I’m determining the color of the lines on the basis of this attribute and I’ll be mapping the event column on top of this so as you guys see I have this event column and this is the same column which I’m mapping onto this Q ech event we see that we don’t have the event column so what I’ll do over here is I will cut this out I’ll paste it over here I’ll put in a comma and since this is a column I’d have to put this in double quotes now when I hit run so seems like we have an error again over here I have two commas let me go ahead and delete this comma and we have successfully produced this two line plots over here now we can also go ahead and change the style of how these lines look so now if I want these lines again or the style of these lines again to be dependent on a column I can just go ahead and add a column onto the style athetic so the color is also being determined by the event column and also the style is being determined by the event column so it’ll be the same command and I’ll be adding a new attribute to this I’ll have style and to this I am mapping the event column and you see that the Q event is being represented with this dotted line and the stem event is being represented with this solid line so now that we have created that we can also add markers on top of it so all we have to do is set the markers to be equal to True here in this command I’ll have this new attribute called as markers and when I set this to be equal to true you will see that so I have markers now when it comes to the stem event the markers are solid circles and when it comes to the Q event the markers are crosses so that was all about line plot with the help of the cbor library now we’ll go ahead and create a bar plot with the cabor library so to create this bar plot we’ll be actually needing the Pokemon data set so we’ll have to start off by loading the Pokemon data set so we’ll have pd. read CSV and we’ll store this pokemon. CSV file in this Pokemon object and once we store it in this object we can go ahead and create a bar plot for this is legendary column this is legendary column is a categorical column and that is why we are creating a bar plot and this is legendary column we have two categories 0 and one so zero indicates that the Pokemon is not legendary and one indicates that the Pokémon is legendary and onto the Y AIS I am mapping the speed column and from this bar plot it is very evident that legendary Pokémons or the speed of the legendary Pokémons is high higher when compared to the speed of non- legendary Pokémons so now I’d have to go ahead and load of the required data set so to load the data set I would need pandas so I’ll just type in import pandas as PD now once I have this I need to load the CSV file so I’ll Type in pd. read CSV and inside this I’ll give the name of the CSV file which is will be pokemon. CSV and I will store it in this new object called as Pokemon and once I’ve stored this let me have a glance at this so I’ll just type in pokemon. head and I’ll show you all of these columns so these are the different columns which are present over here so against Bug against dark against dragon all of these columns basically tell us how does a Pokemon perform against these types of Pokémons then let me scroll it to the last so here we have this s legendary column which would tell us if the Pokémon is legendary or not then we have this generation column which would uh tell us the to which generation does this Pokemon actually belong to then this column tells us what is the weight of this Pokémon in kg then this type one tells us what is the primary type of the Pokémon type two tells us what is the secondary type of the Pokémon and then we’ve got other columns as well so now for this bar plot we’ll be only working with this s legendary column and then the speed column so I’ll be using SNS do barplot and onto the xaxis I would have to map s legendary and then onto the Y AIS I’ll be mapping the speed column and the data onto which I’d want to build this bar plot is the Pokemon data set then I can just go ahead and show this out and when I hit on run you would see that I have successfully created this bar plot and again it is very evident that the legendary Pokémons the speed of the legendary Pokémons is higher when compared to the speed of non- legendary Pokémons so now we’ll create a bar plot between s legendary column and weight in kg column so s legendary column is again mapped on to the x-axis it’s just that here for the y- axis we are mapping weight kg column and this time it is it’s very very obvious that legendary Pokémons their weight is much much higher when compared to non- legendary Pokémons I’ll cut this out I’ll paste it over here and instead of mapping speed I have the weight kg column and when I hit on run you would see that the weight in kg of a legendary Pokémon is much higher when compared to the weight in kg of a non- legendary po Pokémon now we can also go ahead and determine the color of these bars on the basis of a column and we already know to do that we’ll be using the Hue etic or the Hue attribute and I want the color to be determined by the generation column so this time I’ll be mapping the generation column onto the Hue athetic and as you guys see we have seven generations over here starting from generation one going on until Generation 1 and since we have two different legendary status so zero indicates that the Pokémon is not legendary one indicates that the Pokémon is legendary for these two categories I’ll have seven bars each so for those Pokémons which are not legendary I’ll have these bars these seven bars indicating to which generation does the Pokémon belong to similarly for all of the Pokémons which are legendary I’ll have these bars indicating to which generation does the Pokémon again belong to and again on the y- axis since we have mapped speed we have the speed values corresponding to whether the Pokémon is legendary or not legendary so the same set of command I would have to use the Hue esthetic and onto this I’ll be mapping the generation column and as you guys see so this denotes all of those Pokémons which are not legendary this denotes all of those Pokémons which are legendary and it is very clear that legendary Pokémons they have much much higher weight when compared to non- legendary Pokémons and we have the distribution of Pokémons which belong to the different generations with respect to both legendary Pokémons and non- legendary Pokémons now going ahead we can also change how the different pallet look for these bars so we will use the pallet attribute so we’ve got these three different palletes over here so again the bar plotters between is legendary column and weight column and it’s just that instead of using a column to map it onto the Hue athetic we are using a new athetic called as pallet and we can directly use different predefined palettes so first we have the blues D palette with a capital B this is how it looks like then we have the rocket pallet and this is the resultant and then we have the VL pallet let me delete this Hue attribute over here and instead of that I’ll have pallet attribute and the first palette which I’ll be using is blues D and as you guys see this is the blues D palette similarly if I want maybe a more of red color then I I’ll be using the rocket palette then if I want maybe a light shade of bluish gray I’ll be using V lag and this is what I’ll be getting now instead of maybe using a palette or maybe mapping a color onto the Hue athetic I can just go ahead and use the color attribute and assign one single color for all of the bars which are present so I’m using the color attribute and I’m mapping the orange color to both these bars I’ll remove pallet and instead of pallet I’ll have the color attribute and I will set the color of these two bars to be equal to Orange and this is the result so we are done with bar plot as well now we’ll go ahead with the next type of plot which is scatter plot and we have already learned that a scatter plot is used to understand the relationship between two numerical entities and over here we are building the scatter plot on top of the Iris data set so we’ll load this data set up then we’ll be using SNS do scatterplot and onto the xaxis I am mapping the seple length column and onto the y- AIS I am mapping The Petal length column and the data onto which I’m building this scatter plot is the iris data set and again it’s very clear that as the seple length of the iris FL increases the petal length of the iris PL also increases linearly so here I’d have to load a the iris data set first so I’ll have pd. read CSV I’ll give it the name of the file which will be iris.csv now that I have loaded this let me show you guys the first five rows of all of the columns and this is the resultant and to create the scatter plot all I have to do is use PLT do scatterplot and since I want the scatter plot between seel length and petal length and I want seel length to be onto the xaxis so to X I’ll be using seel do length and on the Y AIS I would need petal length so let me give the name of the column over here which will be petal length and the data which I’m using is obviously Iris then I can go ahead and show out the result so let me just keep it as scatter over here and again this has to be equal to small D and not capital D let me hit on run over here and this is the resultant value now as you see over here we can go ahead and add in color and also change the style of this so initially we just had a simple plot between seel length and petal length but now I want these dots to be determined or the color of these dots to be determined by the speed species column so that is why I am mapping the species column onto the Hue athetic and after that similarly I am mapping the species column onto the style etic as well so here as you see we’ve got three different colors blue orange and green the blue color is being determined with the Sosa species then we’ve got this orange color which is for the wory color speci then we’ve got this green color which is for the vinica spey similarly we’ve got three different styles over here for setosa we have solid circles for ver color we have crosses and for vinica we have solid squares the same command which I’ve copied I’ve pasted over here I’ll add two more attributes the first attribute will be Hue and onto Hue I’ll be mapping the species column similarly onto style as well I’ll be mapping species Colum column and when I hit on run so I’ll have it as hu now when I hit on run seems like we have an error over here let me check it properly and this over here has to be just H now when I hit on run this is the resultant scatter plot which I get and now let’s say instead of having the colors to be determined by a categorical column if I actually want the color to be determined by numerical column I can also do that so here since petal length is mapped on the Y AIS and I want the color to be with respect to the petal length I’ll go ahead and map The Petal length onto the Hue athetic and as you guys see over here as the value of petal length is increasing the intensity of these points is also increasing so here on this lower left side over here we have all of this very light shaded circles and at the top right you have this high intensity or high intensity colored circles over here I’ll copy this I’ll paste it over here now I’ll want the Hue or the color to be actually determined by petal length itself let me keep the L to be capital and when I hit on run you would see that as The Petal length value increases the intensity of the color also increases let me just go ahead and also add the style over here so this time the style will be determined by the species column and you would see that we have three different styles for setosa this is setosa you have solid circles for wory color you have crosses and for vinica you have solid squares so this was about a scatter plot now we’ll go ahead and make a histogram or a distribution plot so a distribution plot you can consider this to be a combination of a frequency curve and a histogram and we have already worked with histogram where it came to matte plot lip we know that a histogram is used to understand the distribution of a continuous numerical value so for this we’ll be using the diamonds data frame so we’ll load up this diamonds data frame we’ll store it in this diamonds object and then we’ll have a glance at it after that will to create this distribution plot we’ll use disc plot and inside this I if I want to understand the distribution of the price column I’ll just pass it over here so I’ll have diamonds of price and as you guys see this would show us the distribution plot and as I’ve told you the distribution plot is a combination of a histogram and the frequency curve over here I’ll just add this comment and I’ll add distribution plot now over here to create this distribution plot I would need to load up the diamonds data set so I’ll have pd. read unor CSV and inside this I’ll be passing in the diamonds. CSV file and I will store it in this new object called as diamond now that I have loaded this data set let me have a glance at the first five records of this so diamond. head and these are the different columns which are present so I’ve got carrot which obviously tells us about the carrot of the diamond then we’ve got the cut type of the diamond we’ve got color Clarity depth table price so this is price of the diamond in US dollars so the price would mostly range from around $300 to around $188,000 then we’ve got x y and z X over here denotes the length of the diamond in millimet y denotes the width of the diamond in millimet and Zed denotes the depth of the diamond in millimet so once this is clear i’ have to make a distribution plot and since distribution plot is used for continuous numerical values I want to make a distribution plot for this particular column so I’ll have SNS dot dis plot and inside this I’ll be passing in Diamond I’ll have square braces over here inside this I’d have to pass in the colum which is price and I would just show this out I’ll have PLT do show and you would see that I have created this distribution plot over here now in the distribution plot let’s say if I want only the frequency curve without the histogram that also can be done it’s just that in the same command I would have to set hist to be equal to false and when I set his to be equal to false I’ll only get the frequency curve I’ll copy it I’ll paste it over here and I’ll add a new attribute called as H and I’ll set this to be equal to false and when that is done you would see the difference so this was a distribution plot which had both histogram and the frequency curve now this is a distribution plot which comprise of only the frequency curve now similarly we can go ahead and add a new color to this and to add a new color we’ll just use this color attribute and add this so this was the distribution plot which we had created and to this if I want to add color I’ll use this color attribute I’ll assign it R and you you would see that I have assigned it the red color now if I want a distribution plot without the frequency curve which would mean I want only the histogram then here I will set KDE equal to false so in the distribution plot either we can have both the histogram as well as the frequency curve or we can just have the histogram or we can just have the frequency curve to just get the frequency curve we’ll set this to be false to just get the histogram we’ll set KDE to be equal to false and we can also go ahead and Vary the number of bins which are present to vary the number of bins I’ll use this attribute called as bins and over here I’m setting the number of bins to be equal to 10 and I’m just setting the color to be equal to Green I’ll select this over here I’ll paste it and I’ll set KDE to be equal to false and when I do this you would see that I have only the histogram without the frequency curve if I want to change the number of bins which are present so since there are 150 records I’ll have 150 bins but instead of uh having all of this so let’s say if I want only 50 odd bins over here I’ll set 50 and as you guys see I have only 50 bins now let’s say instead of 50 maybe if I want only 10 bins so you will see that I have only 10 bins now let’s say if I want only five that also something which can be done I’ll set the value to be equal to five and we have only five bins over here and after this let’s say if I want to plot it on a different axis so till now we’ve been creating this distribution plot where on the x-axis or basically this was based on the x-axis but instead of having it to be based on the x- axis if I want to map it vertically then I would just have to set vertical to be equal to true I’ll have the same command over here and here I’ll set vertical to be equal to true I’ll remove this KDE equal to false from this I’ll also remove this particular retribute from this now if I hit on run you would see that I have mapped this distribution plot onto the Y AIS next we have a new geometry called as a joint plot plot so this joint plot is a combination of a scatter plot and a histogram so as you guys see over here I have a scatter plot in the center and I have a histogram at the top side and the right side and I’ll be creating this joint plot on top of this Iris data frame so once I’ve loaded this Iris data frame I want to create a joint plot between seel length and petal length so I just created a scatter plot so for scatter plot we are just use SC scatter plot method for joint plot it’s just that we have to use this particular method we are passing in the same columns now when it came to scatter plot we had only this particular part but when it comes to Joint plot here what you see for seple length you would have the histogram of the seple length column as well similarly for petal length you will have the histogram for petal length column as well so this is an interesting point about joint plot we already have loaded the iris data frame now I’ll have to use SNS do joint plot and onto the xaxis I’ll be mapping seel do length and onto the Y AIS I’d have to map something so onto the Y AIS I’ll be mapping petal. length and that is pretty much it I actually have to give the data as well so the data on which I’m making this is the iris data set then here I’ll have PLT do show and when I hit on run so seems like we have an error over here so Seance so L has to be Capital let me make it capital L and you would see that I have successfully created this joint plot where I have this scatter plot in the center and I have corresponding histogram for seple length on the top corresponding histogram for petal length on the right side and over here if I want to change the color that is also something which can be done and we’ve already seen this throughout so all I have to do is use this color attribute and I have to give in a color for this and if I like the olive color that is what I’ll be going ahead and mapping it onto this attribute I add this color attribute and I’ll have Olive and as you guys see I have mapped the olive color for this joint plot now for this if I want a regression line through the scatter plot and also through the histogram I’d have to use this new attribute called as kind and for this new attribute kind I am assigning this value rig so as you guys see I have this regression line which is passing through the length values and The Petal length values and also it is passing through both of this histograms so here I’ll have kind and I’ll have the value reg set for this kind attribute let’s wait for the result and you would see that I have added a regression line which goes through the histogram and also goes through the scatter plot once I have done this let’s go ahead to the next geometry which is a box plot and to create a box plot we’ll just be using this box plot method and we’ll be creating this box plot on top of the churn data frame so we’ have to load this data frame first so this data frame tells us about the different features of a telecom company and on the basis of this features we have to find out if the customer will churn out or will stick to the same company so here we have the churn column and the tenure column the Chon column I’m mapping onto the x-axis the tenure column I’m mapping onto the Y AIS and obviously I’m building this box plot on top of the churn data frame uh one interesting attribute about a box plot is that box plot can be mostly used to understand how does a categorical value change along with a numerical value so that is why here we have mapped this categorical column churn onto the x-axis and this numerical column tenure onto the Y AIS and we see that so this what you see is the median value which we have already seen so when it comes to people who do not churn out it seems that those people who do not CH out their median tenure or their tenure in general is longer than those people who actually churn out so I would have to load this data frame first I would have to store it in the ch object so Chan is equal to pd. read CSV and inside this I’ll have churn do CSV and then let me have a glance at the first five records of all of the columns and these are all of the columns and for all of these columns I’d have to make a box plot between this tenure column which would go on the y axis and the Shone column which would go on the x-axis SNS do boxplot and onto the xaxis side have to map obviously the tenure column onto the y- axis I am mapping the churn column then I’d have to use the data which is Chun and I’d have to show it out so I’ll have PLT do show so I actually made a mistake over here so tenure will go onto the Y AIS and Chon will go onto the X access now we get this box plot and we’ have already seen the inference it seems that those people who do not shown out this their tenure seems to be longer than those people who actually Chown out and now this time we’ll be creating a box plot between the internet service column and the monthly charges column so we have the monthly charges column onto the Y AIS and the internet service column onto the x-axis and we’ve got these three different categories in this internet service column so the internet service can either be DSL fiber optic so this no means that the people don’t have or people haven’t subscribe to internet service and it is very clear that those people whose internet services fiber optic they would have the maximum monthly charges similarly those people who do not have internet service their monthly charges is minimum so when you compare this box to these two boxes it is very evident that people who don’t have internet service their monthly charges are very very low I’ll copy the same command over here but on the yis I’ll have monthly charges and on the X access I’ll have internet service and this is the resultant box plot which we’ll be getting now we’ll go ahead and make another box plot between the contract column in the tenure column tenure column would go onto the y- AIS contract column would go onto the x-axis and we can have three different types of contracts month-to-month contract one-ear contract and a 2-year contract and if we look at the tenure of it so let’s actually look at the median values of the tenur so it seems that if the contract is of month to month then the median tenure is the lowest similarly if the contract is of 2 years then then the median tenur is the maximum and we are setting a pallet over here so again we can have different pallet so the pallet which I’m using is equal to set one onto the Y AIS I’ll be mapping the tenure column onto the x axis I’ll have the contract column let me write in contract column over here and uh the data will obviously be the churn data set and what I’d have to do is I’d have to use a pallet and the pallet which I am using is equal to set one and this is the resultant box plot now you see these boundary lines over here if we want to change the thickness of these boundary lines we can do that with the help of this line width attribute so here I am setting the line width to be equal to three if you compare this particular box plot with the earlier Bo plot it is very clear that the thickness has increased the same code I’ll actually have tenure and contract over here onto the x-axis I’ll be needing contract and I will use this line width and I’ll set this to be equal to 3 and you would see that the line width has increased substantially and after this let’s say if I want to change the order of how these boxes are present so here initially the boxes were present in the order of month to month one year 2 year but instead of this order let’s say if I want 2 year first followed by month to month then after that if I want one year then I can use this attribute called as order and inside this I’ll pass in the list which will comprise of the order in which I would want these boxes to be present so here I’ll remove the line width and instead of line width I’ll use this attribute called as order and first I’ll have two year after that I’ll have month to month then finally I’ll have the last box which will be one year and you would see that I have changed the sequence now if you want to add colors on the basis of a column which we’ve been doing throughout that can be done with the help of this Hue attribute and I want the color of all of these boxes to be determined by this payment method column so here I am mapping this payment method column onto this Hue athetic and as you guys see I have these four different payment methods I have electronic check mail check bank transfer and credit card so electronic check so this particular box or where all of these boxes where the color of the box is purple or dark blue that denotes electronic check then we have the box where the color is orange that would denote mail check and if the color of the box is green that would denote bank transfer and if the color of the box is readed that would denote credit card so here I’ll add this attribute called as Hue and I want the Hue to be determined with the help of this payment method column and you would see that I have four of these over here so I have four boxes with respect to these three different categories ready to explore the Forefront of Technology generative AI is our next STP we will demystify how AI can create new content and show you how to implement these Advanced models using python think of a magical box that could materialize everything you could imagine a box that can create a new video write you a story draw a lovely picture or even record a song it sounds like something from a story book isn’t it well it’s generative AI not magic hello and welcome everyone to this video where we are going to examine how this incredible technology functions how it is changing the world today are you prepared to discover ai’s magic let’s get started [Music] now so let’s start with quickly understanding the evolution of computers when the computers were created they were created as calculating machines for mathematicians and bookkeepers then then it evolved to understanding programming languages so that it can understand instructions human instructions but now it has evolved too incorporating humanlike intelligence as well as creativity mimicking humanlike intelligence is nothing but artificial intelligence and artificial intelligence combined with creativity is nothing but generative AI so let me make you understand with a very simple example what is generative AI transport yourself back to your childhood you had a lot of lot of toys to play with you would keep that toys in one box now also imagine that if you wanted some toy which is different you would not get in the market but what if I tell you that this box is a magical box and if you input your under understanding of what you want in your new toy with instructions it can create a new toy for you which is not available in the market now this toy can be a beer with unicorn features and wings what if it generates for you this magical box generates a toy which is very unique for you this magical box is nothing but generative AI generative AI actually is not a magic it’s a fast and rapidly evolving artificial intelligence system which creates generates transforms content that can be text video audio image Etc based on your input so if you want to understand it technically generative AI or gen aai functions by employing a neural network to analyze data patterns and generates new content based on those patterns neural networks are nothing but a mimicry or a replication of your biological neuron based on how it gets from brain the activity from brain and you do your work it’s nothing but a mimicry of that based on that mimicry it analyzes data patterns and generates new content for you let’s Now quickly see what is the difference between discriminative and generative AI suppose you have a data set of different images of dogs cats you provide this as a input to your discriminative AI which acts like a judge and it classifies all this into set of images between cats and dogs this is discriminative AI it classifies now let’s understand what is generative AI you have the similar set of cats and dogs but now your generative AI is acting like an artist it creates a new species of dogs for you that’s why generative AI is nothing but AI system that transform creates generates your own content based on your instructions like an artist now that you have UND OD what is discriminative AI and what is generative Ai and what is the difference between the two let’s understand why is generative AI or gen AI trending gen AI has impacted various Fields be it text audio video any input and those inputs in various domains like data management Tech Healthcare and entertainment it has creative applications such as as di chat GPT where you can input what you want and get output from it for example if you want to create an image what you think or perceive as a concept and you want it you give a prompt for your generative AI model and it’ll create that image for you so your input is a text but your output is an image that’s why it’s trending it does not depend how traditional AI is dependent on what form of input you give the same form would be your output however gen AI works on your inputs on your instructions that’s why it’s trending it is impacting a lot of fields be it creative field be it research field be it business professionals are using tools like chat G to create or generate code so that they can create something new the researchers are actually developing new and new large language models based on which we can create new generative models and can do new and new task each and every day that’s why generative AI is evolving rapidly and that’s why is close to Magic for everyone now that you have understood why it is trending now let’s understand how it it works we give an input to generative models gen AI works on generative models we give an input it can be text audio video any format those generative models are then preened on the data and they are fine tuned to do the task that you want it can be teex summarization it can be sentiment analysis it can be image generation it can be audio generation for your YouTube channel or analyzing your customer feedback if you are a brand or a marketing firm it can create codes whatever you want you give a prompt what you want explaining it that what you want and it fine tunes and gives you that task for you so this is how in nutshell generative AI model works so now let’s see what are the different types of generative AI first one is generative adversarial Network Gans it’s a type of AI where two models one generating the content and one judging it work together to produce realistic new data second is variational autoencoders this AI learns to recreate and generate new similar data third is Transformers Transformers is an a a i which learns to produce sequences using context fourth is diffusion model which generates data by refining noisy starting until it looks realistic now that you have understood what are the different types of generative AI let’s quickly walk through different applications of generative AI first one is content generation it creates it generates whatever textual or any code that you want customer support and engagement if you are brand firm it helps you with that data analysis and data science it helps with visualization it helps with analyzing any data it be it any data you want you are a brand firm or you are a technology firm it will help you analyze your data and create new automated task for you or it would create new perceptions for you to take over then it is code generation and software development we have research and information retrieval as well where it helps different researchers it helps different professionals to grow and retrieve extract information required from different or various data sources then we have machine translation if you are a person who do not understand a language and you’re watching something or reading something which is in different language which you can use generative models to translate text or audio or anything into the language that you require then we have sentiment analysis which actually takes feedbacks or any text that you have to give you is it a positive negative or neutral sentiment and so that you can analyze and take decisive decisions other domains here include Health Care transport everywhere it helps generative models generative AI is helping each and every domain in their perspective how they are applying this technology change in their domain so let’s Now quickly conclude what we have learned in this video we learned AI is a super set we have a subset called machine learning which trains your machines to do what you want but there the machines need your for input deep learning is a subset of machine learning which incorporates neural networks which mimics your neurons so that it can imitate human intelligence then comes generative AI which involves creativity introduces creativity in artificial intelligence system then comes large language models large language models are basic bits that you will learn in our upcoming videos so stay tuned just before we conclude let me tell you different generative AI tools which are in the market and which you can explore some of it are charity by open AI clae by anthropic AI co-pilot by GitHub Gemini by Google you can go and explore the world however stay tuned to our channel so that you can learn more about generative AI large language models prompt engineering and several different buzzwords that are there in the system let’s start with the first topic overview of python when you hear the name python you know the various applications of it first and foremost thing it is a high level programming language which is very unique compared to other high level programming language why almost it will use English like statements in order to execute the code it’s very easy to learn as a beginner this particular Python language now why do we use python in generative AI it’s not about generative AI it’s about python is already having a well supported set of libraries which is already in use since years with respect to domains like data science machine learning natural language processing deep learning Etc now artificial intelligence and generative AI is grabbing the libraries which we have already in Python other programming languages are also used but I could say python is a versatile programming language which makes life easy for the people working in this technological domain after understanding a overview of python let’s quickly hop on to the next topic introduction to generative AI applications which is the core concept which we have to learn generative AI refers to algorithms which enables machines to produce content that is not only new and original but also includes a reflective data and it will be always trained according to the requirement right generative AI deals with a lot of models what do these models include G that is generative adverse networks vaes variational autoencoders and Transformer based models such as chat GPT right what do we do with this generative AI applications it’s very important in order to train the algorithm or the machine in order to keep it updated the more you interact with this the more it gets trained that’s how simple it will work and generative AI helps you to generate your own models how you want to train that particular model you can train it accordingly just like simple example how does the scientist train the robots each robot will do its own different work right hope you would have seen the requirements are different the catering of requirements is different hence the models will be trained accordingly with the help of generative AI yes it includes lot of other Technologies deep learning neural networks Etc but still generative AI is also a base of it what is the significance creativity boost it creates enhances processes by providing very good content ideas new content ideas the new way to approach the problem efficiency it is giving a helping hand to human beings in order to be more efficient the more good you use the more productive you’ll be automates the content creation or saving time is very much important it’s a important resource now it aids to this particular Saving Time resource then personalization it generates particular personalized content as per your requirement as per the prompts you give to chat GPT that’s how it works right so it will cater various applications for the same this is the overall picture of generative AI applications now let’s talk about the next concept development environment setup how do we do this what is it all about you have to have a platform in order to work with you need to have a basement in order to build a building right so let’s learn how to to we build this particular basement so what does this thing consist it consists of few steps in order to set up a particular environment it is not dealing with much higher softwares or something from moon and stars it’s very simple you have to go to python official website and download the latest version for now it is 3.12 you can download that python into your local system system and you can execute this via command prompt right first step we have to open command prompt which we have in our local system and then we’ll have to navigate to the location where the python is installed hope everyone are having a clear idea of how do you work with Linux and Unix at least basic commands like CD change directory MK make directory so only these two commands are mostly used in this complete session I’m not going deep into advanced level of Unix Linux and all if you want to work with a command prompt you have to just use CD and MK command and you can make directory or change directory simple as that if you’re using Windows you can use command prompt or Powershell for Mac OS or Linux you can use terminal this is the platform you need in order to work with after navigating to the location where the python has been installed you can install all the libraries using pip Command right so pip install is a basic command and you can change the libraries you want accordingly first we will talk about numai numai is very well known amongst the domain called data science why the first thing is numai will always cater in order order to help the mathematical calculations also working with high level data structures and give you the complete access to the functionalities and arthema and Logics that is why data science is dealt with lot of data numbers and other elements we use numpy for the same then we talk about plask when you hear the word flask it is a library which is related to python where it is web based framework you can create web application using this particular flask framework that is the major help of using flask the next one is stream lit or stream liit this particular Library deals with visualizing the models created then you have torch torch vision and torch audio basically this Library cats computer vision models you can work with the model creation you can view the model and also you can add certain multimedia to the model created right you have this torch library in order to cater computer vision projects models Etc you have Transformers next Transformers will always help you in classification text summarization many other aspects again dealing with data and majorly we use all these liaries in machine learning artificial intelligence NLP natural language processing and deep learning also computer vision this is the applications of where this particular Library will be used using pip install we are always installing all this Library single-handedly not in Mass Library installation every Library will be installed along with the execution output command stating it has been installed it it will show you it is installed now still you don’t trust how do you check it verification of the installation is very important because since we are working with machine sometimes it might help you to have a better Vision when you verify if you don’t verify if the installation is crashed you never know it will affect your project so better verify once you install it’s very simple in order to verify as well you can open command prompt and type python double hyphen version it will ensure it Returns the installed python version what is this particular version you’re working with next you verify the installation of the libraries for that you have to just go open python interactive shell type Python and then import every Library which you have already installed if it is imported properly without any error then it is installed properly right so this is the overall development environment setup idea which you have to have and which you have to create in order to do coding in order to create certain applications or work with the project now we are in the command prompt in theoretical aspect we have known about various libraries in Python that is numai flask streamlet T Transformers let’s install the same libraries with the help of command prompt first if you could see it’s in a general path it’s in my personal path but yeah it is in C drive now in my personal laptop the location of the Python is being fetched for that I have to use CD command change directory paste the location where your python has been installed and then press enter when you do this the command prompt goes to this particular folder let’s start with the First Command pip install numile now since I’ve already been working with python a lot many times for many projects you will get a output just wait and watch I’ll click on enter it might take some time it will try to analyze what’s happening what they’re trying to install and requirement already satisfied this is what you’ll get the output that means numai is already installed in your particular system because we were already working and there is a warning message you could notice if you want to upgrade the particular Library which you’re using you can go for the version mentioned I am currently using 21.2 point3 it is suggesting upgrade for 24.1 point2 then what is the command for the same is also being mentioned here you can use that command we have now installed numai which was already existing it is given the message if in case it’s a new installation of Library how it will display let’s try it other libraries as well pip install flask and I’m giving enter let’s wait for the results again if you could see it states flask is already present that is satisfied again you have a warning regards to the version I have almost installed all the libraries but let me check for the next one stream lit if you could see how it is done downloading the streamlit library if you’re trying to install the library which is not in the current local system in your python this is how it will start loading if it is already existing this is the message which you got for numai and plk when you try to install streamlet Library which is not present in your python this is how it starts downloading and it takes 5 to 10 minutes at least to complete the download depending upon your system configuration likewise you can install all the libraries required for you into your system right so I have given two examples one how it will download the library which is not in your system if you already have downloaded the library how the message will pop up that is requirement is already satisfied that means it is already installed right so this is how you import your libraries in Python now in order to verify is your particular library is installed or not first it will try to prompt you that it is already existing if it is not it will start downloading as mentioned now again in order to verify that you have to go to python interpreter so I’ll click onto the same particular location type python here when you click enter it will go to the python interface where you can execute your code now what you do is you try to import numpy when you try to give this particular instruction to the python prompt inside the command prompt which we have logged in it will try to enter or import this numpy Library which is already existing when you type the statement import numpy if your numpy is present it will not throw up any error it will look just like this this indicates your numpy is there in the python Library folder this is how you verify the libraries which is already installed before using it or else if you mention in your code as well it will throw up an error if it is not installed before make sure you install the libraries then use it in your code this was a simple demonstration how you install and verify if the library is present in your python with the help of command prompt now let’s understand introduction to open AI GPT API how this particular thing works and what is open AI first of all what is open AI it’s a company where it will cater in order to work with chat Bots generative AI applications different kinds of models llms Etc basically it is dealing complete artificial intelligence domain which is booming nowadays open AI has a platform where you can generate the API keys and you can integrate those into your applications API features what are the features it will cater for text generation completion and conversation capabilities so talking about text generation it is always dealing with providing a new text which is not in your imagination with one small question say I want a poetry on so and so it will give you a complete poetry where it is not plagiarized it has been trained in that level it can think about writing poetry it has lots and lots of data behind how it is dealing with with that what is to be categorized there comes classification summarization and many other machine learning and data science models artificial intelligence models which is giving you the answer pre next completion if you give a prompt in a incomplete way it will try to complete that if you give with a spelling mistake it will correct your spelling and ask you back was this your IDE media do you want to search so and so thing it will question you back in a interactive conversational way what we do with chat GPT it’s the conversation how it will answer us with the help of already available data it has been trained on and it is updated every time you talk to it that’s how the model works with so these are the few features we have next comes to fine tuning and customization for specific task say you are building certain module which has been integrated to your application you’re using open AI platform you can
generate your own model it can cater to your own set of questions say for example chat bots in some or the other shopping websites or juary shop websites it will try to ask you what you want the lots of chat Bots which will address and also will help certain percentage of customer care services without human Intervention which can be done with the help of machine 100% it will be solved other aspects it cannot a very good example for this is swiggy right you can give a set of questions which is already present where is my order delivery guy is not moving so when you put this my order is getting delayed it will give a set of answer which is already there what is the current status still if you’re not convinced by the bot answer you can go for a agent talk you can talk to a human being where they’ll interact they’ll call the delivery guy and ask what is the situation and update you something like that might happen before introducing your particular chat to directly to the agent they’ll try to solve with the help of Bot that means we are trying to reduce the work which is put upon humans we are using the technology in order to address the same this is a best example for the Fe feat which is currently in use in the apps which we use in our day-to-day life how do we get start with this API we have to just log on to open AI website create your account sign up or if you already have an account sign in login generate a API key and keep it why you have to generate a API key I’ll let you after $5 of content you have to pay in order to improvise your API key in order to improvise your API key usage right you want to know more about what is open AI how does it help for GPT API everything you can just go to the official API documentation and understand more about this now let’s understand how do we generate a open AI AP a key for that you have to go to Google type open AI login once you click on login if you have already logged in you will get two options one is to go to chat GPD another one is to for API you click on API once you click on the API this is how your open API platform look like you could see a menu here towards your left stating API keys if you click on that it will launch API keys before that I would like to tell you I was talking about the GPT models right so these are the models available for now GPT 3.5 turbo 0125 d106 and 16k these are the models you can select the model and you can work on let’s come back to API keys I’ll click on the API keys this is how the API Keys generation look like and if you want to create a new API key click click on create new secret key and you can name that particular one I’m naming it as demo you can also give the restrictions if you have to control certain things it can be a readon restricted or all just like the share option you have in your Google Drive for your Google content right so create a secret key and it will generate and display the secret key there you can copy and paste it in one particular notepad so that you can use it again and again it is taking certain time to generate the key once it is done it will display and you will also have an option called copy for it here we are it states API key is generated and you can copy the key you can press as done see you have to save the secret key somewhere because it won’t be viewed again due to security reasons that’s why you have to keep it discrete and noted in a notepad separately you cannot get it back again if you want to again you have to create a new API you cannot copy this complete API key again the created API key is listed in the list here again you have the options to edit the key you can just change the name and permission nothing else you don’t have access to again copy the complete key and you can also delete the existing key this is how your API key Page look like in open AI platform hope you are clear how to generate these and save it in a place and use it for your coding now let’s talk about flask chat gbt app we are integrating open AI source to our application that is the main agenda of it let’s understand more about this application how do we work with this and also look at the demo for the same what is the basic setup we need is as simple as that which is mentioned before you have to have python installed in your system and all the libraries mentioned to be installed in your system that’s the basic ideology for all the demonstration which is carried in the session Hereafter the components we need is flask for web framework as I mentioned we use flask of python library for web framework and then open AI GPT API for generating responses a simple logic we are taking a API key of open API putting that in your python code and then we are trying to execute the same first we will check how this particular code look like and what are the in detail step in our Google collab note I’m not executing this in Google collab I’m executing this in command prompt but for a better Clarity I’m using the online coding platform that is Google collab in order to have a good interactive and bifurcation between the text and the code right Google collab is a very good place in order to work in order to have a good python content on let’s check out the code and understand what all does it do in order to create chat GPT app using flask library in Python now here we are on the Google collab first step we have to is set up the environment as I told we will activate the virtual environment of python what is this python M V and V Let’s understand one by one python invokes the python interpreter which is already installed in your system then MV and V this option always tells python to run VV module as a script this module is used in order to create virtual environments on that that is why we try to invoke this next again you have V EnV this is the name of the directory where the virtual environment will be created and it is not mandatory that you have to keep the second V en EnV as it is you can change this to be ABCD also or you can also put it as virtual environment it is not mandatory that you have to use the same name but with M you have to use V andv this is mandatory and the second V andv is optional you can change the name accordingly naming convention can be changed according to the requirements next after doing that setup we create the flask application as I told you we are using only two commands of Unix since we are working in command prompt first is make directory M KD r that is we are creating a folder with the help of command prompt that’s it there is nothing great that’s happening creating a new folder the folder name is GPT chat app and you are trying to change the path change directory CD to that particular ular location and remember wherever you have installed your python software that folder itself these things to be created we have to first navigate to that particular python location then only we can create a new folder else there will be a execution problem and path issues after doing the folder creation we will have to create code file first is a python code file which which I would like to name it as app.py application.py again this is not mandatory you have to have AP you can name it accordingly but you have to remember what you have named while you’re executing this you have to remember the exact python file name including the cases it is case sensitive okay first we will import the flask elements first is flas library next request Json and render template then we will import the requests and also import time these are the libraries we’ll try to import which is available in Python to our particular code we will try to use request and render template also the timing in order to have the conversation between the system that is Char gbt which we are trying to create and our questions then we will initialize the flask application this is the flask application initialization syntax we will try to give a open API key this is a secured key which you should not share with anybody else or else they can utilize and you have to pay the bill for the same better you keep the API Keys very discret this is a random API key it’s a sample API key or else you can just put in your code enter your API key here this is far better rather than giving people your original API once you put this API key you will next Define the root of the homepage where it has to interact from obviously you cannot show this backend code to the user you have to have a front end you have a front end that is called index.htm there comes the second core file first one is having ap. py core python file next it has to be integrated to the front end that is index.html right we will render the particular HTML template that is why we’ll be using render template Library okay we have usage of these libraries everywhere then we’ll Define the root for chat end point which accepts the post request post request is nothing but what message you put to the GPT and what it has to respond back and this complete thing will happen with the help of Json then you get the response from gpt3 and remember there’s lots of GPT models which one you’re using you have to have the knowledge about it you have GPT 3.5 turbo 16 K you also have just GPT 3.5 turbo you have many kinds of model the current model which we use you have to mention it here and you also have to carry the input given by the user from the front end to the back end with the help of this messages the data should be transferred from the front end to back end what is the maximum limit of the response is 150 letters characters it’s not words okay it is very minimal if you want to make it more obviously you can make it 300 again it is according to the requirement you are curing for then you have to attempt to get a response from API which tries in case if it fails now comes the word of error handling the code which is not having error handling capacity is not a worthy code simple as that if something goes wrong first you have to let the system give you the message that something is wrong not directly land to a page it should be interactive and it should tell the user whatever you have entered is wrong or something has happened what has happened this particular responses should always be there for example I’m giving you possibilities it’s not that every coder will be knowing everything what they have to do right but still there are few standard error handling techniques when you work you have status code 200 when when this particular 200 status code comes 44 error comes 429 comes right how do you handle that what is the error what is the particular response you give for example if it is for 200 we can return the message to the user rather than going to a random wrong page you have to give a message an error occurred while processing the response from open API that means if your GPT is not connected prop it is not able to give response then you have to just not push that particular code to a error page you have to send an error message you have to tell this next you have 429 here we are trying to request open AI if fail status again we are trying to reattempt how many times back off retrying attempts are two we’ll try to do two time attempts and then we will go for sleep that means we are putting this particular system into sleep that it is not able to solve the more you work with it the more limit exceeding will happen and 429 also deals with if your particular open AI is out of limits it is not having any um limits left it is exceeded you have to buy new you have to put your building again it will say you have exceeded your current quota please check your plan and building details so that’s how you have to try to give error message to the user so that they understand something is happening we have to go and address because nobody will go to back end and debug what is the error right in the front end itself you have to show what is happening so this is sample example of error handling then if any other error comes more than this there are two errors which have listed if anything else comes up you have to just give the status code directly 4 not4 error or Internet disconnectivity error anything might come an error occurred while communicating with open AI is a standard default error message you can send if you don’t know what you have to do just put there is an error please decode then comes run the flask application this is the main method which we create for this code and the code execution starts from the main method here now comes the second part of it the front end which we had discussed already there and what are the complete content of that we’ll have a quick overview that is index.html here you can see people who know HTML will always know this doc type HTML you have head you have HTML Lang English and meta character set is always there you have style for your particular page and you also have the body here you have a chat box you have a text box you want a button it’s a simple thing you have to have a text box where the user will put their input click on send button so that it will interact the chat gbt in order to display the chat GPT message you have to have a label or again a text box so that’s how it will work it’s a simple JavaScript which is been used in order to have this interactivity that is fetching the information from the input and putting that to GPD and taking the response from the GPT and putting back on the front end to view for user so this is the simple fundamental function that happens in this script section how do you run this just you have to be in the location where you have created the folder that is GPT chat app right I’ll just go back and just give you overview GPT chat app that is the location where the command prom should be pointing out then you can execute python ap. py when you do this you will be able to access a browser where it is loading in this particular address what is this address why only 5,000 why not 4,000 you might question as you all know HTTP 127.0.0.1 will always deal with local hosting when you do this local hosting you have separate ports for every library or every kind of execution you do 5,000 is the port number which is allocated in every local system for flask library of python any flask web framework code execution you do it will launch on the Chrome with this particular address hope you had a complete detailed view of how this particular application will work a quick cap you have to install Python and necessary libraries then you have to create a main python code file that is app.py then client side that is frontend interface you have to make it index.html again this is as per your requirement this is a common name which we keep that’s why I’ve used the same you can create a simple HTML interface to interact with the chat GPT then you can run the application and check for the output right so now that we have understood what is the code at the back end front end and every aspect let’s execute this code and check for the output before going to the demonstration of flask chat GPT app let’s understand the folder structure I am here in the location where my python is been installed since we’ve already worked on you could see many folders here we are trying to create GPT chat app right according to our steps we’ve already done it so if you go to this particular folder you can find two different elements one is templates another one is app what is template template is actually the index file which we had discussed the HTML file app is a main program once you execute this the back file will be created if the execution is successful or not successful doesn’t matter once you run this through interpretor it will generate automatically that’s why it is present if you’re executing for the first time this will not be there okay now let’s hop on to the command prompt and check how does we work with this here we are in the command prompt and in the location where our file is am I right no I’m actually wrong we are in the location where python is now we have to enter to the folder created what is the folder we created we have to change directory to that particular folder GPT uncore chatore app this is the folder name which we generated right let me enter to that see now we are in that folder how do we execute the steps which I mentioned we have to type Python and we have to mention the app.py or the name which you have given to your main python file you have to mention that and click on enter once you click enter after executing this app.py file this is how the output looks like are we in the right output screen no it is just indicating that it is been executing it is running the location is we have to go to http 127.0.0.1 5000 the port number let’s quickly hop on to that location on our search engine any browser you can use you can go to this particular port number let’s hop on to that once you go click on HTTP the same ID where it has been launched across you will find the interface now what you have to do you have to communicate with the GPT so I’ll press hi and click on send button it will say hello how can I assist you today the next question which I ask is how are you when you do this when you send this and just a computer program so I don’t have any feedings but thanks for asking how can I help you so this is how it is trying to interact with the human being if you try to give something which is not existing still your chat GPT is not trained to that level it is a normal basic model I’ll say where do you leave I click on the send button you have exceeded your current Kota please check your plan and billing details it will not throw up this error really if your limits are exceeded right that is when it will show this error it will try to do that error handling which I’ve already mentioned so for the third conversation itself how did we get this message you might be having this particular doubt the thing is open API API key is not very much free to everything you only have access for five worth of conversation that can happen API key that can generate that is how you can converse after it exceeds $5 it will try to ask you to fill up and select the plan and do the billing right the payment should be done for the same so this is just a simple example you can enhance create you can buy a paid version and start building the projects and help your small scale business if you own any in order to have a private chat bot so customers can interact without any actual agent service required customer service you need not take it you can use the Bots there on your website right this is a simple idea this is how the execution looks like by now we have understood how does chat GPT while using flask how we can execute what are the code required and how the outputs look like now that we have understood and also saw the demonstration how how does a chat GPT app work when you create with the help of flask Library using python now let’s check out the next topic using the same flask how do you use text to image application here the simple idea is text to image generation involves creating images for textual description using AI models you will give a simple description here we are not focusing on description we are trying to get a image for the word which we give as I told cat dog any animal or what you want to fetch for significance of this particular application enhances creativity and design processes useful in various Fields like advertising entertainment and virtual environment say you want to uh get an image you can give a description cat which is sitting on a mat or dog which is sitting on a bed you can certain description you will get images in certain way or sketched cat image drawing of a cow so you can give a certain description to AI it will generate back the output for you how do you implement this particular text to image app first is we build a web application that converts text description into images again if you want to build a web framework it is about flask then you use open AI again HTML CS is for the front end that is very much mandatory and basic what are the prerequisites you want for this first is python to be installed in your system next you have to have a required library that is flas and open API and you have to have a API key from open AI this is the basic requirements it should have in order to start off with the development of this application now let’s understand what is the code for this particular app what is that purpose and what all we use here then later we will execute this hope we are clear now let’s quickly hop on to Google collab understand more about this application here we are on the Google collab first step if your python is not installed install your python if already exist ignore simple as that again create virtual environment we already had the description about each every element of this particular code statement then we activate the virtual environment by using this particular code here next comes installation of flask and open AI it’s very important to install the libraries which is necessary for your coding first place we’ll be using pip command to install flask open AI it’s a simple statement here the code line you can just execute the same then we have to create the project directory again nothing but the new folder it is named as flascore textor 2core image if you want to put some other name it’s left to you you have to go to the folder which you have created then only you can start creating your python code file and HTML code file first thing is main python application code file which is again named as app.py it gives you a proper signification it will not mix with the previous one because the folder is different so again we have to import the necessary libraries we initializing the flask application you have to have a open API key you can replace this your open API key into your original open API key how do we do that then you have rooting which has to go that is index HTML in this HTML file you have all the designs related front and related that has been fetched and you will be rooted with the help of function call generate image as a post method we’ll be using Json post method means the response which you get from chat GPT right either it might be your user input also access a post and also the response will be also post use open API to generate image based according to the prompt which is been received the size should be only this much and the number of images generated at on should be one only then the prompt which is given by the user will be pushed to open API it will get a response and then that particular image will be displayed if you want a detailed explanation of what is every line means I have it for you you can just read it what are the different elements we use and why do we use right next you have to create this HTML interface that is the front end again you have to have a text box a button and where you print your prompt and then you will put that inside the GPT it will fetch the output on the same screen right you have to have a simple text box and a button that’s it if you want to do more styling you can more welcome use CSS files and you can do it this is a general basic setup or the front end which you need and you have a script again your function call generate image here what happens it will fetch the information the prompt from the user and then it will put that particular prompt to open API once you get the response from open API it will push back the response on the front end this is the code for the sing right it’s just an interaction code between the front end and back end we’ll be using JavaScript this is how about the HTML file we’ll be using again if you want to run this code you have to type python AP . py and you have to be on the same folder where you have created at the start if you go somewhere navigate to some other location on your command prompt and if you try to give it will not execute let’s have a quick recap here first is we’ll be installing python next library is called flask and open AI later we will create a flask application that is app.py then we will also try to include the functionality of converting text to image that whatever the text we have given related image will be provided so we have to root for that and you have to have a simple HTML interface in order to have the connection between the user and the system then you have to access and run the code start the flag server and again you have to go to the same location that is the same IP address which ends with the port number 5,000 so this will be your particular location address it will run there you can execute the same now let’s quickly check how does this work in our demo now here we are in the python location of the local system we are trying to execute flask text to image app if you try to go to that particular folder you could find the same folder structure it is having a main python code and then you also have index in the template right once it is executed back file has been created so that is why they are here this is the structure now what we have to do go to command prompt type this particular location and try to execute with the help of python app.py command so I’m copying this location completely going to command prompt and changing the directory to the copied location now we are in the folder flask text to image application which has been generated we straight away try to execute this with the help of python app.py command once we do that we will click on enter this is where the flask server is been running it is active now we have to go to the location which is mentioned right here with 5,000 port number let’s hop on to that particular location once you come to this location you could see the basic HTML design which we have made and it’s our time now to give certain description regarding the image and try to generate the image I’ll give just one line of description if you want you can in detail description so that the GPT will give you a right perfect required image as per the command I’ll try to give mountain with skylight okay so let’s mention color also that is that will be good so mountain with green Skylight this is my description of a image which I need I’ll try to generate okay this is how we got the image from the GPT it has given the lights which is in green color on the sky and mountains are right here so this is how the descriptions will be taken care of the more precise description you give the more precise image you will get as an output so this is how text to image application will work with the help of flask open AI in your python which also help to generate the images for digital content creators or any kind of creative people who work in that particular Feld let’s understand how does Lang chain apps work what is Lang chain in Python overview of Lang chain Lang chain always streamlines the development process of the application and utilize the llms by offering a extensible architecture generally simple words langin is a library of python just like numpy and others okay it supports wide range of use cases generally we use Lang chain in order to create assistants chat Bots and many complex NLP tasks and data analysis aspect this is the application of using Lang chain then the framework is built with highly customizable Interiors of the code and then we also develop to tailor specific needs and we also integrate the same tailored code or module to the external data sources using API keys this is the simple work which we do with the help of L chain app it is just that we are using this library in order to create good model which acts to be a chatbot or personal assistant or any other requirement will be catered with the help of L chain application now in order to understand more about this we will try to know the case study for this Lang chain app let’s Explore More again I’m going towards Google collab let’s understand the code and later part we execute that in the command front here you have to note one thing we are not going to the Google Chrome where the IP address ends with 5,000 we are executing this in the command prompt itself this is one of the differentiation between what we have already seen and what we’re going to see let’s let’s hop on to Google collab now here we are on the Google collab what we are trying to understand what is the case study first thing personalized story generator that means it will try to take certain inputs from the user and try to generate the story for the user this project will take inputs might be the character names settings and theme of the story it will generate unique story every time you try to communicate with chat GPT 3.5 why I’m struck with 3.5 there is four and 40 that’s coming right but when you go to open API it’s still at the 3.5 version itself it is having 16k 1105 there is some other codes that’s going on it’s just a turbo GPT 3.5 you have many kinds of models but for now it is 3.5 in open API platform not talking about the chat gbt 4 or 4.0 okay don’t get confused with that steps in order to create this project very simple set up the environment collect the user inputs generate story using AI model and display the generated story simple as that first when we talk about the installing of libraries here we have to install open AI Lang chain it is related to open AI also related to python so pip install open Ai and L chain both of these libraries we have to install then in order to collect the input from the user you have to have two different python files here so that is the differentiation previous demonstration we had only one python file one front end file we used to work with the code here you have two files what does this do first one says user input. py that means we are trying to welcome the user and take the input from the user here you could see welcome to the personalized story generator you have entered the main character’s name please enter that then enter the setting of the story and enter the theme of the story for example Adventure mystery horror anything as such return the character setting theme to the particular file called story generator. py you are taking input with the help of one python file and you are trying to give that particular collected input to another python file that is story generator P from Lang chain import chain prompt text model then use user input as I told you user input file you have to take all the user input get user inputs what is collected character name settings and team this is collected you have to take this as a input and import that into this particular story generator python file this is the function where you can just create certain story according to the inputs given by the particular user then you will have a prompt you will have to work with a text model as I told you this is GPT 3.5 turbo here and Here Comes Your open API key you have to put your secret key here and then you have to execute this particular main block it will try to give you the story generated here in the print statement generated story is so and so a paragraph of a story will be displayed for you so this is this is how the main block will get executed and these are the commands or the codes which we use every code is having a self-explanatory comment that you can read and understand once again if you don’t follow it here okay this particular learning material or code is always provided no worries you can go back rework on this again then what do you do in order to display the story you have to execute the file how do you execute story generator. py here why are we not using python we have to use Python right it should be python story generator. py that’s how it will execute simple as that you will have a quick recap here first is environment setup that is you are having python in your system you have two libraries that is open Ai and L chain then you have to have your own API key which is discrete you have to create main script that is story generat data and you also have to create a subscript that is user inputs then you have to generate the story functionality that is open as chat GPT you have to use that and you have to give them the character name setting theme Etc it will develop the story and if you execute it will give back the story which is already developed as simple as that hope this is very clear for you now let’s see the demonstration what is the output and how it will work we are trying to execute personal personized story generator which we have already discussed that we are using the library called Lang chain here it is you have two different python files one is story generator one is user input it is already explained user input is used to take the input from the user and story generator is the main app you should not execute python user input. py you have to execute story unor generator. py that’s how you will get the output screen this is kind of special execution that every output is seen on the command prompt itself we need not navigate between any other locations for output what is this py cache if you click on this folder after you compile your code this is actually generated compiled python file will be generated so that is why it is here now let’s quickly hop on to our Command Prompt and try to execute this particular code file in order to do that first what we need is we have to copy this location where it is actually situated the folder of your app now we are on the command prompt we are changing the directory and pasting the location which we copied and clicking on enter we are in the folder called personalized story generator what we have to do we’ll try to execute python story uncore generator dopy once you click on enter this is how it starts executing welcome to the personalized story generator and I’ll type a name of the main character as Alise and it will ask setting of the story where it has to happen I can say Enchanted Forest I’ll give the location visualization idea for the GPT I click on enter it should be a mystery one or Adventure one or horror one whatever you can mention that I’ll mention as adventure story I’ll click on enter see the story is generated in this form you can read the story pausing the screen but yeah it will include the main character the setting of The Story also what kind of story what is the theme of the story it will try to give you the complete paragraph which you can use it for your requirement this is how a story generator will work using Lang chain you can create much more applications this is of one basic example hope this is clear for you we have executed the code we saw the output how does the story will be generated with the help of GPT which we have connected with the help of the API key let’s make life easier with python for automation you will learn to automate rep repeative tasks and even building user friendly guis what actually testing is let me take you to that right here okay so from the one simple word which we have here testing okay let’s first of all not go too much into the uh into the technical definitions or something like that if I just simply talk about that what testing is in simple General language right what do we say testing is basically to test out something right so testing means that let’s say you are having any idea or any app or something you have developed onto your own right now you just want to test that out that okay is this a thing which is ready to go in the market is this a thing that I can give to the people or something like that right so in the same procedure in the same way when we talk about testing in software development field what we see that whenever you are developing out any software any product any component let take it as a uh website take it as a application anything you are developing any product I’m just talking about here right what we have to do we have to analyze that right we need to see that okay what are the features I have added into that right after that we need to evaluate that okay what are the components in which basically we are having the errors or the bugs that are faced out why is that necessary to do that is necessary to do so that whenever your product goes into the market it is delivered into the market it is totally free of the errors or the bugs we all are familiar with that if there okay let’s say you made out a login page let me just quickly take an example here let’s say you made out a login page right in that login page basically let’s say everything is totally and clearly mentioned and you had just attached out some data base to that as well fine now whenever you are just running that out let’s say whatever the US username or whatever the password a person is saving onto that login page that is not getting saved again and again that is showing the error and you have already sent that in the market what is that that is a type of error which is coming into your product which you have already sent into the market right so that doesn’t uh go in a right way so this is the use for testing that why you new uh used to and why why basically you just need out to do out the testing and if you have done out the testing at your end for first of all you have just removed out all the errors you have removed out all the bugs which you were having into that after that now when you were just figuring out and giving it a test in that case what you just figured out that okay when I’m entering the username and when I’m entering the password so that is not getting out saved so I just need to figure this thing error figure this error or figure this bug whatever is there into that so that whenever it just gets delivered into the market whenever a person buys out this application or whenever someone logins onto this particular page so that particular person does not faces out any error right this is what we actually want what we want is that whatever the things which we are making that are absolutely correct and if a person is using those things a person does not should not actually face any type of difficulties or any types of error in that so this is the use this is the point where you need out a testing right right now here we are just generally talking about the testing thing we are not going that you are testing for a software or you’re testing for app or you’re testing for anything we just not going into that particular thing right so when whenever we just develop out a software component or you just develop out any project we need to analyze that we need to inspect its features we need to go through the features which you have added we need to evaluate whatever the what are the components you have put onto that particular application we need to analyze we need to evaluate that are these components are these features which you have added into this application added into this product are that errors or bug free and if yes so whenever and why why basically we just need to check out that is that error or bug free so that whenever you just get whenever this product of yours get delivered into the market so whenever the user uses that product product actually so they do not face any types of errors or bugs it is totally free of any error or any bug right so now this is the point where we actually need out the extensive testing of the software if I just talk about the software or if I talk about product so this is a place where you actually need out the soft testing of the software right now when is testing done I just explained you that what testing is what’s the use of testing now when is that actually done so testing is done whenever your application is built out right whenever you have built out your application after that you just test out give it different test cases give it different databases that all we’ll be discussing in um a little while so I would just give you an idea that you just give out different test cases you just def like give it out different databases and all those things so whenever your application is actually ready okay whenever your application is completely built out and that is ready to uh ready to be get tested so in that case we just do out the testing and we just deploy that into the different test servers or the test environments which we are having so that whatever the testing is to be done with that particular application we could just perform that out right let me just again quickly go over that what testing is and when is that done and why do we need that so once you develop out a software component or a product so we have to analyze and inspect its features and also evaluate the component for potential errors and bugs so that when it gets delivered in the market it is free of any bugs and errors it is the point where we need extensive testing of the software right and when it’s that done so testing is done when the application is built is ready to test and deployed in the test servers or the environment right this is what we uh I could just let see about the testing that testing is basically to test out its features that do you have any errors or bugs if yes then to clear that out and if no then it is absolutely ready to go into the market and it’s totally free of bucks and errors right hope you first of all just got the idea regarding what is testing now we’ll be discussing out that what manual testing is so we discussed already we had seen that what is testing now there are two types of testing which we have here in the selenium first of all is the manual one and second one is the automation so here we’ll be discussing about the manual testing let’s get started it let me just move on to the second one fine now um again I would see you that let’s not go to much into the technical things right here let’s simply understand that what is a meaning of word that is manual if I talk about talking manual in a simple English language so I would say manual means that anything which is done manually right anything which is done by you done by manually that simply talks about the manual and if I talk about testing so this is one thing which we have already discussed that we just imp Implement out the different test we just Implement out the different features we just do all of these things to make our product error and bug free right so here if I just say if I just combine the simple manual and simple testing things so I could just say without any technical definition or without any further like that things I could simply say that the testing which is done manually is called a manual testing isn’t that simple right yes that is so I would just request you not directly go into the technical definitions first of all try to analyze that okay what is the name of the topic simply the name of the TP topic is manual testing manual means anything to do that is manually testing you already know to test out your software to test out your products whichever you had made so that whenever they just get delivered into the market they are totally bug free right so this is where uh this man testing definition comes now if I just talk about the things in a very detail so I would say um that manual testing means that uh the application which you had made out the application which is actually developed by you the product which is developed by you so here will be particularly talking about the application okay so now from here onwards i’ be taking the word which is application so manual testing means that the application which is basically the application which is made that is tested manually by the testers this is simply what is there in the manual testing right so whenever you had made out any application and you just test that application manually right so that is actually called as manual testing now when you are doing out the manual testing so in that case what are the things that are to be performed so the test which are there actually they need to be performed manually in each and every environment using different different data sets in the starting as I mentioned about the data sets right that we take at different different data sets and even we just give out some test cases and then try to implement out the and test out our software manually test out the product test out the application actually manually right so whatever the test you are performing manually that is done under the manual testing whatever the test you are performing they need to be performed manually in every environment which you are having right now in every you’ll be giving out different different data sets after giving out that different data sets you will even note down the rate of success and the failure okay whatever the transactions you are giving whatever the data sets you are giving for each of the data set you will be noting down the success and the failure rate that all will be recorded right this is what happens in actually manual testing let’s say you develop out an application right let’s let’s that you just developed out any application in that application if you are if you just want to test that out so if you are going to go through the manual testing procedure so first of all you need to test that particular application onto every environment which will be having different different data sets for every environment and even you will be noting down what is the success rate and whatever the what is a failure rate for each of the transactions for each of the data sets on which you are performing out the things this is what is actually done in manual testing right all of the things are recorded but this is all about the manual testing first of all that what it is and how we just do out that particular thing next when I talk about manual testing so I would say that it is absolutely mandatory means it is very important it is important for uh every new developed software being before automated testing so now whenever we are going on and we just let’s see just developed out any new application you just developed out in new new software in that case it’s mandatory to go for first of all for the manual testing then go for the automated testing I would like it is mandatory for every new developed software to go under manual testing before the automated testing what is this automated testing that we are going to discuss in some few minutes right so let’s not go that too much into detail onto this automated testing but the way which I had told you that is uh breaking out the vs which is so you just break out the word automated testing into two parts first one would be automated and second one would be testing so if you are breaking out both of these and figuring out that what’s the meaning then absolutely you are right the definition which you are thinking for the automated testing that is absolutely correct right I’ll be proving this thing in within a some time right first of all let’s discuss about manual testing in detail now what happens in manual testing when you are doing everything manually you are uh testing in every environment you are testing on different data sets you are giving it different cases you are noting the success rate you are noting the failure rate all of these things when you are doing so that will absolutely require a lot of time and even a lot of efforts are required but when you are doing anything or manually when you are doing anything onto your own when something is tested manually by the testers so yeah it absolutely gives you the short of a bug free software because the machines are not too much that much automated that okay they give you the shorty of a bug free software but if you are doing anything onto your own so yes that gives you a complete short of a bug free software so if I talk once again about the manual testing so in that manual testing means the application the web application whichever is made by you or any application is tested manually by the QA testers so the test which you are performing that needs to be performed manually in every environment using a different data sets and the rate for the success and the failure transactions should be recorded as well why is manual testing so manual testing is mandatory for every newly developed software before automated testing this testing actually requires a great effort and time as well but it gives you the bug free software shity of a bug free software right this is about the manual testing now if I talk about the challenges that what are the challenges that manual testing is faced now there must be some uh challenges some limitations in the manual testing right that is the why we just in we were introduced to the an automated tool which was selenium right there should be some there must be some challenges in this particular testing and this was only the reason that why any automation testing was actually introduced used right let’s see that what are the challenges in the manual testing first it requires more time and more resources absolutely right thing so when you are doing anything manually right when you are doing anything manually that will absolutely require more time within if anything is done using any automation tool right so this was one of the challenges which was uh faced in the manual testing that it was actually requiring a more time and even the more resources as well right gy object size difference and color combinations Etc are not easy to find in manual testing so whenever you performing manual testing so in that whatever the GUI objects you have made out whatever the color combinations you had put on whatever the size differences you are facing what are the different color combinations you were trying to figure out all of these things are actually not easy to find in the manual testing right these are the things which are not really easy to find out in the manual testing right after that executing the same test again and again it is time taking process as well as tedious absolutely right so um let’s whenever you are just do out the things onto a manual testing so what we had seen there we saw that in manual testing what was happening first of all whatever the whatever the application you want to build out that was actually built after that when the test test were performed so in that case what was happening in that particular case whatever the test was done that first of all they were done in all the environments after that different different data sets were given off all that and after that different data sets you were needed to put down the success rate you were needed to record down the failure rate and all these things were actually done so these things were done manually so it was a time a very much time-taking process to do out the same test again and again same test again and again execute the same test so yeah it actually takes a lot of time and yeah that’s as well a little difficult and a little hard process as well so these were the three challenges which were faced in the manual testing so first of all it requires more time and more resources second the GUI object size difference and the color combinations are not easy to find in the manual testing and third executing the same test again and again is time taking process as well as TS right so here we discussed about the manual testing and the challenges now i’ be introducing you to that what is automation testing what do we mean from this term now again I just I would just not want you to quickly read out the slide no I do not want you to do out this thing first of all uh according to in simple English language think about what is actually automation automation means to automate any anything us using any machine right automating means to automate something and testing this testing we already are familiar with that what testing is so as basically we have that autom in automation testing we already have a framework we already have a tool set according to that only the test whichever are to be performed on whatever the applications they get automatically performed so in that you do not need to put down the rate of success the rate of failure you do not need to manually test on each and every data sets you do not need to manually give it on all the environments no these are not the cases which happen in automation testing automation actually on its own means that anything which is done automatically right so in this automation testing whatever the test you carry out all of them are actually done automatically right so let’s read out that as the name for the suggest automation testing takes the software testing app activities and executes them via an automation tool set or framework as I mentioned in the starting as well that in automation testing what happens in automation testing we just you just take out a software whatever software testing activities whatever you just want to do and we simply execute them uh through a automation tool set or a framework we already have so we just put out the things onto that automation tool set or framework and whatever are the test which you want want to perform for any software or any application whatever is done by that you could just simply perform those test onto that now if I just talk about in very simple words that what automation testing actually meant so we can say that it is a type of testing in which a tool which you have right that executes a set of task in a defined pattern automatically automatically is a essential word to add in the automation testing definition right right now this this is a type of a testing in which uh a tool automatically executes a set of tasks in a defined pattern which is automatically defined and it automatically performs and executes the set of task which are given to that right this is what comes in the automation testing now where is this method actually used out this automation testing method uses scripted sequences that are executed by test in tools already we have many scripted things written out here we have already scripted programs written out for this automation testing method we just simply use them out and they are executed by the testing tools which we have here right this tool execute examinations of the software report outcomes and compare the results with the earlier test runs now what are the things that automating testing tools can do so in that case it can execute the execute examinations of the software it can basically whatever the outcomes are there it can report that particular outcomes and even it can compare the result with the earlier test runs which were actually made out it can compare out that test and we can just see the comparison in the results for whatever the earlier test runs which you have carried out right this is what uh is here in this automation testing thing that what it what it does actually does so it executes the examinations of the software it reports the outcomes and even it Compares out the results with the earlier test runs right this is about the automation testing if I give you an overview for the automation testing so we can say that as the name suggest automation testing takes software testing activities and executes them via an automation tool set or framework so we have have a tool set of framework through which this automation testing actually takes place if I talk about this thing in much simpler words so I could say that it is a type of testing in which a tool executes a set of task in a defined pattern automatically so this automation testing method basically in this we use the scripted sequence that are executed by the testing tools and these testing tools what they do they help us to execute uh the examinations of the software the report outcomes and even compare the results with the earlier test runs right so hope you just got out the idea first of all regarding that what is manual testing what are the what were the challenges faced in manual testing that why we need to introduce the automation testing right after that the challenges we simply learned about that what automation testing is now in the next part of the video we’ll be discussing about the selenium in detail we’ll be going through the introduction to selenium so now we’ll be discussing about and I’ll be taking you through the introduction to selenium now this is the place where actually we start the selenium thing so let’s get started here let me just take you to the new slide and here we go uh first of all we’ll be going through that uh who introduced selenium that basically who is the founder or you can just say that uh who developed selenium after that we’ll be seeing that how that things are done and what is actually this selenium right so the selenium was introduced by Json Huggins in 2004 right so uh we can just say here that selenium was introduced by Jon hins in 2004 so he was an engineer at thought works so basically how does this idea coming for introducing something some automated tool so what he was actually doing he was doing his work on some web applications right he was just test making out some web application doing some work on his web applications suddenly he just required out some testing technique right he just suddenly required that okay I just need to go ahead with the testing on this particular web application which I am making now doing out the manual testing absolutely takes a lot of time a lot of efforts as well which we had already seen in the previous slides that manual testing takes first of all a lot of time and even a lot of efforts why because there which are the test which are actually there they are carried out manually first of all after that the test are performed on all the environments you need to put different different test cases for that after that whatever the rate are of the success or whatever the failure rates are there you just need to note them down and then just come to an output this is the thing which happens in manual testing and this is absolutely a long procedure a hard procedure and a lot of time-taking procedure so then basically just on how thought that there must be some tool in which we in which some automated things should be there so as to do out the testing in a easier and in a faster way so this is where Jon Huggins introduced selenium as an automated tool for the testing Frameworks right so if I just quickly talk about that who was who introduced selenium so name for that person is Jan Hagins he was an engineer at thought works so some one day he just thought of working on some applications and he required testing so at that case only he just developed out and introduced the selenium and automated testing framework or you can say as a tool right now whatever testing we do with the help of a Cel with the help of selenium or using selenium that are called a selenium testing again from the word it actually states that particular thing what is about the selenium testing so the testing which is done using the selenium right whatever the test which we perform using the selenium tool that are referred as selenium testing now what selenium actually is so it is an open-source tool first of all where you first thing that it is an open- Source tool a portable framework which is used for automating out the test administered on web web browsers see selenium is one of the first of all open source tool that is absolutely okay a portable framework that you could just use it at any place that is as well okay this is particularly used for automating out the test which are administered on the web browsers actually senum works on different different web browsers it has that capability to work upon different web browsers right whatever the test we have so basically it is actually used for automating out the test which are administered on the web browsers what are the testing uh web applications on which you can perform selenium on which you can just use out this uh framework which is selenium so that testing web applications are a shopping carts you can email programs like Gmail Yahoo all all these cases in all these places actually you could use out the selenium framework so first of all it is very open source tool so basically it means that you could just simply download that it is it does doesn’t ask you for giving out any paid work version or something that it’s totally available free of cost after that it’s a portable framework so you could just use that at any time at any case and this is used for automating out the test administered on the web browsers the testing app web applications which can be performed using selenium our shopping carts or email programs like Gmail yah these are the things which are actually performed using the selenium so hope you got the idea first of called that who introduced selenium so Jon hins was the person who introduced selenium in 2004 so who was he he was an engineer at the thought works why and how did he got out the idea for developing and introducing this selenium so he was doing some work on some web applications and suddenly he required some testing technique manual testing was a very uh long a very time-taking task and it actually requires a lot of time to do out that particular thing so this was a place there was a requirement and when Json Huggins developed selenium and automated testing tool so whatever the testing you do with the selenium these are termed as selenium testing and what is that selenium actually so it is an open- Source tool a portable framework which is used for automating out the test which are administered on web browsers it is only used for testing out the web applications such as shopping carts or email programs like Gmail Yahoo shopping carts you all are familiar with and nowadays everyone just prefer out shopping online and all those things so yeah these are the applications where you could just use out the cenum now why we should use selenium with python in the starting as well I told you that selenium is one of the tools which can be performed with the help of Python programming language and you could as well go ahead with the selenium tool when with the JavaScript as well so now what’s the use and what’s the advantages more which why and we should use cenum with python so let’s go and see that first of all we are all familiar with the Python programming language and there is no such doubt in saying that this is one of the important features of python that it is very faster and even easy to learn as well right it is a very simple language so this is the first reason that why we should prefer selenium with python so py python runs very faster absolutely right it is a very faster language it makes the use of indentation to initiate and end block so the indentation which we have in Python that is a very systematic thing even you just need to follow out as well very strictly so what what basically let’s say you just applied out some condition so when you just apply out that first of all conditions and whatever the block of code you want to uh apply basically inside that condition so first of all your condition comes on the first line and when you come to the next line so there is some space left in the starting after that you start putting out your code of block which you want to put inside that condition this is what indentation is and it actually helps us to see that okay where this particular code of block is ending where this particular is starting so it make us easy to analyze all of these things and this is why uh the use of indentation we be see right next it is very simple absolutely right the syntax which we have in Python is very much simple as well as compact yes the start simply and as well as very much compact compared to other programming languages hope you all are very much familiar with python for now so you must be very much familiar even with the features which I just told you it is very much fast to the indentation which we have here it is very simple to use as well as compact other if I just compare this with the other programming languages so these is the first reason that why we use the selenium with python second thing we have a tool which is called as web driver in actually selenium we have this tool right web driver this is a very important tool in selenium we’ll be discussing uh about this in the further videos right now for this particular thing you could understand that okay web driver is a important tool in selenium so this tool which I was telling you about web driver that has a very strong bindings of Python programming language actually right so uh this is the important tool for easy user interfaces that is web driver and it really has a strong bindings for Python programming language so this is one another reason that why we prefer selenium with python moving towards the third it runs rapidly while making a comparison of another programming languages so that is true that python actually runs rapid while making out a comparison of any other programming languages right the programming language is as well free and available as open source absolutely true so python is as well an open- Source language right whosoever needs that you could some just simply download that and use it freely in any of the environments yes this is as the case it’s not the case that you just particularly need this only environment to work for python no you could download any of the environments of your choice and there you could just download the Python programming language and simply you could just use that out so it’s we can say that it is as well free available as open source and you could simply download and use freely in any of the environments according to your choice and the last one it is easy to code and easy to read that is one of the important points one of the important features as well of the Python programming language that it is very much e easy to code out and even easy to read out right so hope you now just got out the idea regarding these Five Points these five reasons that why selenium with python let me just quickly give you an overview so python runs very faster and makes use of indentation to initiate and end blocks it is very simple as well as compact as compared to other programming languages right we have a very important tool which is web driver in selenium and that has the strong bindings for Python programming language Python programming language runs rapidly while if you just compare this with any other programming language so it runs rapidly this language is as well free and available as open source so if you just need out you could just quickly download that and freely you could just use that on any of the environments and at last it is very easy to code and the the syntaxes the programs which you write in Python program language that are easy to read as well so these were the five reasons that why we prefer selenium with Pyon now here basically we’ll be we have discussed about that what uh selenium is and why we should prefer selenium with the Python programming language in the next set of video we’ll be seeing about the advantages and the limitations for the selenium testing now we’ll be seeing that what are the advantages for the selenium testing let let’s go ahead with that first of all uh the very first Advantage for the selenium testing is that it supports the various programming languages to write the test scripts as mentioned by me in the previous video I had already told you where we discussed out the topic that why selenium with python there I mentioned that selenium is even um you can just do out the selenium testing with the other programming languages as well I took out the example for the JavaScript right so the same advantage is mentioned here that uh for writing out the test scripts there are many programming languages which are supported so whatever you are whichever language you are familiar with you could absolutely choose out that language and go ahead with that for writing out the test scripts another very important advantage and even I could just say a very good feature for selum is that it is supported on the various web browsers as well you could take M Firefox you can just go on to the Google Chrome whatever web browser you are actually using out the selenium is selenium actually supports out many of the and various of the web browsers right let’s say you take uh Firefox you take Google Chrome or any other whatever you just want to take out you can just as well go ahead with that same next it supports the pal test execution now what P test execution is in detail I’ll be discussing further for now we could just understand that uh selenium as well supports out the parallel test execution it means I could just give you an overview that parall you could perform many test onto a particular application uh this is I could just say a simple um definition regarding the parallel test execution right so selenium actually supports out that particular thing one another thing which is as well mention into the definition for the selenium as well that it is an open- Source software so you could just use that accordingly whenever you just wish out you could just download that and use it accordingly and it it basically it’s a totally open source software right next selenium as well supports out the different operating systems we mentioned I mentioned and told you that it supports out the various browsers with the supporting of the various browsers it as well supports and works on different operating system you take Windows you take Linux you take Mac whatever you just take out it supports all of these operating system right so these are some advantages of the selenium testing now what are the limitations as well I mentioned the starting that if something is having advantages it will absolutely have some of the either limitations so let’s see what are the limitations of selenium testing so I mentioned that it works on the web browsers right I mention out this particular thing so this is one of the limitation of the selenium that it only and only supports out the web based applications right whatever the application you are making it only and only supports out the application which are web based which are which basically work upon either Google or MOA Firefox it just simply supports out those web based applications only now whatever the new features are getting introduced into the cenum testing whatever new features are getting introduced they do not have aurity that they will work or not work right they may work out sometime they may not work out sometime so this is one of another limitations which is right now right right now these spacing for the selenium testing right and here are some important uh last three limitations about the selenium testing you can see that there are some used cases where the selenium doesn’t works out the selenium testing actually doesn’t works so first of the selenium cannot perform testing on the images the very first thing that it cannot perform out any of the testing onto the images the the code which is written behind this testing and all the things so that is not supports the testing on the images you you cannot automate out the captures using the selenium captur right now in today’s world right now everywhere we see out the captas whenever you just log in onto any of the web browser so you just any of the website they ask for the captas to fill out that right so selenium cannot automate that so capts are not at all automated using the selenium and at last that barcodes cannot be automated using selenium neither the Capt nor the barcodes NE neither of these are supported and can be automated using the selenium right these are some limitations for the selenium testing hope you got that but once again let me go over them so selenium supports the web- based applications only so whatever the applications you are having selenium only only supports out the web based applications it doesn’t supports out the applications which you have made onto your any of the environment or something like that it doesn’t touch that thing okay second the new features which are getting introduced so they are a little bit of ir responsible in that case we just have a doubt sometime that either they work or they may not work we are not too much or that much confirm about them so this is what we can say the irresponsibility of the new features now whatever the the selenium whatever basically selenium cannot perform out the testing on the images so if you just want to perform any test on the images so in that case selenium cannot do out that particular thing right the captures which you have these are not automated using the selenium and the barcodes are as well not automated using the selenium right so these are some of the limitations of the selenium tools finally we will cover GUI development you will learn how how to create interactive desktop applications using libraries like TK inter we will guide you through building your own GUI applications from scratch making your programs more userfriendly and Visually appealing so let’s start with graphical user interface so as I already told you about graphical user interface it allows the user to communicate with electronic devices through graphical representation when I’m talking about graphical representation stag means buttons and icons so the example of GUI is micro moft Windows as well as Mac OS and we are having several other examples also so basically what happens here here you can do the communications by interconnecting with the icons so this is the basic idea about graphical user interface now let’s see different types of graphical user interface libraries that are present in Python so we are having several libraries that are used in Python for the GUI we are having DK inter we are having KV Pi qt5 WX Python and Pi GUI so now let’s get some idea about TK inter so python TK inter is nothing but a standard GUI Library so basically when python is used in conjunction with TK inter it creates graphical user interface that is quick and simple also it gives the TK GUI toolkit a sophisticated object oriented interface so this is the basic idea of TK enter you just need to know that it’s a python GUI library and then we will see how to create a TK enter programming so now if you want to create a simple GUI application with python in TK inter so there are some certain steps that has to be followed first you have to import the module of TK inter right so you can just simply write from TK enter import srick and then you can import the TK enter module Second Step that we have to follow we have to create a main window then how to create a main window we will basically create a object of python TK in next after creating the main window now we can add multiple vets in a main window and after adding vets now we can enter into the main event Loop to perform action so now there are two primary approaches that user has to follow right so first as I already told you that you have to import the DK inter module and the module name is from TK enter import as so after importing the TK enter module now what we have to do we have to create a main window so how to create a main window I will just simply write here main window that is nothing but a variable so for creating a object I will just write here TK and parenthesis make sure that your T is capital and then in order to run the application I will just right here main window. main Loop so basically main Loop is nothing but an infinite Loop right that will run your application and then it also waits for an event and process it as soon as the window is open so this is the basic idea about how to create a basic python application with GUI now let’s see into the Practical example so what I will do now I will just write here from TK into import a so this is the basically TK inter module that I will import here and then after that I will create a main window so let me write here variable window and I will create here the object so for creating the object make sure that he is capital and now we’ll just simply write window. meain Loop so we know that main Loop is infinite Loop that will run the application so if I’m executing it you can see that we have created a simple GUI application right so this is the basic idea about python T so now you have seen that how to create a GUI app now let me here change the title so if you’re executing it now so on execution you can see that I am getting here TK right and if I want to give the title instead of TK great learning so I will just simply write here window do title and I will write here welcome to cre learning so now let me execute this and on
execution you can see that on top we are getting welcome to create learning as a title so after this let me change the window size so I’ll just write here window do Min size and I will just write here let’s suppose bit as 100 and height is equal to 200 so if I’m executing it now you can see that this is the minimum size of this window and if I’m clicking on this button maximize then you can see that this is the maximum size so let me change the maximum size also so for that I’ll just write here window so I will just write here window do Max size and once again let me give your width is equal to Let’s suppose 3 00 and let’s take the height as 800 so on execution if you see this is the minimum size of the GUI app and this is the maximum size right so this is the basic idea about python TK inter so after creating first GUI app now it’s time to know about widgets so what are widgets so talking about widgets in general this is basically an element of GUI and in TK inter widgets are considered as a objects which represent buttons frames Etc so basically TK offers many controls and these controls are nothing but known as vets which we will be using GUI applications right so as I already told you that it represent buttons labels and text boxes so we are having different types of wigets that are available in DK enter that is label button entry check button canvas frame and many more so this is the basic idea about wigets so now let’s understand the geometric configuration of wigets so we have already got the idea about vget but if you want to organize the Vets so we need a geometry manager classes so primarily we are having three types of geometry manager classes that is pack grid and place so after adding viset I have to organize the widget so I will be using these three geometric manager classes so the first one is pack so when you are using pack functions it means that you are placing a visit on a top right coming to the grid it is used to organize the visit in the table like strcture so when I’m talking about table like structure that means row and column next we are having place so it is used to organize the visit at specific positions so I just write here X and Y so we if you are writing let’s suppose X is equal to 20 and Y is equal to 40 so that means from left to right you are placing a particular viget and now coming to the Y that means from top to bottom you are placing any viget so this is the basic idea about the geometric configuration of wigets so now it’s time to discuss about the different types of vets that are present in Python TK inter so first vet that we are having is label so when you are talking about label basically it is used to represent display box in which image or text is added so what’s the syntax of label so I will just write here simple label and in parenthesis I will write here Master comma options is equal to Value coming to the master master is nothing but the main window that you have created and here we can provide several options as an or so we can write in options BG command font image width and height when I’m talking about BG that means it’s a background right and also we are having FG also FG means foreground color so when you are writing FG is equal to Blue so your text will be of blue color right so this is the basic idea about the label widget now let’s see it into the Practical example so what I will do here right now once again I will just import the TK inter module so I’ll just write here from TK inter import as trick and then after that I have to create my main window so let me write here the variable name window and I will create the object s DK now I will just simply add widget here so I have to add here label widget right and we know that after creating the main window only we can add widget here so let me write here Elvin is equal to label so this is my label vidget right so in label here I have write here Master what’s my master master is nothing but the main window so I’ll just write here window and then in options I can leave several options so let me write here options let’s suppose I’ll just write here text and I will write here great learning [Music] so this is the label right and also if I want to organize the visit then I have to use the geometrical configuration right so let me use use here first el. pack and if you want to run the main application then I have to write here window do main Loop so if I’m executing it now so on execution you can see that create learning has been printed on the top of this window right in middle so this is about the pack geometry class now after pack if I’m just using here let’s suppose grid so we know that grid contains rows and columns right so what I will do here I’ll just write here row is equal to Z and column is equal to Let’s suppose one now if I’m executing it so on execution you can see that great learning has been printed here so as of now we have just started doing the coding so as soon as you will write more code then we can change the row and column also and then we are having one more geometry class that is place right so I’ll just write here place so basically in place if we want to organize the widget at any particular place so that we can give here X and Y and let’s suppose if I’m writing here x = 5 and Y is equal 10 so basically this is the position when I’m writing x equal to 5 that means from left to right you are placing your visit similarly when I’m writing your y equal to 10 that means from top to bottom you’re placing your visit let me execute this so on execution you can see that date learning has been printed if you want to place at any other position so you can just write here xal to 50 and Y is equal to Let’s suppose 100 and if you are executing it you can see that we are getting the output like this so this is the basic idea about the label widget so now let’s suppose we have already created a label widget of text grade learning right let me execute this so if you see this is a create learning here now if I want to add here the background color along with the foreground color then how to add it so I will just simply go on here options and I will just write here let’s suppose background color I want in blue so I just write here blue and and for foreground color I’ll just write here Simply Red let me put this blue under double quotes So now if I’m executing it you can see that on execution this great learning so foreground color will be in red color and the background color is of blue color also if you want to increase its width so you’ll just write width is equal to Let’s suppose 40 and now if I’m executing it so on execution you can see that its width has been increased so this is the basic idea so in label viget you can add more options in the form of background foreground image font many more yeah so after knowing label now if I want to add any image on my GUI app so what can I do so let me execute once again this so if you see here let’s suppose if I want to add any image here so what shall I do so first what we’ll be doing let me just remove this let me write here the variable name as I and I will just use here photo image so you can also see that is showing the photo image option right so inside this photo image what I will do here I’ll just write here file and if you see here so let me take a file from the desktop so if you see here this is the file basically and it’s in the and it’s a image file right so I’ll just go on properties and if you see this is the location so I’ll just copy this and the file name is python right so the image file is having the name python so what I will do here I just simply first put double quotes and inside that I have just copied it and pasted the location and the file name is python right so I’ll just write here python Dot and it’s in the PNG file so I’ll just write here python. PNG now so now instead of this back slash we have to just replace it with the forward slash so I will just write here here like this so now after this what I will do I will create a label so I’ll just write here El is equal to label and inside this label I have to first put Master right so my master will be here the main window so I’ll just write here window and then I will write here option so in option I will just write here image and what’s the image here so image is equal to i1 so now if I’m doing execution so on execution you can see that I am getting nothing why because I have to use here geometrical classes right so for that I will just write here let’s suppose el. pack so now you can see that in output we are getting the TK enter image here so this is the basic idea about the label wiget so the next widget that we going to discuss is button so basically button is used to display button in an application and it’s also having a very simple syntax we have to just write button make sure that b is in capital and then instead of Master our main window will be there and in options we can pass several arguments such as BG command font image width and height so here we can also use command so when you are writing command so basically when we are creating any function we will just assign that function name into the command we will understand better while doing the coding part so now let’s see the practical implementation how to create a button so for creating button I just simply write here let’s suppose B1 is the variable name I’ll write here button and I will write here window so window is my main window right and after that let me write here text so if I’m writing here text is equal to into and again I have to write here B dot I can use here pack I can use here place I can also use here GD but let me write here back now if I’m executing it you can see that this is my enter button so let me give here again the color so uh in background let’s suppose if I’m taking it as a green color and for foreground I will just take as yellow and now in execution you can see that this enter button is having foreground color as yellow and background is green so now we have seen that how to create a button widget now let’s see how to create an entry so what is entry so in entry let’s suppose if I have created a widget that is label widget and it name is username right and I want to give the entry through the user right so that’s why I will create an entry where I can write the value in the form form of a string as well as integer values too so let’s create entry here so I’ll just write here even variable and for entry I’ll just write here entry and in entry I’ll just write here window and then let me give here the width also so let’s suppose the width of this entry is 20 so I’ll just write here even do back and now I’m executing it so you can see that on execution I am getting this entry right so here I can write here string value as well as integer also so how we can use this entry so let’s suppose if you are making any website right and for that particular website uh if you want to access it you need username and password then we can use entry there and we have to create button also for that so let’s suppose that if you want to change the font style here so what I will do here I just simply write here font is equal to and uh let me write here Cali and let’s suppose that font size I want 20 so I’ll just write here 20 and now if I’m executing it you can see that the size has been increased so now if I’m writing here G it’s in Cali right now what can I do here if I’m writing here BD is equal to 5 so what is BD here so BD is nothing but it is used to represent the size of the border so when I’m writing your BD is equal to 5 then you can see that we are getting the entry button like this right so this is the basic idea about the entry so let’s make a simple GUI here so what we going to do first we going to create a label and after that entry and then we will create a button so in label I will be taking the name as employee name and entry I will just give any string values and when I’m clicking on submit button so what will happen whatever the string value that I have given in entry will be displayed so basically I will be using two labels here the first one will be having the name as employee name and another label will be having the name as nothing so whatever the string value that I’m giving to entry and if I’m clicking on submit so instead of nothing that value will be shown to us so this this is the basic idea so let me create a simple GUI now I’ll just once again write here from TK into import asck and now I will just create a main window let me give you the title also so once again I will just write here window. title and I will just write here welcome to Great learning and then and let me just uh write here window minimum size so I just write here width as let’s suppose 200 and then height I will just write here 400 so for the maximum size what I will do here here I will give the width as 400 let’s take the double of the minimum size and then height also I will write 800 and let me write here window. mean Loop because if you want to run the application then you have to write it right so so you can see that this is my output and this is the minimum size and the maximum size is this one and here on the title I’m getting welcome to create learning so these are the things that we already know right so let me create a label view so for label I will just write here L1 is equal to label and L1 is my variable right so inside this label let me write here master so Master will be here my main window and now in options uh let me write here text so in text uh let me give here let’s suppose employee name and then uh let me also give here foreground as well as background color too so foreground color let’s take here blue and background color as let’s suppose I will take as red and since this is a label basically it’s a widget so I have to organize this widget so for that I will just write here elen dot I can use also your pack but let me use this time place so in place I can place my vet at any specific position so uh let me take here x is equal to 0 and then Y is equal to 10 and on execution you can see that this is my label which name is employee name right now let me create an entry button here so for entry button I will just simply write here even is equal to entry where even is my variable and once again I will just write here window and uh let me give the and let me give here the font so I’ll just write here font so in font I will just change the font style so let me change the font style to Corbell and uh let me give the size as 18 and let’s use bd2 so why we are using BD so as I already told you that BD is used to represent the size of the borders right of an ENT so if I’m writing here BD is equal to 5 so let me write here even do entry so now what I will do now I have to place this entry right so I once again I will write here even dot let’s use here place and let me use here x is equal to 40 this time and Y is equal to 10 and if I’m executing it just now you can see that I’m getting this output right so it’s not coming perfectly so let me just adjust the size here so instead of 40 if let’s suppose if I’m writing here 80 and now if I’m executing you can see that I am getting here employee name as label and this is the entry right where I can write any name okay so let’s create a button also so for button I will just simply write here B1 is equal to button and let me give here the master as window and an option I will give here once again the text is equal to Let’s suppose enter let me give here the colors also for this button so for foreground I will use yellow and for background let me use green here so now we have to to organize this button wiet also so for that I will just write here B1 do place and let me write here x is equal to let’s take here 100 and Y is = to 40 I’m just taking random values here now if I’m executing it you can see that I’m getting like this one right so let me just rearrange it if I’m writing here x is equal to 120 okay now it’s coming in between and let’s take the Y value as 60 now it’s coming perfect right now if I’m writing here let’s suppose gorov and if I’m clicking on this enter you can see that nothing has been happening right so what I will do now I just create another label and this label will be here and I will just write here nothing now after that whatever the string values I’m writing here in this entry and if I am clicking on this enter then this instead of nothing the value must be the same that I have given so for that what I will do let me create another label so I’ll just write here L2 is equal to label and I will just write here window and after this I will just write here text is equal to nothing and let me give you a foreground as let’s suppose uh black and background let’s take background as brown and let me place this visit so I think X will be 120 here I will be taking and Y let’s take here 90 or let’s take 100 and now if I’m executing it you can see that label is not defined because L has to be Capital here now it’s good to go so on execution you can see that I’m having the another label as nothing now I have to do something that if I’m writing here gorov and clicking on this enter button then it should work right and instead of nothing I want here the value as cor up so for that what I will do here let me create a variable so now after this what I will do here uh I will just create a string where so let me create a variable V is equ Al to string where so when I’m writing here string where so basically that means we are dealing with the string values right so after creating here string where one so now what I will do here inside this entry in options I will just write here text variable and it will be equal to V because we are dealing with the string values right now I want that my button should work so for that I will create a function so whatever the function you are creating let’s suppose a function name is attech then I can use the binding functions and I will write here in button command is equal to attech attech now how to use this atte so I will create a function basically so I’ll just write here DF at Tech and now after this I will just simply write let’s suppose my variable is V right so if I want to get any value I will just write here V dog so let me create another variable X is equal to V dog right and now after this I’ll just simply write here so now what I will do here uh I just want to print this value so I have to write here print X now here as I told you that I have created two label the first label name was Employee name and another label it was written nothing so I told you that what whatever the value that I am putting into the entry it should be changed in the label whose name is nothing right so I’ll just write here L2 and I will use here config function and inside this config I will just write here text is equal to X now what will be your x value here so I have WR here x is equal to V do get right and V don’t V is equal to string where so basically we are dealing with the string values so now what I will do here I’ll just execute this and let me write here let’s suppose gorov and if I’m clicking on this enter button you can see that I am getting gorov here right and also if you see the output I’m also getting gorov in the output why because I have written here print X so now let’s make some few more changes here the name has been changed from nothing to G of and let’s change the color also so how you can change the color so in this config function itself I I will just write here background as let’s suppose um yellow and then foreground as let’s suppose blue now if I’m executing it so let me stop and rerun this and this time once again if I’m writing your gab and if I’m clicking on this enter you can see that the name has been changed along with the background color as yellow and for forr as blue so this is the basic idea about the label widget entry and the button right so this is a very simple GUI application so the next visit that we are having is check button the check button is used to show a selection of choices as check boxes let’s take an example let’s take an example of male and female we can use them as a check button now let’s see the syntax so the syntax is simple you have to just write the check button and inside the parenthesis your master will be the main window and then there are SE several options that can be passed through as an argument we can have title background as well as active background so this is the basic idea about check button now let’s see the Practical implementation so now you can see that this is the basic TK inter programming now what I will do here I will just create a variable here let’s take CV and I will just write here check button and inside this I will just write here window and then I will just write here text so as I was explaining about we can take the example of male and female so just let me write here male and then I’ll just write here CB dot let’s use your pack and now if I’m executing it on execution you can see that I’m getting mail as check button right so this is my check button so the next visit that we are having is frame so basically frame serves as a container and it is used to organize the visits now what is the syntax of frame it’s again simple you have to just write frame and and then master and then options so here as a argument we can pass several options such as BG BD cursor width and height right now let’s see the Practical implementation of this Frame so now once again I came back to py charm I just simply write here F1 variable let me create here frame and inside this I didn’t pass any Master neither options so I’ll just write here f1. back FS2 is equal to frame and I will just write here f2. pack now if you’re executing this then nothing will be executed right so what I will do now I will just create here let’s take an L1 that is label I will create here and inside this I will pass F1 as a master and then uh let me take your text so I’ll just write here text is equal to Great learning and if I’m writing here L1 do pack now so let me execute this so on execution you can see that I’m getting great learning now I will just create another label let’s take L2 is equal to label so I will just write once again here F2 and then let me write here text is equal to B and I will just simply write here L2 do pack so now if I so on execution you can see that I’m getting bottom so here you can see that basically I’m having two frame right dat learning and bottom but I want the bottom to be printed on the bottom side so for that what I will do here uh you can see this I have written here f2. back right so I’ll just write here side is equal to and I will just write here bottom and bottom will be in capital so now if I am doing the execution so on execution you can see that create learning is on the top of the window whereas whereas bottom is on the bottom side of the window right so the next visit that we are having is list box so list box is used to give a user with a list of options so basically in a simple word you can say that list box contains a list of options and as we know that list can contain different types of data values so so list box will contain a different list of options so next we are having syntax so what’s the syntax of list box once again we’ll write just list box and inside that Masters and the options that we can pass as an argument so what are the options that we can pass through an argument it’s like BG BG is background BD BD is used to represent the size of the water then we can also use Font as a option image width as well as height so now let’s see the Practical implementation of list box so in the list box practical example we will see how to remove the element from the list box and also how to insert any element or you can say items in the list box so now what I will do here I’ll just write here lb is equal to let me create a list box so this is my list box and I will just write here window and let me give the width so if I’m writing a width is equal to 20 and let me just write here lb. pack so here L should be Capital so this is my list box and if I’m executing it you can see that I got an utty list box now it’s time to insert the options in the list box so for that I will just create a list so let me give here the list as Elin and uh let’s insert several values so how to add several values in a list box let me write the name here so let me write here Tony I will write here Adin let’s take some few more names uh let me write here kga and let’s take one more name as it so these are the four values right and I want to insert in my list box so for that what I will be using uh we can use Loop right for Loop so I’ll just write here for I in my list name is Elvin right so so what’s the name of my list box so list box is having a variable name as lb so I just write here lb Dot and then I will just write here insert and let me write here end and I will just write here I now if I’m executing it so on execution you can see that I’m getting Tony admin ktia IA so what can I do now if I want to remove let’s suppose IA from here so let me create a button we have to create the button right so for button I just write here B1 is equal to button and I will just write here window and text is equal to Let’s suppose if I want to remove e so I’ll just write here remove and let me give the color also so I’ll just trite here let’s check the background color as red now for button also I have to write here B1 do back now if I’m executing it so you can see that this is the remove button but if I’m just clicking on this IA and then clicking on this remove button so it’s not removing so we know that it will not remove until and unless we are not using a command right so what is command command is nothing but a binding function so in button I will just write here command and let’s take that I will write here attech so here you can see that I have assigned at Tech in command so what does it mean it means that I have created a function whose name is edtech right so what I will do here okay let me just create a function here Def atte and inside this function what I will do here so I just simply write here lb so what is my lb lb is nothing but a list box variable and if I want to remove the element then I will use here delete function and inside this delete I will just write here anle so what do you mean by anle so that means so that means if you want want to select an item single item and if you want to remove one by one then we can use anchor here so if I executing it now so if I want to remove let’s suppose kka and if I am clicking on this remove button then you can see that it has been removed from the list box similarly for IA we can do it right so this is the basic idea about the list box so now after understanding label wiget buten widget and many other wigets it’s time to discuss about some other wigets so we are having different types of other vets available in Python DK starting from menu button menu message radio button scale scroll bar text top level spin box and pan window we’ll see some of the wigets in the Practical exam so let’s start so now let’s discuss about the radio button visit first so for creating radio button let me write here RP one and R has to be Capital so this is my radio but and as a master I will just write here window and after this I will just write here text is equal to yes and let me write here rb1 do back so on execution you can see that this is the radio button that has been created yes right let me create uh one more radio button so I will just write here rb2 is equal to radio button and once again as a master I will write here window and text is equal to no and obviously we have to place the visit right we have to organize the visit so for that once again I have to write here rb2 do pack so now you can see that I’m having two radio buttons that is yes or no but you can see that these both have been selected right so for that what I will do here I will just write here value is equal to Let’s suppose for S I’m giving the value one and value is equal to Z now if I’m executing it you can see that only one has been selecting at a time so now here if you see that these are the radio buttons right but uh let me create a button so that whenever I’m clicking on yes I want the value to be printed on my output so for that I will create a button so let me create a button so I’ll just write here B1 is equ Al to button and then I will just write here window and in button I will just give your text is equal to intoo and once again just let me write here b1. back now if I’m executing it then you can see that I got the button but if I’m clicking on this enter button you can see that nothing has been printed in my output so for that what can I do here uh let me create here a interval so I’ll just write here let’s suppose I’ll just write here V is equal to Inver so that means basically we going to deal with the integer values and after this I will just write here variable and we know that our variable is equal to V here so I just simply write here V variable is equal to V and inside the button when I’m writing command so that means we are using a binding function so so command once again I will give the name here attech and I will create the function name as attech right we know that whatever the function we are creating so let’s suppose we are creating Tech function so in the command we will assign the te here so let me just write here Dev Tech and inside this uh let me just write here simple print and V is my variable so I just write here V dog so we know that in yes we have a assign the value as one and for no the value is zero so now if I’m executing it so on execution if I’m clicking on yes and clicking on this enter so now this button will work so on execution you can see that I’m getting the yes value as one right that we have already assigned the yes value as one similarly if I’m clicking on no and then clicking on this enter button will give you the value zero so this is the basic idea about radio button so the next visit that we going to discuss about is the message box so not talking about the message box it is used to display the message box on the python applications right so what I can do here let’s create a message box so for creating a message box you have to import message box so I’ll just write here from TK into import I’ll just write your message box now my message box has been imported now what I will do here I will just simply first let me create an entry so I’ll just write here even is equal to entry and in this entry I will just write your window and let me also give you the font so in font I will just change the font style so font style is’s take as Cali and then font size as 180 right and let me give the width also so I’ll just write here width is equal to 20 and after this let me just organize this visit so I will be using even. back and now if I’m executing you can see that this is my entry box right now what I will do here let me create a button also so I will just write here V1 is equal to button and inside this button I will just write here window simple and then in this button I will just write here text is equal to let’s take into right and I will be just writing here v. pack okay so now what I want to display here in this message box so let’s suppose if I’m not writing anything and if I’m pressing on into so then it shows some message box or you can say some warning message right in the form of message box and let’s suppose that if I’m writing any string values then it shows that yeah it’s successful and it should print that part value so for that what I will do here I will just create here a in word so I’ll just write here simple V is equal to inware or instead of intw I’ll just create a string where right let me write here string value so I’ll just write here string we and uh so here what I have to write I’ll just write here text variable is equal to V right now we know that we have to write here command which is a binding function basically so command here once again I will create a function so I have to write the function name here and assign it to the command so what I will do now here I’ll just create a function here Dev at Tech and let me give the condition here so let’s suppose if I’m writing here if V Dot get so we know that V dog will give me the value is equal to equal to if I’m writing here empy so I will just write here message box now I will be using the message box here dot uh python provides several functions here for this so I just write here show warning so I will be using here so warning and here you can see that we are having the title message so in title I will just write here cin and after that I will write it’s empathy it’s simple right when you are not writing anything in the entry and if you are clicking on the enter button or the submit button then it should show something right please enter something it’s empathy so I just written here the instruction it’s empathy next I will give here the else condition else message box dot now um I can use here one more function that has been provided by python I just right here so info and then title I will just give here successful and then uh let’s suppose display I want to display here v.g so I just write here V dog so whatever the value is there I’ll get here right so now if I’m executing it now so on executing this is my entry right and if I’m not writing anything entry and clicking on this enter you can see that I’m getting caen in my title and it’s showing its empathy right so this is the message box similarly if I’m writing let’s suppose G VI now you can see that I have given here gorov in Cali 18 right so this is a Cali font style and if I’m clicking on this enter it’s showing successful gorov right so this is the basic idea about the message box let’s quickly recap what all did we learn in the session first we started with python fundamentals here we discussed regarding what python its variables data types operators tokens control statements and also basic data structures of python like tles sets lists Etc in next module that is Advanced python Concepts we focused on objectoriented programming Concepts like classes objects Etc and also we learned how inheritance works and how to handle the errors in exception handling also file handling in the next module that is data structures and algorithms we learned about arrays Stacks cues Etc and also few sorting algorithms and searching algorithms like binary search insertion sort Etc then in the next module that is python for machine learning we explore the libraries we use in Python for machine learning that is numai pandas matplot lip and seon then in in generative AI of python we also provided a overview of generative AI Concepts and python applications in this field python for automation dealt with selenium web Automation in GUI development we used python library that is TK inter in order to develop a web page so we learned all these Concepts from the basic version to the advanced version in Python hope this tutorial was helpful for you thank you happy learning

By Amjad Izhar
Contact: amjad.izhar@gmail.com
https://amjadizhar.blog
Affiliate Disclosure: This blog may contain affiliate links, which means I may earn a small commission if you click on the link and make a purchase. This comes at no additional cost to you. I only recommend products or services that I believe will add value to my readers. Your support helps keep this blog running and allows me to continue providing you with quality content. Thank you for your support!

Leave a comment