<?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: Elizabeth Njoroge</title>
    <description>The latest articles on DEV Community by Elizabeth Njoroge (@elizabeth_njoroge_7c850b9).</description>
    <link>https://dev.to/elizabeth_njoroge_7c850b9</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3952219%2F55c0b0f3-82c5-47e6-b554-c6a3fb63d0f8.jpg</url>
      <title>DEV Community: Elizabeth Njoroge</title>
      <link>https://dev.to/elizabeth_njoroge_7c850b9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/elizabeth_njoroge_7c850b9"/>
    <language>en</language>
    <item>
      <title>From Stage to Data: An End-to-End Power BI dashboard for a Matatu Fleet.</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Sat, 10 Oct 2026 15:10:56 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/from-stage-to-data-an-end-to-end-power-bi-dashboard-for-a-matatu-fleet-j62</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/from-stage-to-data-an-end-to-end-power-bi-dashboard-for-a-matatu-fleet-j62</guid>
      <description>&lt;p&gt;&lt;strong&gt;STEP 1 DATA CLEANING.&lt;/strong&gt;&lt;br&gt;
The raw data set is messy and needs cleaning like;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;handling missing values.&lt;/li&gt;
&lt;li&gt;duplicates.&lt;/li&gt;
&lt;li&gt;invalid dates.&lt;/li&gt;
&lt;li&gt;nulls.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;STEP 2 HOSTING THE DATA ON AIVEN&lt;/strong&gt;&lt;br&gt;
After the data is cleaned, we move the data to aiven for postgreSQL.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create a PostgreSQL instance on aiven.&lt;/li&gt;
&lt;li&gt;Download the CA Certificate.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;STEP 3 CONNECTING AIVEN TO POWER BI&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install the Certificate&lt;/li&gt;
&lt;li&gt;Connect the data to Power BI.&lt;/li&gt;
&lt;li&gt;Authenticate by entering the credentials provide by Aiven.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;STEP 4 DATA MODELLING AND DASHBOARDS&lt;/strong&gt;&lt;br&gt;
Once connected, build different dashboards using models provided like the charts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CONCLUSION&lt;/strong&gt;&lt;br&gt;
Once done you would have created an end to end project for the fleet where one can get information on it.&lt;/p&gt;

&lt;p&gt;link : &lt;a href="https://github.com/Issahnjoroge/SAFARI-C0NNECT" rel="noopener noreferrer"&gt;https://github.com/Issahnjoroge/SAFARI-C0NNECT&lt;/a&gt;&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>database</category>
      <category>postgres</category>
    </item>
    <item>
      <title>Object-Oriented Programming; Python Classes and Objects.</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Sat, 10 Oct 2026 14:37:51 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/object-oriented-programming-python-classes-and-objects-28c3</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/object-oriented-programming-python-classes-and-objects-28c3</guid>
      <description>&lt;p&gt;It's the weekend, you have nothing to do, you pick up the pad and turn on the screen.&lt;/p&gt;

&lt;p&gt;A menu appears asking you to a new game, continue or logout. You hit a new game and the screen asks you to choose a character. &lt;/p&gt;

&lt;p&gt;Now there are three dark figure with different stature, a warrior with a sword, a mage with a staff and a police man with a gun.&lt;/p&gt;

&lt;p&gt;Those three figures are not the characters but they are the blueprint, you are the one who will create the characters by choice of the name or the health bar or even by the stats that each has. &lt;/p&gt;

