<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Claire Maina</title>
    <description>The latest articles on DEV Community by Claire Maina (@clairetaar).</description>
    <link>https://dev.to/clairetaar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F813264%2Fde120f0d-6126-4c59-98d3-d7d5ab8ae7dd.jpeg</url>
      <title>DEV Community: Claire Maina</title>
      <link>https://dev.to/clairetaar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/clairetaar"/>
    <language>en</language>
    <item>
      <title>Data Engineering 101: Introduction to Data Engineering</title>
      <dc:creator>Claire Maina</dc:creator>
      <pubDate>Sun, 21 Aug 2022 19:24:01 +0000</pubDate>
      <link>https://dev.to/clairetaar/data-engineering-101-introduction-to-data-engineering-54nf</link>
      <guid>https://dev.to/clairetaar/data-engineering-101-introduction-to-data-engineering-54nf</guid>
      <description>&lt;p&gt;A data engineer designs and builds systems that collect, store, manage and analyze data. Companies collect a lot of information about their business from various resources, and they need data engineers to make this information accessible, structured and usable. A data engineer can build data pipelines, optimize queries, create automated systems, manage data warehouses, and develop data workflows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Roles of a Data Engineer&lt;/strong&gt;&lt;br&gt;
• Build data pipelines – this involves collecting data and building data warehouses or data lakes.&lt;br&gt;
• Make data accessible – involves remodeling the data in a way that is easy for all stakeholders to access interpret and manipulate. Excel, Power BI, and Tableau are some of the tools mostly used.&lt;br&gt;
• Optimize queries – involves updating the current queries to meet current business needs.&lt;br&gt;
• Data maintenance – involves testing and maintenance to ensure the system is running smoothly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills needed&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Distributed systems: Hadoop&lt;/li&gt;
&lt;li&gt;Databases: MySQL&lt;/li&gt;
&lt;li&gt;Data processing: Spark&lt;/li&gt;
&lt;li&gt;Real-time data ecosystem: Kafka&lt;/li&gt;
&lt;li&gt;Data orchestration: Airflow&lt;/li&gt;
&lt;li&gt;Data science: pandas (Python library)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Software and Technology Requirements&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cloud account - Google GCP, AWS or Azure.&lt;/li&gt;
&lt;li&gt;Python 3, Python IDE and a text editor - VSCode, Anaconda.&lt;/li&gt;
&lt;li&gt;SQL server and MYSQL Workbench or DBeaver and DBVisualizer.&lt;/li&gt;
&lt;li&gt;Git and version control system&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>dataengineering</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Connecting Jupyter Notebook with Tableau</title>
      <dc:creator>Claire Maina</dc:creator>
      <pubDate>Fri, 05 Aug 2022 17:52:00 +0000</pubDate>
      <link>https://dev.to/clairetaar/connecting-jupyter-notebook-with-tableau-513b</link>
      <guid>https://dev.to/clairetaar/connecting-jupyter-notebook-with-tableau-513b</guid>
      <description>&lt;p&gt;The main benefit of connecting your Jupyter notebook with Tableau is that this allows for real-time analysis. To mean that, any changes made to the notebook will be reflected on Google Sheets and Tableau.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are the steps involved?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1: Create a New Project on Google Developers Cloud&lt;/p&gt;

&lt;p&gt;2: Enable Google Sheets and Google Drive APIs&lt;/p&gt;

&lt;p&gt;3: Create credentials&lt;/p&gt;

&lt;p&gt;4: Google Sheets&lt;/p&gt;

&lt;p&gt;5: Code to add to your Jupyter Notebook&lt;/p&gt;

&lt;p&gt;6: Tableau Public setup&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Create a New Project on Google Developers Cloud&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Go to &lt;a href="https://console.developers.google.com/"&gt;Google Cloud&lt;/a&gt;  and select &lt;strong&gt;&lt;em&gt;“My First Project”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This will open a pop-up window. Select &lt;strong&gt;&lt;em&gt;“New Project&lt;/em&gt;&lt;/strong&gt;” on the top right side of this pop-up window.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose a unique Project Name e.g. new-tutorial. You may leave the Organization field as it is and click on Create&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Enable Google Sheets and Google Drive APIs&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;On the Dashboard, click “&lt;strong&gt;&lt;em&gt;Library&lt;/em&gt;&lt;/strong&gt;”, on the Left Pane. This will redirect you to API Library.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search for Google Sheets. This will redirect you to the Google sheets API window.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Proceed to click on “&lt;strong&gt;&lt;em&gt;Enable API”.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Follow the above steps to also Enable the Google Drive API.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;em&gt;Note that the 2 APIs have to be enabled for each new project you create.&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Create credentials&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;em&gt;Note: Always check that you are still working on the correct project&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;On the left pane, select “&lt;strong&gt;&lt;em&gt;Credentials”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the opened window select &lt;strong&gt;&lt;em&gt;“+ Create Credentials”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;&lt;em&gt;“Service Account”&lt;/em&gt;&lt;/strong&gt;. A service account is a special type of Google account intended to represent a non-human user that needs to authenticate and be authorized to access data in Google APIs [sic].&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On Service Account Details - for the &lt;strong&gt;&lt;em&gt;Service Account Name&lt;/em&gt;&lt;/strong&gt; - you can choose a name similar to your project. E.g. new-tutorial. The &lt;strong&gt;&lt;em&gt;Service Account ID&lt;/em&gt;&lt;/strong&gt; will automatically update. You may choose to edit it. For the &lt;strong&gt;&lt;em&gt;Service Account Description&lt;/em&gt;&lt;/strong&gt;, you may choose to leave this blank as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;&lt;em&gt;“Create and Continue”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On &lt;strong&gt;&lt;em&gt;“Grant this service account access to project”&lt;/em&gt;&lt;/strong&gt;, select a role as Owner so that you may have full rights.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;&lt;em&gt;“Continue”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On &lt;strong&gt;&lt;em&gt;“Grant users access to this service account&lt;/em&gt;&lt;/strong&gt;”, you may add other users or groups. If you do not have other users, you may leave it blank. Below are some examples of users or groups.&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;a. Google Account email: [user@gmail.com](mailto:user@gmail.com),

b. Google Group: admins@googlegroups.com,

c. Service account: server@example.gserviceaccount.com

d. Google Workspace domain: example.com
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;&lt;em&gt;“Done”&lt;/em&gt;&lt;/strong&gt; to proceed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the newly opened window, there is a Service Account section at the bottom of the page, select &lt;strong&gt;&lt;em&gt;“Manage Service Accounts”&lt;/em&gt;&lt;/strong&gt; on the left.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the table, click on the 3 dots at the end, on the &lt;strong&gt;&lt;em&gt;”Actions sections”.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;&lt;em&gt;“Manage Keys”.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;&lt;em&gt;“Add Key”&lt;/em&gt;&lt;/strong&gt; and select &lt;strong&gt;&lt;em&gt;“Create New Key”.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select JSON as the Key Type.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A JSON will be automatically downloaded. It should be like the below:-&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Njf30eSs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/183126353-ce4c5fd8-2841-4594-9091-5b357a6de56e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Njf30eSs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/183126353-ce4c5fd8-2841-4594-9091-5b357a6de56e.png" alt="image" width="880" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;em&gt;Note: Ensure the JSON file is saved in the same folder as your project.&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4:  Create a Google Sheet&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Go to Google Sheets and create a new one.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click the Share button and add the client-email that was on the JSON file e.g.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;"new-tutorial@ new-tutorial-...iam.gserviceaccount.com"&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Get the spreadsheet key from the URL. As highlighted below in black.&lt;/p&gt;

&lt;p&gt;"&lt;em&gt;://docs.google.com/spreadsheets/d/&lt;strong&gt;1l9yMNyoXt.....cZCYACyc&lt;/strong&gt;/edit#gid=0&lt;/em&gt; "&lt;/p&gt;

&lt;p&gt;This &lt;strong&gt;Spreadsheet Key&lt;/strong&gt; will be used in the notebook as shown below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5:  Jupyter Notebook&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Back to the notebook.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Import the necessary libraries&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# import libraries

import  gspread

from  oauth2client.service_account  import  ServiceAccountCredentials

from  df2gspread  import  df2gspread  as  d2g
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Access Google Sheets and Google Drive APIs&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Access the Google Sheets and Google Drive APIs

scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']

credentials = ServiceAccountCredentials.from_json_keyfile_name('name_of_your_json_file.json',scopes=scope)

gc = gspread.authorize(credentials)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Code to upload the dataframe to Google Sheets.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;spreadsheet_key&lt;/strong&gt; is, what we copied earlier when we created the Google Sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;worksheet_name&lt;/strong&gt; is, by default named Sheet_1. You can change this on the Google sheet as per your preference.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Share the dataframe with Google Sheets