&lt;p&gt;Before pressing the done button that creates the character what is happening is the code is created is a &lt;strong&gt;Blueprint&lt;/strong&gt;. It describes what every character in that game has.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsbj4d8pooo4l31vbrzqo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsbj4d8pooo4l31vbrzqo.png" alt=" " width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now after pressing that button what ran is now a &lt;strong&gt;character&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyqi9bntai1uk4zuuwaoj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyqi9bntai1uk4zuuwaoj.png" alt=" " width="770" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Object&lt;/strong&gt;.&lt;br&gt;
Now you are the object, the blueprint written was the &lt;strong&gt;class&lt;/strong&gt;. While playing the game, the moment you start fighting or setting your name was the &lt;strong&gt;_ &lt;em&gt;init&lt;/em&gt; _&lt;/strong&gt; and the &lt;strong&gt;self&lt;/strong&gt; is how you refer yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;_&lt;em&gt;init&lt;/em&gt; _&lt;/strong&gt;&lt;br&gt;
We need a way to give each character its own name, health and power. It defines the constructor.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;     def __init__(self, name, health, power):
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Self&lt;/strong&gt;&lt;br&gt;
This is how a character refers to itself and the self.name= name stores the name argument as an attribute on the object.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   self.name = name
   self.health = health
   self.power = power
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Methods&lt;/strong&gt; define the behaviour.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   def attack(self, target):
   def status(self):
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Difference between Class and Instance Attributes.&lt;/strong&gt;&lt;br&gt;
1.Class attributes belong to the class itself and are shared across every single character from that class. They are the global rules of the game.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   class Character:
        max_level = 99          
        game_version = "1.0" 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;2.Instance attributes belong to one object. They are now the individual names and stats.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    self.name = name
    self.health = health
    self.power = power
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;_&lt;em&gt;Str&lt;/em&gt; _ and _&lt;em&gt;Repr&lt;/em&gt; _.&lt;/strong&gt;&lt;br&gt;
_&lt;em&gt;Str&lt;/em&gt; _ is a string that that is intended for end users. It is what gets called when you use str() or print() on an object.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feddac7omuixdm3zcfrfk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feddac7omuixdm3zcfrfk.png" alt=" " width="800" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faesv3pizmay6g5x3keqo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faesv3pizmay6g5x3keqo.png" alt=" " width="668" height="188"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;_&lt;em&gt;Repr&lt;/em&gt; _&lt;/strong&gt; is a representation and is more for developers. It is what you see in the debug view.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhii63n9scjtsmjfv525b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhii63n9scjtsmjfv525b.png" alt=" " width="799" height="235"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc8onyt29uc4i4h743v6q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc8onyt29uc4i4h743v6q.png" alt=" " width="800" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complete Class&lt;/strong&gt;&lt;br&gt;
One of a good example of a class is a bank account that combines the classes, attributes and methods.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnryg6osx1o382tgnhply.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnryg6osx1o382tgnhply.png" alt=" " width="800" height="625"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9zg6uva6numc1r15hu7l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9zg6uva6numc1r15hu7l.png" alt=" " width="548" height="316"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Class Attributes acts like global rules for a game and affects all instances.&lt;br&gt;
Instance Attributes hol object-specific like a characters name.&lt;br&gt;
_&lt;em&gt;repr&lt;/em&gt; _ is developers friendly.&lt;br&gt;
_&lt;em&gt;str&lt;/em&gt; _ is end-user friendly.&lt;/p&gt;

</description>
      <category>python</category>
      <category>ai</category>
      <category>programming</category>
    </item>
    <item>
      <title>Let's Argue...the python way.</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Fri, 09 Oct 2026 16:32:32 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/lets-arguethe-python-way-3o56</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/lets-arguethe-python-way-3o56</guid>
      <description>&lt;p&gt;When you are at a hotel and the waiter is waiting for your order, you pick something from the menu. Now when you want something extra like cheese, no onions in your food or the rarity of the meat then you say that not as a requirement but as something optional. &lt;br&gt;
That is how python argument works, they are values that you call a function with. &lt;/p&gt;

&lt;p&gt;There are 5 different ways;&lt;br&gt;
1.&lt;strong&gt;Positional Arguments&lt;/strong&gt;, they are matched by their positions and the first argument goes to the first parameter.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvtk13u6afgqjjqr9c05n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvtk13u6afgqjjqr9c05n.png" alt=" " width="799" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.&lt;strong&gt;Keyword Arguments&lt;/strong&gt; are matched by name and the order does not matter.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9cxdkup9ul0ljhc3lcb5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9cxdkup9ul0ljhc3lcb5.png" alt=" " width="800" height="254"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.&lt;strong&gt;Default Arguments&lt;/strong&gt; define parameters that are option and when you don't provide a value, it goes to default.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxaef1j2gcyr8pqiksd17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxaef1j2gcyr8pqiksd17.png" alt=" " width="800" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.&lt;strong&gt;Variable Positional&lt;/strong&gt; also called &lt;strong&gt;&lt;em&gt;*args&lt;/em&gt;&lt;/strong&gt; collects extra positional arguments. The *args collect all positional arguments into a tuple.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fonc6yl1y470kx1xoio0h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fonc6yl1y470kx1xoio0h.png" alt=" " width="730" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.&lt;strong&gt;Keyword Variable Arguments&lt;/strong&gt; also called **&lt;em&gt;kwargs&lt;/em&gt;  collects extra keyword arguments into a dictionary.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi5rw0ch5t185hl6hxjum.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi5rw0ch5t185hl6hxjum.png" alt=" " width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;With Positional, the order matters.&lt;/li&gt;
&lt;li&gt;With Keyword, you have to be precise.&lt;/li&gt;
&lt;li&gt;With *args, shows a list of things.&lt;/li&gt;
&lt;li&gt;With **kwargs, shows a dictionary.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>ai</category>
    </item>
    <item>
      <title>Functions</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Tue, 06 Oct 2026 08:58:52 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/functions-36f7</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/functions-36f7</guid>
      <description>&lt;p&gt;A function is a reusable block of code that you can call later to perfume a task. It is used to reduce repetition and centralises change so you can fix the logic once instead of multiple times.&lt;br&gt;
To create a &lt;strong&gt;function&lt;/strong&gt; in Python, you use the &lt;strong&gt;def&lt;/strong&gt; keyword, followed by a name, parentheses, and a colon. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn97hxx1o9z5f834oep3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn97hxx1o9z5f834oep3m.png" alt=" " width="764" height="184"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Parameter&lt;/strong&gt; is the names in the function definition that acts as a placeholder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Argument&lt;/strong&gt; is the actual values that you pass when invoking the function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Return values.&lt;/strong&gt;&lt;br&gt;
We have something called the return value which calculates what you want and hands back the results.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6d6nw9e74sfhk3ib8nem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6d6nw9e74sfhk3ib8nem.png" alt=" " width="424" height="290"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multiple Parameters&lt;/strong&gt;&lt;br&gt;
Functions can use multiple parameters that's separated by commas and the arguments are matched in order.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi8s6vfq5pcsvmxesch0j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi8s6vfq5pcsvmxesch0j.png" alt=" " width="799" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Functions calling other Functions&lt;/strong&gt;&lt;br&gt;
You can combine functions to create something like a building block.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn2wa76if2hee0e6yiyjm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn2wa76if2hee0e6yiyjm.png" alt=" " width="620" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Python Data Structures cheat sheets: when to use lists, sets, tuples and dictionaries.</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Mon, 05 Oct 2026 19:48:50 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/python-data-structures-cheat-sheets-when-to-use-lists-sets-tuples-and-dictionaries-2j49</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/python-data-structures-cheat-sheets-when-to-use-lists-sets-tuples-and-dictionaries-2j49</guid>
      <description>&lt;p&gt;A data structure is a way of organising information and the choice depends on use. The best data structure to use depends on how you intend to access and manipulate the data, as each structure has advantages and disadvantages for different operations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Essential Python Data Structures.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;1.Lists.&lt;/strong&gt;&lt;br&gt;
Python's list works like a music playlist where there are different songs that are stored in a specific kind of order. These orders collection can be changed whenever you want.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to create a list; creating a list puts items into square brackets[], separated by commas and the items can be a string, numbers or booleans.&lt;/li&gt;
&lt;li&gt;How to access list items; this can be done by indexing where you take a single item from a list, have its index number inside the square bracket.&lt;/li&gt;
&lt;li&gt;How to modify the lists; you can change an item by index where you assign a new value to its index if you want to replace it.
You can also add items with append which adds the entire argument as a single item, insert when you want to merge two lists together and extend when you want to unpack the argument and add each element individually and these does different functions.&lt;/li&gt;
&lt;li&gt;How to remove items from a list; use remove when you know the value, pop(index) when you know the position and its a yes, pop() when you want the last time, del list[index] when you know the position and its a no and clear when you want to empty the list.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2&lt;/strong&gt;.&lt;strong&gt;Set in python.&lt;/strong&gt;&lt;br&gt;
Python set is an unordered collection of elements that are unique, so basically one that removes duplicates.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to create a set in by placing items inside curly braces{} and is separate by commas.&lt;/li&gt;
&lt;li&gt;Set Operations includes, Union which gives you all items from both sets without duplicates, Intersection gives you only the items that appear in both sets and Differences which gives you items that are in the first set but not in the second set.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When to use a list is when you care about order or duplicates but use a set when you care for uniqueness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3&lt;/strong&gt;.&lt;strong&gt;Tuples&lt;/strong&gt;&lt;br&gt;
With tuples, once you create it you cannot change it for example GPS coordinates.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to create tuples; by putting items inside parentheses(), and is spared by a comma.&lt;/li&gt;
&lt;li&gt;Packing is when you create a tuple by assigning multiple values to one variable and Unpacking is the reverse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4.Dictionaries&lt;/strong&gt;&lt;br&gt;
Dictionaries is used to store key-value pairs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to create Dictionary; by using curly braces{} with the key-values being spared by colon instead of a comma.&lt;/li&gt;
&lt;li&gt;Accessing and Modifying Dictionary Values; where to get a value from a dictionary, you put the key inside square brackets. To change a value, assign to that key. To add a new pair, you just assign to a key that doesn't exist yet.&lt;/li&gt;
&lt;li&gt;Accessing and Modifying Dictionary Values; where to get a value from a dictionary, you put the key inside square brackets. To change a value, you assign to that key and to add a new pair, just assign to a key that doesn't exist yet.&lt;/li&gt;
&lt;li&gt;Checking if a Key Exists; before accessing a key, you often want to check if it exists first. The &lt;strong&gt;&lt;em&gt;in&lt;/em&gt;&lt;/strong&gt; keyword checks for keys and not values. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Nested Dictionaries&lt;/strong&gt;&lt;br&gt;
A dictionary value can be another dictionary. This is called nesting and it lets you represent complex, structured data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Dictionaries are one of the most important data structures in Python as they are highly optimised and fast.&lt;/p&gt;

</description>
      <category>python</category>
      <category>data</category>
      <category>datascience</category>
      <category>cheatsheet</category>
    </item>
    <item>
      <title>Stop repeating yourself, try Loops.</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Tue, 15 Sep 2026 21:02:25 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/stop-repeating-yourself-try-loops-2ade</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/stop-repeating-yourself-try-loops-2ade</guid>
      <description>&lt;h3&gt;
  
  
  Loops for repetitive tasks.
&lt;/h3&gt;