spreadsheet_key = '1XccW9EiPSYHRmmESyLTTUnmRdfMDiGlzqnG0_jOmA5Q'

worksheet_name = "Main"

result = d2g.upload(your_dataframe_name, spreadsheet_key, worksheet_name, credentials = credentials, row_names=True)

print(result)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Step 6:  Tableau&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To download Tableau &lt;a href="https://public.tableau.com/en-us/s/download"&gt;click here&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On the left pane, select &lt;strong&gt;&lt;em&gt;“Google Drive”&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k_KJVgao--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/183126738-2361bd89-b6ae-4dad-a4b1-4185831bcbe0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k_KJVgao--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/183126738-2361bd89-b6ae-4dad-a4b1-4185831bcbe0.png" alt="image" width="880" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;This will require authentication and it will redirect you to your browser.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enter your correct details and select Allow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A pop-up window will appear, where you will select the correct project Google Sheet, as you had saved it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This will open your data in Tableau as shown below: -&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--04sG7t1l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/183126891-07b46074-adf8-4dc5-848c-bd2e152b5b36.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--04sG7t1l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/183126891-07b46074-adf8-4dc5-848c-bd2e152b5b36.png" alt="image" width="880" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://public.tableau.com/app/profile/claire.maina/viz/MavenChurnChallenge_16585980395970/MavenDashboard"&gt;Here&lt;/a&gt; is a sample of one of my visualizations created using this process.&lt;/p&gt;

</description>
      <category>tableau</category>
      <category>python</category>
      <category>tutorial</category>
      <category>datascience</category>
    </item>
    <item>
      <title>SQL JOINS</title>
      <dc:creator>Claire Maina</dc:creator>
      <pubDate>Fri, 15 Jul 2022 10:27:26 +0000</pubDate>
      <link>https://dev.to/clairetaar/sql-joins-1bae</link>
      <guid>https://dev.to/clairetaar/sql-joins-1bae</guid>
      <description>&lt;h2&gt;
  
  
  SQL Joins
&lt;/h2&gt;

&lt;p&gt;Say for example you have multiple tables. One table, for example, Products, is missing the Supplier Column. But when you check a different table, for example Supplier, you find it has the Supplier Column you need. So how do you get the Supplier Column to the Product table, whilst ensuring all details in the rows are accurate and matching?&lt;/p&gt;