&lt;p&gt;Loop takes a collection of items and run it once for each item. For example;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34qign2bogwshlulk3nk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F34qign2bogwshlulk3nk.png" alt=" " width="800" height="244"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The output,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsyp78oggn5qe86tyuawa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsyp78oggn5qe86tyuawa.png" alt=" " width="634" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to use a sequence of numbers making it to produce numbers one at a time ten we use &lt;strong&gt;&lt;em&gt;range&lt;/em&gt;&lt;/strong&gt;. It starts at 0 and stops before the number.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwxeqk27dug1bzqdcz534.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwxeqk27dug1bzqdcz534.png" alt=" " width="534" height="144"&gt;&lt;/a&gt;&lt;br&gt;
This prints &lt;em&gt;0,1,2&lt;/em&gt;, and does not include &lt;em&gt;3&lt;/em&gt; since we start with &lt;em&gt;0&lt;/em&gt;.&lt;br&gt;
If you want to choose where to start then &lt;strong&gt;range(start, stop)&lt;/strong&gt;. This starts at &lt;em&gt;2&lt;/em&gt; and stops before &lt;em&gt;6 _so it stops at _5&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffkwshq4bynczbuuv04hl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffkwshq4bynczbuuv04hl.png" alt=" " width="448" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to skip a number then &lt;strong&gt;range(start, stop, step)&lt;/strong&gt;.  This skips number &lt;em&gt;2&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa1ksefxz2k8fjzb629u7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa1ksefxz2k8fjzb629u7.png" alt=" " width="454" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Loop over a string&lt;/strong&gt;.&lt;br&gt;
This gets you a character one at a time and used to count letters or even check for spellings.&lt;br&gt;
Example with printing each letter,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk7pffr8kp79ljrduszpj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk7pffr8kp79ljrduszpj.png" alt=" " width="422" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example with printing each letter with its position number,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4qilyx6l4yx9edp2hh01.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4qilyx6l4yx9edp2hh01.png" alt=" " width="688" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example with counting the vowels of the word,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6x1ml95pga0y2rrzusej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6x1ml95pga0y2rrzusej.png" alt=" " width="798" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example with reversing the word,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbobukgx6m85xhq7f60aq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbobukgx6m85xhq7f60aq.png" alt=" " width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Loops over a dictionary&lt;/strong&gt;&lt;br&gt;
Dictionaries store data in &lt;em&gt;key: value&lt;/em&gt;&lt;br&gt;
Example, we have a data on different animals and the number of legs they have;&lt;br&gt;
animals = {"zebra": 4, "eagle": 2, "octopus": 8}&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;loop over keys&lt;/strong&gt;, shows the keys(animals listed)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdqt1fp5u0zr06jc2wc74.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdqt1fp5u0zr06jc2wc74.png" alt=" " width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.&lt;strong&gt;loop over values&lt;/strong&gt;, shows only the values (number of legs)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmvv15ekag5co0m6bfp9s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmvv15ekag5co0m6bfp9s.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.&lt;strong&gt;loop over the keys and values&lt;/strong&gt; (shows both the animals and the number of legs they have).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8iq5imox97wmljnn0mox.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8iq5imox97wmljnn0mox.png" alt=" " width="799" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.&lt;strong&gt;loop with position number&lt;/strong&gt; (shows the position, the animal and the number of legs). We also use the enumerate to show position.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhw8rpw946gi3tupk22n4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhw8rpw946gi3tupk22n4.png" alt=" " width="800" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.&lt;strong&gt;loop over multiple lists&lt;/strong&gt;, uses two related lists to loop them together at once by using &lt;em&gt;zip&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk6etnw49r0a3l0u0sijr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk6etnw49r0a3l0u0sijr.png" alt=" " width="799" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example with three lists at once,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F19tept6bgogk5gw2813z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F19tept6bgogk5gw2813z.png" alt=" " width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If one list is shorter, the extra is ignored,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsl1z81zd7tgxdx1jgdml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsl1z81zd7tgxdx1jgdml.png" alt=" " width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nested loops&lt;/strong&gt; is a loop inside another loop and is common for grinds and table.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5e0q95tsy169so5rzrt4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5e0q95tsy169so5rzrt4.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftts6ka8oeyk657pfvhws.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftts6ka8oeyk657pfvhws.png" alt=" " width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;&lt;em&gt;While&lt;/em&gt;&lt;/strong&gt; in loops is used when there is a condition. You use this when you do not know in advance the number of iterations. If a condition is &lt;em&gt;true&lt;/em&gt; the loops run unless the condition becomes &lt;em&gt;false&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv1o99ax0ft41wc46dy3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv1o99ax0ft41wc46dy3l.png" alt=" " width="780" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.&lt;strong&gt;&lt;em&gt;Break&lt;/em&gt;&lt;/strong&gt; in loop leaves the loop early.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvmxnwf6mpc45oh1ybsfn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvmxnwf6mpc45oh1ybsfn.png" alt=" " width="696" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.&lt;strong&gt;&lt;em&gt;Continue&lt;/em&gt;&lt;/strong&gt; in loop skips the rest of the current iteration and jumps back to the top of the loop.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fruwafrqz09s61wwwpql5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fruwafrqz09s61wwwpql5.png" alt=" " width="696" height="304"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsr50ejp9dtsmpf24uavi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsr50ejp9dtsmpf24uavi.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.&lt;strong&gt;&lt;em&gt;Pass&lt;/em&gt;&lt;/strong&gt; does nothing and means that it is intentionally empty.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ymmhhbauc8ev8nqygol.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ymmhhbauc8ev8nqygol.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzwfqmyl0auywsd3v7syh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzwfqmyl0auywsd3v7syh.png" alt=" " width="598" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;For&lt;/em&gt;&lt;/strong&gt; loops go through an item one by one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Range&lt;/em&gt;&lt;/strong&gt; stops before the last number.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Enumerate&lt;/em&gt;&lt;/strong&gt; gives you index and value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Zip&lt;/em&gt;&lt;/strong&gt; uses two related lists to loop them together at once.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Pass&lt;/em&gt;&lt;/strong&gt; does nothing.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Python Operators and Conditionals Explained</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Tue, 15 Sep 2026 12:49:34 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/python-operators-and-conditionals-explained-342</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/python-operators-and-conditionals-explained-342</guid>
      <description>&lt;p&gt;&lt;strong&gt;Operators&lt;/strong&gt;&lt;br&gt;