&lt;p&gt;This is what we shall cover today - SQL JOINS. Let’s get started:-&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;What is an SQL Join statement?&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Types of SQL Joins&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What is an SQL Join statement?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQL Join statement is used to combine data or rows from two or more tables, based on a related column between them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sample Data:-&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table 1 – Products Table&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Product_ID&lt;/th&gt;
&lt;th&gt;Product_Name&lt;/th&gt;
&lt;th&gt;Customer_ID&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Rice&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;Soap&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Bread&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Milk&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;Water&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Table 2 – Supplier Table&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Supplier_ID&lt;/th&gt;
&lt;th&gt;Product_Name&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;A01&lt;/td&gt;
&lt;td&gt;Bread&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A02&lt;/td&gt;
&lt;td&gt;Rice&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A03&lt;/td&gt;
&lt;td&gt;Milk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A04&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A05&lt;/td&gt;
&lt;td&gt;Soap&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Note that&lt;/strong&gt; for the Supplier table we have a &lt;strong&gt;NULL&lt;/strong&gt; on the Product_Name for the Supplier_ID A04.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Types of Joins&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inner Join&lt;/strong&gt; - Returns records that have matching values in both
tables.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Left Join&lt;/strong&gt; - Returns all records from the left table, and the matched
records from the right table.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Right Join&lt;/strong&gt; - Returns all records from the right table, and the
matched records from the left table.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Full Join&lt;/strong&gt; - Returns all records when there is a match in either left
or right table.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--UoRtEn69--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179205516-59860329-de49-43f3-b9cf-7a52315038c5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UoRtEn69--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179205516-59860329-de49-43f3-b9cf-7a52315038c5.png" alt="image" width="880" height="179"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Inner Join&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As described above, the inner join returns records that have matching values in both tables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax you shall use:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TaPl9vCG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179201485-48062742-6780-43b8-9f85-2e23c7b66906.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TaPl9vCG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179201485-48062742-6780-43b8-9f85-2e23c7b66906.png" alt="image" width="880" height="109"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W4-f789u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179201957-40b4cfd6-294d-49b1-a360-01e4d2ba9719.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W4-f789u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179201957-40b4cfd6-294d-49b1-a360-01e4d2ba9719.png" alt="image" width="880" height="143"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Left Join&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As described above, left join returns all records from the left table, and the matched records from the right table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--d2Li8jLN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202105-542c78ba-d785-44ae-97cd-9afab821ad3b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--d2Li8jLN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202105-542c78ba-d785-44ae-97cd-9afab821ad3b.png" alt="image" width="880" height="106"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NC-KUmIZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202174-25b8cbb3-2530-48a5-8901-2937126b1d37.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NC-KUmIZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202174-25b8cbb3-2530-48a5-8901-2937126b1d37.png" alt="image" width="880" height="181"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Right Join&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As described above, right Join returns all records from the right table, and the matched records from the left table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R_zM8LzL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202276-5e15128d-625f-4caa-be84-96bce1677a05.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R_zM8LzL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202276-5e15128d-625f-4caa-be84-96bce1677a05.png" alt="image" width="880" height="112"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RIJmtal3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202340-ef6c7af4-e48e-4dea-a55d-f13aadfa6572.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RIJmtal3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202340-ef6c7af4-e48e-4dea-a55d-f13aadfa6572.png" alt="image" width="880" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Full Join&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As described above, the full join returns all records when there is a match in either left or right table. MySQL does not support Full Join keywords, hence we shall use UNION to combine the Right Join and Left Join so as to create a Full Join.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ngwJAmwZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202411-44c4761d-b098-4937-9196-9e891c22dfdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ngwJAmwZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202411-44c4761d-b098-4937-9196-9e891c22dfdf.png" alt="image" width="880" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HSKJsHad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202493-3b68544c-58b1-4a43-8635-07080daa44ed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HSKJsHad--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/179202493-3b68544c-58b1-4a43-8635-07080daa44ed.png" alt="image" width="880" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To Note:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As seen in the Full Join, the Supplier_ID &lt;strong&gt;‘A04’&lt;/strong&gt; did not have a Product_Name, hence the details are marked as NULL even after performing Joins.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>100daysofcode</category>
      <category>sql</category>
    </item>
    <item>
      <title>Introduction to Data Structures With Python.</title>
      <dc:creator>Claire Maina</dc:creator>
      <pubDate>Mon, 21 Feb 2022 21:03:19 +0000</pubDate>
      <link>https://dev.to/clairetaar/introduction-to-data-structures-with-python-p9o</link>
      <guid>https://dev.to/clairetaar/introduction-to-data-structures-with-python-p9o</guid>
      <description>&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Data structures&lt;/strong&gt; allow us to organize, store, and manage data for efficient access and modification.&lt;/p&gt;

&lt;p&gt;In this article, we shall cover in-built data structures and user-defined data structures. &lt;/p&gt;

&lt;h4&gt;
  
  
  In-Built Data Structures
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;1. Lists&lt;/strong&gt;&lt;br&gt;
 A list stores multiple items in a single variable. It is defined using square brackets [] and holds data that is separated by commas. The list is mutable, which means we can modify its element after it is created. It is also ordered, which means the items have a defined order, and that order will not change. If you add new items to a list, the new items will be placed at the end of the list. Lists can also contain a mix of different data types. Lists are changeable, meaning that we can change, add, and remove items in a list after it has been created. The first item in a list has index &lt;code&gt;[0]&lt;/code&gt;, the second item has index &lt;code&gt;[1]&lt;/code&gt;. Since lists are indexed, lists can have items with the same value.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OP6IXF3S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155010127-266d2089-d396-4c6d-b8ff-041cb6d65aa6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OP6IXF3S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155010127-266d2089-d396-4c6d-b8ff-041cb6d65aa6.png" alt="image" width="880" height="191"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Dictionaries&lt;/strong&gt;&lt;br&gt;