Operators are special symbols that are used to perform operations on values and variables. There is types to it;&lt;br&gt;
1.&lt;strong&gt;Arithmetic&lt;/strong&gt; which perform mathematical calculations that includes addition (+), division (/), multiplication (*).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc03nhc64jfb1yq0mjfsa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc03nhc64jfb1yq0mjfsa.png" alt=" " width="484" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Comparison&lt;/strong&gt; which compares two values and often return a boolean result, the true or false ones. Example (==) equal to, (!=) not equal to, greater than (&amp;gt;).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgxm82jxkad7tr74ekaew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgxm82jxkad7tr74ekaew.png" alt=" " width="776" height="262"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Logical&lt;/strong&gt; combines conditional statements like and, or, not.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1x2a9maj6pxgol28v7yy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1x2a9maj6pxgol28v7yy.png" alt=" " width="726" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Assignment&lt;/strong&gt; assigns values to variables an includes, =, +=.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frju5k7fcyqmqfjvumy02.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frju5k7fcyqmqfjvumy02.png" alt=" " width="600" height="170"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conditionals&lt;/strong&gt;&lt;br&gt;
 After using operators, there comes conditionals statement that tells python what to do next. Example is if, elif and else.&lt;br&gt;
&lt;strong&gt;&lt;em&gt;If&lt;/em&gt;&lt;/strong&gt; returns a logic and when evaluated depending with what you want to be returned, the rest is skipped. For example; what we have here is if a student has a laptop then the output is yes and if no then the answer is skipped. It returns the_ TRUE_.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzretl3q14niqyxty0wl9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzretl3q14niqyxty0wl9.png" alt=" " width="800" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Elif&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Elif if the short form of else if and is the opposite of if where when the condition before was if and it returns False, and elif returns it as True then the rest is skipped. Example&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnx3h9ayxwza768f17f6p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnx3h9ayxwza768f17f6p.png" alt=" " width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Else&lt;/em&gt;&lt;/strong&gt; now is the last condition that when ran it runs when the if and elif returns false. Example &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqo26awgj7elu7qmxnpc6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqo26awgj7elu7qmxnpc6.png" alt=" " width="800" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Operators produce value and conditional are the statements. Once you look at it like that then it will be easier to understand what you want to write up.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>coding</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Connecting Power BI to SQL Databases.</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Thu, 10 Sep 2026 21:52:16 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/-connecting-power-bi-to-sql-databases-3k7l</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/-connecting-power-bi-to-sql-databases-3k7l</guid>
      <description>&lt;p&gt;&lt;strong&gt;A step by step tutorial&lt;/strong&gt;.&lt;br&gt;
Power BI is a data visualization tool and a business intelligence platform that turns raw data into interactive dashboards and reports. This tool looks to connecting users to various data sources including SQL databases, lets look at two ;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connecting to a local databases(postgresql)&lt;/li&gt;
&lt;li&gt;Connecting to a cloud sql database (aiven).&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Connecting to a cloud sql database (Aiven).
&lt;/h2&gt;

&lt;p&gt;Aiven is a cloud platform that provides databases services. It requires a certificate which is SSL for connections.&lt;/p&gt;

&lt;p&gt;Let's start;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create or Log in to aiven.&lt;/li&gt;
&lt;li&gt;Click the 'Create services'.&lt;/li&gt;
&lt;li&gt;Choose the provider and region.&lt;/li&gt;
&lt;li&gt;Click 'Create service'&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr203vh3xomxk3q8bjgrc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr203vh3xomxk3q8bjgrc.png" alt=" " width="800" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get connection details&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Get the following information and note them down.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Host&lt;/li&gt;
&lt;li&gt;Port&lt;/li&gt;
&lt;li&gt;Database&lt;/li&gt;
&lt;li&gt;Username&lt;/li&gt;
&lt;li&gt;Password&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsf85wp2e6hjbnr4yzdbe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsf85wp2e6hjbnr4yzdbe.png" alt=" " width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download the CA certificate from Aiven.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2omkfnq81fq4kqsrupge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2omkfnq81fq4kqsrupge.png" alt=" " width="800" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install the certificate on windows in the Trusted Root Certification Authorities stores.&lt;/li&gt;
&lt;li&gt;Use DBeaver to connect to Aiven and import the raw dataset.&lt;/li&gt;
&lt;li&gt;Verify the data to loaded successfully.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How to connect Power BI to the database
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open Power BI.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F90t0w0m39sd1jqlzrr1a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F90t0w0m39sd1jqlzrr1a.png" alt=" " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click get data to postgreSQL database.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fls64dtohwv5g7udugsue.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fls64dtohwv5g7udugsue.png" alt=" " width="800" height="785"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Input the server and database.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzj602nwqp8mricmgl3t9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzj602nwqp8mricmgl3t9.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set the ssl mode.&lt;/li&gt;
&lt;li&gt;Connect and load the table.
Look for the table that you either want to load or transform. You can also choose to clean the data.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Cleaning the data
&lt;/h2&gt;

&lt;p&gt;Here we will turn the messy raw data into a cleaned dataset that will be used later for our dashboard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step by step&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;After connecting power BI to aiven and loading the data, will will use the power BI query to clean it.
The issues that the data has includes;

&lt;ul&gt;
&lt;li&gt;Text in number column&lt;/li&gt;
&lt;li&gt;Missing values&lt;/li&gt;
&lt;li&gt;Mixed capitalisation&lt;/li&gt;
&lt;li&gt;Mixed date types format&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrt4g09fl0kk4yg95jap.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqrt4g09fl0kk4yg95jap.png" alt=" " width="798" height="186"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The measures and calculations used
The measures include;

&lt;ul&gt;
&lt;li&gt; Total revenue&lt;/li&gt;
&lt;li&gt; Total Units Sold&lt;/li&gt;
&lt;li&gt; Total Orders&lt;/li&gt;
&lt;li&gt; Gross Profit&lt;/li&gt;
&lt;li&gt; Gross Profit Margin&lt;/li&gt;
&lt;li&gt; Avg Delivery Days&lt;/li&gt;
&lt;li&gt; Avg Rating&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjnkf9esnm1ocmow02gu1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjnkf9esnm1ocmow02gu1.png" alt=" " width="796" height="63"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The calculations include&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; Sum&lt;/li&gt;
&lt;li&gt; Count&lt;/li&gt;
&lt;li&gt; Divide&lt;/li&gt;
&lt;li&gt; Average&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;The visuals I include in my dashboard;

&lt;ul&gt;
&lt;li&gt; Slicers&lt;/li&gt;
&lt;li&gt; Pie chart&lt;/li&gt;
&lt;li&gt; Bar chart&lt;/li&gt;
&lt;li&gt; Column chart&lt;/li&gt;
&lt;li&gt; Donut chart&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fslbtqmjt2emmfhbk3gvg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fslbtqmjt2emmfhbk3gvg.png" alt=" " width="800" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Building  dashboard is a result of importing raw data, connecting Power Bi, cleaning and transforming the data and then finally designing interactive dashboard.&lt;br&gt;
The end product helps management to make good data driven decisions.&lt;/p&gt;

</description>
      <category>power</category>
      <category>sqlserver</category>
      <category>database</category>
    </item>
    <item>
      <title>Python 101</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Thu, 10 Sep 2026 17:34:04 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/python-101-1k18</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/python-101-1k18</guid>
      <description>&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt; is an interpreted language. Look at it like this, if a person wants to share their code program with someone else so that the other person can run it, if they share the code they wrote, then it's an interpreted language. In python you can create code to a file, then import that file, and the interpreter would read it in real time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Writing your first code&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