Dictionaries are used to store data values in &lt;strong&gt;&lt;em&gt;key:value&lt;/em&gt;&lt;/strong&gt; pairs. It is a collection which is ordered and changeable. It is defined using curly braces {} and holds data that is separated by commas. &lt;em&gt;Values&lt;/em&gt; in a dictionary can be of any data type and can be duplicated, whereas &lt;em&gt;keys&lt;/em&gt; can’t be repeated and must be &lt;em&gt;immutable&lt;/em&gt;, which means we can not modify its element after it is created. Note that dictionary keys are case sensitive.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yiLp8Eka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155011524-cbf6fedb-a9f3-4b14-9690-97c5c98df612.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yiLp8Eka--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155011524-cbf6fedb-a9f3-4b14-9690-97c5c98df612.png" alt="image" width="880" height="153"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Tuples&lt;/strong&gt;&lt;br&gt;
Tuples are very similar to Lists except that they are immutable. It is defined using round brackets (). Tuple Packing is the creation of a python tuple without the use of parentheses.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cUxEyP4e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155012569-c4b2794d-4a6f-45d7-b493-364cedffbac1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cUxEyP4e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155012569-c4b2794d-4a6f-45d7-b493-364cedffbac1.png" alt="image" width="880" height="201"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Sets&lt;/strong&gt;&lt;br&gt;
 A set is an unordered collection of data type that is iterable, mutable and has no duplicate elements. It is defined using curly braces {} or using the function set().&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EB3mOceI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155013402-1af99e77-b778-4cc7-bc12-3258d51b1373.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EB3mOceI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155013402-1af99e77-b778-4cc7-bc12-3258d51b1373.png" alt="image" width="880" height="81"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User-Defined data structures&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Queues&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Queue is a linear structure which follows a particular order in which the operations are performed. The order is FIFO which means First In First Out. A good example of a queue, is a queue of shoppers in a supermarket where the shopper that came first to the till is served first. In a queue, we remove the item the least recently added.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Operations on Queue:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mainly the following four basic operations are performed on queue:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enqueue:&lt;/strong&gt; Adds an item to the queue. If the queue is full, then it is said to be an Overflow condition.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dequeue:&lt;/strong&gt; Removes an item from the queue. The items are popped in the same order in which they are pushed. If the queue is empty, then it is said to be an Underflow condition.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Front:&lt;/strong&gt; Get the front item from queue.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rear:&lt;/strong&gt; Get the last item from queue.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DWlOXT1F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155020553-84bc6f47-0048-4d83-96d9-36857b86b63c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DWlOXT1F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155020553-84bc6f47-0048-4d83-96d9-36857b86b63c.png" alt="image" width="880" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Stack&lt;/strong&gt;&lt;br&gt;
The stack is a linear data structure where elements are arranged sequentially. It follows the mechanism L.I.F.O which means Last In First Out. For example, in browsers the last opened tab will be the top most item in the history. In stack, a new element is added at one end and an element is removed from that end only. The insert and delete operations are often called push and pop respectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Below are some of the functions associated with stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;empty()&lt;/strong&gt;  – Returns whether the stack is empty&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;size()&lt;/strong&gt;  – Returns the size of the stack&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;top()&lt;/strong&gt; – Returns a reference to the topmost element of the stack&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;push()&lt;/strong&gt;  – Inserts an element at the top of the stack&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;pop()&lt;/strong&gt;  – Deletes the topmost element of the stack&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Implementation using list&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6Xq7tqf5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155018252-66b7322e-d046-4d69-bf69-99a63c81d7ce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6Xq7tqf5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/155018252-66b7322e-d046-4d69-bf69-99a63c81d7ce.png" alt="image" width="880" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Linked List&lt;/strong&gt;&lt;br&gt;
Linked List is a linear data structure where the elements are linked using pointers. Each element of a linked list is called a &lt;strong&gt;node&lt;/strong&gt;, and every node has two different fields:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Data&lt;/strong&gt;  contains the value to be stored in the node.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Next&lt;/strong&gt;  contains a address to the next node on the list.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first node is called the  &lt;strong&gt;&lt;code&gt;head&lt;/code&gt;&lt;/strong&gt;, and it’s used as the starting point for any iteration through the list. The last node must have its  &lt;code&gt;next&lt;/code&gt;  reference pointing to  &lt;code&gt;Null&lt;/code&gt; to determine the end of the list.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>codenewbie</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Python 101: Ultimate Python Guide</title>
      <dc:creator>Claire Maina</dc:creator>
      <pubDate>Mon, 14 Feb 2022 15:41:44 +0000</pubDate>
      <link>https://dev.to/clairetaar/python-101-ultimate-python-guide-2nc7</link>
      <guid>https://dev.to/clairetaar/python-101-ultimate-python-guide-2nc7</guid>
      <description>&lt;h2&gt;
  
  
  Python 101: Ultimate Python Guide
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Introduction to Python
&lt;/h2&gt;