There's a tradition for every coder while starting to learn python is printing 'Hello, world!'. To do this open vscode and run the code like this; print("Hello, World!")&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff7tqdwcjwbazvrl5ffwx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff7tqdwcjwbazvrl5ffwx.png" alt=" " width="448" height="142"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;That's it, your first code is running.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Print shows text or values to the user or displays output to the console.&lt;/li&gt;
&lt;li&gt;() the parenthesis name the inputs the function will use, after it, it tells the Python to run the function.&lt;/li&gt;
&lt;li&gt;" ', Single or double quotes shows text as a string by enclosing it in quotation marks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are basics in python that we will look at;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Variables.&lt;/strong&gt;
A variable refers to a value. More like they are used to store basically any data your program needs. A variable names can only contain numbers, letters and underscores and cannot start with a number hence you cannot use words like; false, none, true, and, as, if, in ,pass etc. 
Example of a basic variable;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq8m6w64wwm902w545qkj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq8m6w64wwm902w545qkj.png" alt=" " width="530" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example of different Variable types;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxy3t0i0tl1opoo18qsm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdxy3t0i0tl1opoo18qsm.png" alt=" " width="492" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Data types&lt;/strong&gt;
Data types categorize the kind of values a variable can hold. They include;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;-Numeric (int, float), integers are for whole numbers. Float represents decimal numbers, like tracking scores or counting people.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe5qhqu9je0uojyei74it.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fe5qhqu9je0uojyei74it.png" alt=" " width="772" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text (str) is used for text, that represents sequence of characters.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftoqnowmzp6k51dk8fz0l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftoqnowmzp6k51dk8fz0l.png" alt=" " width="698" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boolean (bool), represents truth numbers, that is true or false.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftrrce882q49zlm6ox16w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftrrce882q49zlm6ox16w.png" alt=" " width="770" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sequence (list, tuple, range).
List. They are ordered, mutable collections that can hold items of different types. This meaning their value cannot be changed after creation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foff06falkbis3y6mhffi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foff06falkbis3y6mhffi.png" alt=" " width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tuple. They are orders, immutable collections defined with parentheses. It is used when the order is important but the contents would not change. For example coordinates.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Finnxri9g0tamdz396r7t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Finnxri9g0tamdz396r7t.png" alt=" " width="730" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Range. Generates a sequence of numbers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmhzl6i77dmo7u07vurce.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmhzl6i77dmo7u07vurce.png" alt=" " width="506" height="152"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mapping , stores data as key value pairs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpsyecr6yo0qc5xc9jwas.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpsyecr6yo0qc5xc9jwas.png" alt=" " width="468" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set. This is collection of unique items and are placed inside curly braces {}.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fopcabfpvg5iwek07k30e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fopcabfpvg5iwek07k30e.png" alt=" " width="778" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;None. It is used where there is absence of value.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv2q6aiuycr2ktyp8dv79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv2q6aiuycr2ktyp8dv79.png" alt=" " width="792" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Input/Output&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Input waits for a user to type something and then return it as a string.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjm5mtdqs1d6z12qh1ceh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjm5mtdqs1d6z12qh1ceh.png" alt=" " width="514" height="246"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output displays a message.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fffi5rek329yvye040q7a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fffi5rek329yvye040q7a.png" alt=" " width="396" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;summary&lt;/strong&gt;&lt;br&gt;
We have talked about;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;variables&lt;/li&gt;
&lt;li&gt;data types&lt;/li&gt;
&lt;li&gt;input/output.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When people ask why use python it is because of python's ease of learning . Depends on what you do Python is very relevant for data science, computing, and AI.&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>basic</category>
      <category>coding</category>
    </item>
    <item>
      <title>SQL FUNCTIONS</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Wed, 09 Sep 2026 20:23:07 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/sql-functions-3ine</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/sql-functions-3ine</guid>
      <description>&lt;p&gt;&lt;strong&gt;SQL Functions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commonly Used Functions&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Window Functions examples include, (Row_number, Rank). This function is used to retrieve single records out of a repeating table .
&lt;strong&gt;Row_number:&lt;/strong&gt; This gives each row a unique number in sequential order within a group.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F21lpdy3chri64bkxoho0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F21lpdy3chri64bkxoho0.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;br&gt;
For example, Number transactions by customer . Hence for each customer, number their transactions starting from 1.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rank:&lt;/strong&gt; This ranks each row based on its value, leaving gaps when two or more rows have the same rank.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6cawzjjn1d6i6g57t17o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6cawzjjn1d6i6g57t17o.png" alt=" " width="799" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This ranks all successful transactions by amount. The biggest transaction gets rank 1. If two transactions have the same amount, they get the same rank, and the next rank skips a number.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;STRING FUNCTIONS (CONCAT, SUBSTRING, TRIM, REPLACE, UPPER/LOWER). This is a basic text manipulation for formatting and cleaning the data.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;*&lt;em&gt;Concat *&lt;/em&gt;: This is used to join two or more strings together into a single string.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fagvg3xerpekqn2ojp7ja.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fagvg3xerpekqn2ojp7ja.png" alt=" " width="800" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Substring&lt;/strong&gt; : This is used to extract a portion of a string based on position and length.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0o4x3df7yq7x0ioyf71q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0o4x3df7yq7x0ioyf71q.png" alt=" " width="799" height="189"&gt;&lt;/a&gt;&lt;br&gt;
 The results looks like;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flqlox6p1qp4upkz3zx4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Flqlox6p1qp4upkz3zx4v.png" alt=" " width="799" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trim&lt;/strong&gt;: This is used to remove unwanted characters which is mostly spaces from the beginning and or end of a string. eg '   John Mwangi  ' to 'John Mwangi'&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnzd831lj2ksuot3yyv3q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnzd831lj2ksuot3yyv3q.png" alt=" " width="798" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replace&lt;/strong&gt;: This is used to substitute all occurrences of a specified substring within a string with another substring.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzkcw1p00w5jsw6olerbn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzkcw1p00w5jsw6olerbn.png" alt=" " width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Upper/Lower/initcap&lt;/strong&gt;&lt;br&gt;
Upper converts all characters to UPPERCASE.&lt;br&gt;
Lower converts all characters to lowercase.&lt;br&gt;
Initcap converts first letter of each word to uppercase. Example;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs7adksm2pxob936w9eq6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs7adksm2pxob936w9eq6.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Results;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9x7yo1oqkcvmlhb1fa5i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9x7yo1oqkcvmlhb1fa5i.png" alt=" " width="800" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Aggregate Functions (COUNT, SUM, AVG, MIN, MAX): Fundamental for summarising data.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Count&lt;/strong&gt;, returns the number of rows that match a specified condition.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbajdbu2rqzuvv09ahs19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbajdbu2rqzuvv09ahs19.png" alt=" " width="799" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sum&lt;/strong&gt;, returns the total sum of a numeric column.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46liwvmmn4pfzbvt3wr6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F46liwvmmn4pfzbvt3wr6.png" alt=" " width="799" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Avg&lt;/strong&gt;,  returns the average which is the mean value of a numeric column.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7ylhgnjv74in703owaig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7ylhgnjv74in703owaig.png" alt=" " width="800" height="195"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Min&lt;/strong&gt;, returns the minimum or the smallest value from a column.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5wq3jdwwymj4dyc6gje0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5wq3jdwwymj4dyc6gje0.png" alt=" " width="800" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Max&lt;/strong&gt;, returns the maximum or largest value from a column.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyliqut9mz9m6au0x38c4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyliqut9mz9m6au0x38c4.png" alt=" " width="800" height="199"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GROUP_CONCAT is used for combining values per group from multiple rows to a single string.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw3q8lt1s2tfd6swjjd1m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw3q8lt1s2tfd6swjjd1m.png" alt=" " width="800" height="101"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
The advantages on these functions are such that it is  efficient for SQL to perform operations on entire sets inside the database engine.&lt;br&gt;
It also handles large data, as SQL is designed for big tables and can process millions of rows reliably.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>sql</category>
      <category>dbeaver</category>
    </item>
    <item>
      <title>SUBQUERIES and CTEs</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Wed, 09 Sep 2026 18:49:34 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/subqueries-and-ctes-2e5n</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/subqueries-and-ctes-2e5n</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;SUBQUERIES&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Subquery is a query inside a query and is used when one statement needs a result from another. It is usually inside a clause like 'where' :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft47b9gw9tb0gdsu4n42n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft47b9gw9tb0gdsu4n42n.png" alt=" " width="770" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;'from' &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxpv97o9bjvr6tgjzjbrw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxpv97o9bjvr6tgjzjbrw.png" alt=" " width="799" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;or 'select'. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxckt7b27qstyc6991xvq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxckt7b27qstyc6991xvq.png" alt=" " width="799" height="204"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CTE&lt;/strong&gt;&lt;br&gt;
A CTE(Common Table Expression) is a temporary named result set that one can reference within single query to reuse in the next query.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnjoeogp6o9m7fz3yekfg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnjoeogp6o9m7fz3yekfg.png" alt=" " width="800" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;Advantages of CTE&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CTEs tend to be preferred for readability and structuring complex structure.&lt;/li&gt;
&lt;li&gt;A thing with CTEs is it is reusable in that you can reuse the definition without rewriting it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;Difference between subquery and CTE&lt;br&gt;
&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CTEs support recursion while subqueries do not.&lt;/li&gt;
&lt;li&gt;Subqueries can be correlated while CTE cannot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;conclusion&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;
When writing and reading SQL the style I prefer and will pick is usually CTEs as they are easier to read and follow through. Also the fact that it takes less rework when going back to look or want to retrieve information.&lt;/p&gt;

</description>
      <category>database</category>
      <category>learning</category>
      <category>sql</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>SQL JOINS</title>
      <dc:creator>Elizabeth Njoroge</dc:creator>
      <pubDate>Wed, 09 Sep 2026 12:41:23 +0000</pubDate>
      <link>https://dev.to/elizabeth_njoroge_7c850b9/sql-joins-30l6</link>
      <guid>https://dev.to/elizabeth_njoroge_7c850b9/sql-joins-30l6</guid>
      <description>&lt;p&gt;SQL joins allows you to combine rows from two or more tables based on a related column between them. There are different types of joints as they have different functions.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Inner Join.&lt;/strong&gt;
Returns records that have matching values in both tables. This is the most common type of join, and is useful when you need to retrieve data that exists in both tables. For example " customer_id is in both tables".&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fumql0tyadltjb8ti6t4u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fumql0tyadltjb8ti6t4u.png" alt=" " width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Left (Outer) Join.&lt;/strong&gt;
Returns all records from the left table, and the matched records from the right table. When using this join if there is no match, the columns from the right table will contain NULL. For example :&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp6h4ungfi0pjx7zno82n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp6h4ungfi0pjx7zno82n.png" alt=" " width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Right (Outer) Join.&lt;/strong&gt;
Returns all records from the right table, and the matched records from the left table. When using this join if there is no match, the columns from the left table will contain NULL. For example:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1wcsvtqmktp6b107kyei.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1wcsvtqmktp6b107kyei.png" alt=" " width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Full (Outer) Join.&lt;/strong&gt;
Returns all records when there is a match in either the left or right table. When using this join, if there is no match, the columns from the non-matching side will contain NULL. For example:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0o5kerenevck4ig1qe7h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0o5kerenevck4ig1qe7h.png" alt=" " width="799" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HAVE FUN WITH JOINS!!!&lt;/p&gt;

</description>
      <category>sql</category>
      <category>analytics</category>
      <category>beginners</category>
      <category>basic</category>
    </item>
  </channel>
</rss>