&lt;p&gt;Python is an interpreted, interactive, object-oriented programming language. It is a popular programming language created by Guido van Rossum, and released in 1991.&lt;/p&gt;

&lt;p&gt;It is used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web development&lt;/li&gt;
&lt;li&gt; Desktop Application&lt;/li&gt;
&lt;li&gt;Automation&lt;/li&gt;
&lt;li&gt;Data science, Artificial Intelligence, Machine Learning&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Python?
&lt;/h2&gt;

&lt;p&gt;Python works on different platforms (Windows, Mac, Linux, Raspberry Pi, etc). It has a simple syntax similar to the English language that allows developers to write programs with fewer lines than some other programming languages.&lt;br&gt;
Python runs on an interpreter system, meaning that code can be executed as soon as it is written. This means that prototyping can be very quick.&lt;br&gt;
Python can be treated in a procedural way, an object-oriented way or a functional way. It uses new lines to complete a command, as opposed to other programming languages which often use semicolons or parentheses.&lt;br&gt;
It relies on indentation, using whitespace, to define scope; such as the scope of loops, functions and classes. Other programming languages often use curly-brackets for this purpose.&lt;br&gt;
Python programs have the extension .py and can be run from the command line by typing python file_name.py.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concepts we will be going through today:
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;How to install Python &lt;/li&gt;
&lt;li&gt;Your first python program &lt;/li&gt;
&lt;li&gt;Comments &lt;/li&gt;
&lt;li&gt;Variables&lt;/li&gt;
&lt;li&gt;Arithmetic Operators&lt;/li&gt;
&lt;li&gt;Comparison Operators&lt;/li&gt;
&lt;li&gt;Logical Operators&lt;/li&gt;
&lt;li&gt;Control Flow and Conditional operators&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;1)    How to install Python&lt;/strong&gt;&lt;br&gt;
The most recent major version of Python is Python 3, which we shall be using. In this tutorial, Python will be written in a text editor. It is possible to write Python in an Integrated Development Environment, such as VSCode, Pycharm, Atom, Netbeans or Eclipse which are particularly useful when managing larger collections of Python files.&lt;br&gt;
&lt;a href="%28https://wiki.python.org/moin/BeginnersGuide/Download%29"&gt;Here&lt;/a&gt; is a guide on how to install python on your machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=MlIzFUI1QGA"&gt;Here&lt;/a&gt; is a guide on how to install VSCode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2)    Your first python program&lt;/strong&gt;&lt;br&gt;
Create a new folder in your machine where you will be saving your python files, for example PythonProjects. Launch the VS code and open the new folder you created, PythonProjects. Create a new python file, helloworld.py file and enter the code below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--02NhoxJN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153882057-3cb02569-7244-4a90-acde-544677aca6b8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--02NhoxJN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153882057-3cb02569-7244-4a90-acde-544677aca6b8.png" alt="image" width="880" height="56"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;print()&lt;/strong&gt; is a built-in function in Python.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3)    Comments&lt;/strong&gt;&lt;br&gt;
You can add comments to your Python scripts. Comments are important to make sure that you and others can understand what your code is about. To add comments to your Python script, you can use the # tag. These comments are not run as Python code, so they will not influence your result.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_a_FzHEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153883859-0ea57b20-02c6-4680-ab1c-2845c65be198.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_a_FzHEl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153883859-0ea57b20-02c6-4680-ab1c-2845c65be198.png" alt="image" width="880" height="58"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4)    Variables&lt;/strong&gt;&lt;br&gt;
Variables are containers for storing data values. Python has no command for declaring a variable. Just type in the variable and when values will be given to it, then it will automatically know whether the value given would be an int, float, or char or even a String. Note that variables are case-sensitive and the first character can either be character or underscore and not a digit. Once you create such a variable, you can later call up its value by typing the variable name.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---qX-MScv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153865716-efdc242e-9e71-49bb-b708-6723a6bd3f49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---qX-MScv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153865716-efdc242e-9e71-49bb-b708-6723a6bd3f49.png" alt="image" width="880" height="84"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JsFaAvDc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153865867-c7ea3743-71af-41b5-a89a-f484d629476f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JsFaAvDc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153865867-c7ea3743-71af-41b5-a89a-f484d629476f.png" alt="image" width="880" height="53"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5)    Arithmetic Operators&lt;/strong&gt;&lt;br&gt;
They are used to perform mathematical operations like addition, subtraction, multiplication, and division.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VHxwZDOj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153865971-de43e63e-d14b-4080-ba87-f5909e065704.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VHxwZDOj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153865971-de43e63e-d14b-4080-ba87-f5909e065704.png" alt="image" width="880" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YVHKdXkb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866070-5c99c7af-3ad8-4f3f-9447-ec61fff8bb60.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YVHKdXkb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866070-5c99c7af-3ad8-4f3f-9447-ec61fff8bb60.png" alt="image" width="880" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6)    Comparison Operators&lt;/strong&gt;&lt;br&gt;
Compares the values. It either returns True or False according to the condition.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S1qqtWWK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866171-954f9f80-849c-491c-8878-ba469f4c4f29.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S1qqtWWK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866171-954f9f80-849c-491c-8878-ba469f4c4f29.png" alt="image" width="880" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RpnbQ8ki--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866276-2e0110b5-336f-4e9b-a43f-d552013cc8b0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RpnbQ8ki--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866276-2e0110b5-336f-4e9b-a43f-d552013cc8b0.png" alt="image" width="880" height="137"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7)    Logical Operators&lt;/strong&gt;&lt;br&gt;
They perform Logical AND, Logical OR, and Logical NOT operations. It is used to combine conditional statements.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5K2POcrP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866370-63a497cf-1ee0-4fc0-94af-fae2042faad6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5K2POcrP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866370-63a497cf-1ee0-4fc0-94af-fae2042faad6.png" alt="image" width="880" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_ft3CqGx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866443-209f3378-72f8-4784-b61b-8b8c9b316d39.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_ft3CqGx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866443-209f3378-72f8-4784-b61b-8b8c9b316d39.png" alt="image" width="880" height="93"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8)    Control Flow and Conditional operators&lt;/strong&gt;&lt;br&gt;
So far the code has consisted of sequential execution, in which statements are always performed one after the next, in exactly the order specified. Frequently, a program needs to skip over some statements, execute a series of statements repetitively, or choose between alternate sets of statements to execute. That is where control structures come in. A control structure directs the order of execution of the statements in a program (referred to as the program’s control flow).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;if Statement&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;if statement accepts boolean values – if the value is true then it will execute the block of statements below it otherwise it will not. As we know, python uses indentation to identify a block. &lt;br&gt;
Let us use a real-life scenario “If the weather is sunny, I will not wear a jacket”&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uszCF00z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866637-0f6af303-d50a-4f68-b085-c7713ad40dc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uszCF00z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153866637-0f6af303-d50a-4f68-b085-c7713ad40dc9.png" alt="image" width="880" height="115"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LWtrKbnP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153869161-59ef08e6-cf6b-4b5f-b7be-31d6e2875b9e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LWtrKbnP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153869161-59ef08e6-cf6b-4b5f-b7be-31d6e2875b9e.png" alt="image" width="880" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;if-else Statement&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: “If the weather is not sunny, wear a jacket”&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_XI6KUAG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153871570-6398a5c6-acf1-48f9-93f3-3dea5953fe8c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_XI6KUAG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153871570-6398a5c6-acf1-48f9-93f3-3dea5953fe8c.png" alt="image" width="880" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RngIbbBh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153871605-962e5271-586e-4ae8-ad58-d5a658001637.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RngIbbBh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153871605-962e5271-586e-4ae8-ad58-d5a658001637.png" alt="image" width="880" height="40"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;elif statement&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example: “If the weather is sunny, no jacket, else if(elif) the weather is cold, wear a jacket, else wear a light jacket”.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rn664TxE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153873041-62aff520-0d3b-44fd-b1c2-0bf8bc2c82c8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rn664TxE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153873041-62aff520-0d3b-44fd-b1c2-0bf8bc2c82c8.png" alt="image" width="880" height="202"&gt;&lt;/a&gt;&lt;br&gt;
Output&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Kux6ZXAk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153873369-55727378-413d-4c63-82c9-0e69afe9749c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Kux6ZXAk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/40733583/153873369-55727378-413d-4c63-82c9-0e69afe9749c.png" alt="image" width="880" height="43"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>codenewbie</category>
      <category>100daysofcode</category>
    </item>
  </channel>
</rss>
