🐍 Python Programming

Jifunze Python kutoka mwanzo kabisa. Hakuna experience inayohitajika. Code + maelezo kwa Kiswahili na English.

English / Kiswahili • Beginner to Intermediate • Text + Code Examples

📋 Yaliyomo — Table of Contents

  1. Python ni nini? / What is Python?
  2. Kuweka Python / Installing Python
  3. Variables na Data Types
  4. Strings (Nyuzi za Maandishi)
  5. Numbers na Operations
  6. Lists (Orodha)
  7. Tuples na Dictionaries
  8. Conditionals (if/elif/else)
  9. Loops (for, while)
  10. Functions (Vitendakazi)
  11. Modules na Import
  12. File Handling / Kusoma na Kuandika Faili
  13. OOP / Programming yenye Vitu
  14. Simple Projects

1. Python ni nini? / What is Python?

Kuanzia mwanzo — Starting from scratch

🇹🇿 Kiswahili: Python ni lugha ya programming maarufu duniani. Ilianzishwa na Guido van Rossum mwaka 1991. Python inajulikana kwa urahisi wake — syntax yake ni rahisi kusoma na kuandika, inafanana na Kiingereza cha kawaida.

🇬🇧 English: Python is one of the most popular programming languages in the world. Created by Guido van Rossum in 1991, Python is known for its simplicity — its syntax is easy to read and write, similar to plain English.

Kwa nini Python? / Why Python?

# Hii ndio Python code yako ya kwanza!
print("Hello, World!")
print("Karibu kwenye Python!")
💡 Output: Unapoendesha code hii, utaona Hello, World! na Karibu kwenye Python! kwenye screen.

2. Kuweka Python / Installing Python

Pata Python kwenye computer yako

🇹🇿 Kiswahili: Kabla ya kuanza kuandika Python, unahitaji kuiweka kwenye computer yako.

Hatua / Steps

  1. Nenda kwenye python.org na upakuwe Python toleo la mwisho
  2. Endesha installer
  3. Muhimu: Tiki "Add Python to PATH" kabla ya kubonyeza Install
  4. Bonyeza "Install Now" na subiri ikamilike

Kuhakikisha Python imewekwa, fungua Command Prompt (Windows) au Terminal (Mac/Linux) na uandike:

python --version

Ukiona kitu kama Python 3.12.0, basi Python imewekwa vizuri.

⚡ Tip: Unaweza pia kutumia Google Colab (colab.research.google.com) kuandika Python moja kwa moja kwenye browser — hakuna haja ya kusakinisha chochote!

3. Variables na Data Types

Kuhifadhi taarifa kwenye kumbukumbu — Storing data in memory

🇹🇿 Kiswahili: Variable ni kama sanduku lenye jina unaloweka data. Unaweza kubadilisha yaliyomo kwenye sanduku wakati wowote.

🇬🇧 English: A variable is like a named box where you store data. You can change its content anytime.

Kutengeneza Variables / Creating Variables

# Python inaelewa aina ya data moja kwa moja
jina = "Juma"          # String (maneno)
umri = 25              # Integer (namba kamili)
urefu = 1.75           # Float (namba yenye desimali)
ni_mwanafunzi = True   # Boolean (True/False)

print(jina)
print(umri)
print(urefu)
print(ni_mwanafunzi)

Aina za Data / Data Types

💡 Note: Huna haja ya kutaja aina ya data kwenye Python — inajiamulia yenyewe (dynamically typed).

4. Strings (Nyuzi za Maandishi)

Kufanya kazi na maneno na sentensi

🇹🇿 Kiswahili: String ni mfuatano wa herufi. Unaweza kutumia single quotes ('...') au double quotes ("...").

Shughuli za Strings / String Operations

# Kutengeneza strings
jina = "Juma"
salutation = 'Habari yako?'

# Kuunganisha strings (concatenation)
kamili = jina + "! " + salutation
print(kamili)  # Juma! Habari yako?

# String interpolation (f-string)
umri = 25
habari = f"Jina langu ni {jina}, nina umri wa miaka {umri}"
print(habari)

# String methods
text = "   Python ni nzuri!   "
print(text.upper())        # PYTHON NI NZURI!
print(text.lower())        # python ni nzuri!
print(text.strip())        # inaondoa spaces mwanzoni na mwishoni
print(len(text))           # urefu wa string (herufi ngapi)
print(text.replace("nzuri", "razuri"))  # Kubadilisha maneno
⚡ Tip: Tumia f"..." (f-strings) kuweka variables ndani ya strings — ni rahisi na inasomeka vizuri!

5. Numbers na Operations

Hesabu kwenye Python

Aina za Namba / Number Types

Shughuli za Kihisabati

# Operations za msingi
a = 10
b = 3

print(a + b)   # 13  (jumla)
print(a - b)   # 7   (toa)
print(a * b)   # 30  (zidisha)
print(a / b)   # 3.333... (gawanya)
print(a // b)  # 3   (gawanya, toa desimali)
print(a % b)   # 1   (baki ya mgawanyiko / modulus)
print(a ** b)  # 1000 (nguvu / exponent)

# Rounding
pi = 3.14159
print(round(pi, 2))  # 3.14
💡 Note: // inaitwa "floor division" — inagawanya na kurudisha namba kamili tu. % inarudisha baki.

6. Lists (Orodha)

Kuhifadhi vitu vingi kwenye variable moja

🇹🇿 Kiswahili: List ni mkusanyo wa vitu vilivyopangwa kwa mpangilio. Vitu vinaweza kuwa za aina tofauti.

# Kutengeneza list
majina = ["Juma", "Aisha", "Baraka", "Zainabu"]
namba = [1, 2, 3, 4, 5]
mchanganyiko = ["Juma", 25, True, 3.14]

# Kupata kitu kwenye list (index inaanza 0)
print(majina[0])   # Juma
print(majina[2])   # Baraka
print(majina[-1])  # Zainabu (ya mwisho)

# Kubadilisha kitu
majina[1] = "Mwanahamisi"
print(majina)  # ["Juma", "Mwanahamisi", "Baraka", "Zainabu"]

# Kuongeza na kuondoa
majina.append("Halima")    # Ongeza mwishoni
majina.insert(1, "Suleiman")  # Ongeza kwenye index 1
majina.remove("Baraka")    # Ondoa "Baraka"
majina.pop()               # Ondoa la mwisho
print(len(majina))         # Idadi ya vitu kwenye list

# Kuchambua (slicing)
namba = [10, 20, 30, 40, 50]
print(namba[1:4])  # [20, 30, 40] (kutoka index 1 hadi 3)
print(namba[:3])   # [10, 20, 30] (mwanzo hadi index 2)
print(namba[::2])  # [10, 30, 50] (kila hatua 2)
⚡ Tip: List inaweza kubadilishwa (mutable). Kwenye Python, pia kuna Tuple ambayo haiwezi kubadilishwa (immutable).

7. Tuples na Dictionaries

Aina nyingine za kuhifadhi data

Tuple

Tuple ni kama list, lakini haiwezi kubadilishwa (immutable). Inatumia mabano ().

# Tuple
siku = ("Jumatatu", "Jumanne", "Jumatano")
print(siku[0])  # Jumatatu
# siku[0] = "Jumapili"  # Hii itatoa ERROR (tuple haiwezi kubadilishwa)

Dictionary (Kamusi)

Dictionary inahifadhi data kwa jozi za key: value. Inatumia mabano ya kawaida {}.

# Dictionary
mtu = {
    "jina": "Juma",
    "umri": 25,
    "kazi": "Programmer",
    "ndoa": False
}

print(mtu["jina"])    # Juma
print(mtu.get("umri"))  # 25 (njia salama zaidi)

# Kubadilisha na kuongeza
mtu["umri"] = 26
mtu["mji"] = "Dar es Salaam"

# Kupata keys na values zote
print(mtu.keys())    # dict_keys(['jina', 'umri', 'kazi', ...])
print(mtu.values())  # dict_values(['Juma', 26, ...])

# Loop kwenye dictionary
for key, value in mtu.items():
    print(f"{key}: {value}")

8. Conditionals (if/elif/else)

Kufanya maamuzi kwenye code yako

🇹🇿 Kiswahili: Mara nyingi unataka code yako ifanye kitu tofauti kulingana na hali. Hapa ndipo if inapoingia.

# if statement rahisi
umri = 18

if umri >= 18:
    print("Unaweza kupiga kura")
else:
    print("Bado ni mdogo")

# if/elif/else
alama = 85

if alama >= 80:
    daraja = "A"
elif alama >= 70:
    daraja = "B"
elif alama >= 60:
    daraja = "C"
elif alama >= 50:
    daraja = "D"
else:
    daraja = "F"

print(f"Daraja lako ni {daraja}")

# Logical operators (and, or, not)
joto = 30
ni_jua = True

if joto > 25 and ni_jua:
    print("Hali ya hewa ni nzuri!")

if joto > 35 or ni_jua:
    print("Angalau jua lipo")

# Comparison operators
x = 10
print(x == 10)   # True (sawa na)
print(x != 5)    # True (si sawa na)
print(x > 5)     # True (kubwa kuliko)
print(x < 20)    # True (ndogo kuliko)
💡 Note: == ni kuangalia usawa, = ni kutoa thamani kwa variable. Usichanganye!

9. Loops (for, while)

Kurudia jambo tena na tena

🇹🇿 Kiswahili: Loop inakuwezesha kurudia code mara nyingi bila kuiandika mara nyingi.

For Loop

# For loop kwenye list
majina = ["Juma", "Aisha", "Baraka"]
for jina in majina:
    print(f"Habari, {jina}!")

# For loop kwa namba (range)
for n in range(5):
    print(n)  # 0, 1, 2, 3, 4

for n in range(1, 6):
    print(n)  # 1, 2, 3, 4, 5

for n in range(0, 10, 2):
    print(n)  # 0, 2, 4, 6, 8

While Loop

# While loop — endelea mpaka hali ibadilike
hesabu = 0
while hesabu < 5:
    print(f"Kukimbia mara {hesabu + 1}")
    hesabu += 1  # Sawa na hesabu = hesabu + 1

# Break na Continue
for n in range(10):
    if n == 5:
        break      # Acha loop kabisa
    if n % 2 == 0:
        continue   # Ruka namba hii, endelea na inayofuata
    print(n)
⚡ Tip: range(start, stop, step) ina parameters tatu. Kumbuka stop haijumuishwi.

10. Functions (Vitendakazi)

Panga code yako katika vitengo vinavyoweza kutumika tena

🇹🇿 Kiswahili: Function ni kipande cha code kinachofanya kazi maalum. Unaweza kukitumia tena na tena.

# Function rahisi
def salamu():
    print("Habari! Karibu kwenye Python!")

salamu()  # Piga / call function
salamu()  # Tena

# Function yenye parameter
def salamu_jina(jina):
    print(f"Habari {jina}! Karibu sana!")

salamu_jina("Juma")
salamu_jina("Aisha")

# Function yenye return value
def jumla(a, b):
    matokeo = a + b
    return matokeo

x = jumla(10, 5)
print(x)  # 15

# Function yenye default parameter
def power(namba, nguvu=2):
    return namba ** nguvu

print(power(4))     # 16 (4^2)
print(power(4, 3))  # 64 (4^3)

# Variable scope
x = 10  # Global variable

def ongeza():
    y = 5  # Local variable
    print(x + y)  # Inaweza kutumia x (global)

ongezza()
# print(y)  # Hii itatoa ERROR — y haipo nje ya function
💡 Note: return inarudisha thamani kutoka kwenye function. Bila return, function inarudisha None.

11. Modules na Import

Tumia code iliyotengenezwa na wengine

🇹🇿 Kiswahili: Module ni faili la Python lenye functions, classes, na variables tayari kutumika.

# Import module yote
import math
print(math.pi)       # 3.141592653589793
print(math.sqrt(16))  # 4.0

# Import specific functions
from random import randint, choice
namba = randint(1, 100)  # Namba random kati ya 1 na 100
print(f"Namba yako: {namba}")

# Import na rename
import datetime as dt
sasa = dt.datetime.now()
print(sasa)  # 2026-06-15 14:30:00.123456

# Modules maarufu kwa beginners
import random  # Random namba na choices
import math    # Hesabu za kisayansi
import os      # Kufanya kazi na operating system
import json    # Kufanya kazi na JSON data
⚡ Tip: Unaweza pia kuunda modules zako mwenyewe — andika functions kwenye faili moja, kisha import kwenye faili nyingine!

12. File Handling / Kusoma na Kuandika Faili

Hifadhi na soma data kutoka kwenye files

# Kuandika kwenye faili (writing)
with open("notes.txt", "w") as f:
    f.write("Hii ni note yangu ya kwanza!\n")
    f.write("Python ni nzuri sana.\n")

# Kusoma faili nzima (reading)
with open("notes.txt", "r") as f:
    content = f.read()
    print(content)

# Kusoma mstari kwa mstari
with open("notes.txt", "r") as f:
    for line in f:
        print(f"Line: {line.strip()}")

# Kuongeza kwenye faili (append)
with open("notes.txt", "a") as f:
    f.write("Hii ni note nyingine.\n")

# Error handling — kama faili haipo
try:
    with open("faili_haipo.txt", "r") as f:
        print(f.read())
except FileNotFoundError:
    print("Faili haipo! Unda kwanza.")
except Exception as e:
    print(f"Kuna error: {e}")
💡 Note: with open(...) as f: inafunga faili moja kwa moja baada ya kumaliza. Hii ni njia salama zaidi.

13. OOP — Object-Oriented Programming

Programming yenye vitu / Classes na Objects

🇹🇿 Kiswahili: OOP ni mtindo wa programming unaotumia "vitu" (objects). Kila kitu kina sifa (attributes) na vitendo (methods).

# Kuunda Class
class Mwanafunzi:
    # Constructor — inaitwa object inapoundwa
    def __init__(self, jina, umri, darasa):
        self.jina = jina
        self.umri = umri
        self.darasa = darasa

    # Method
    def introduce(self):
        return f"Jina langu ni {self.jina}, nina miaka {self.umri}, darasa la {self.darasa}"

    def celebrate_birthday(self):
        self.umri += 1
        print(f"Hongera {self.jina}! Sasa una miaka {self.umri}")

# Kuunda object
mwanafunzi1 = Mwanafunzi("Juma", 20, "Form 4")
print(mwanafunzi1.introduce())
mwanafunzi1.celebrate_birthday()

# Inheritance (kurithi)
class Mwalimu(Mwanafunzi):
    def __init__(self, jina, umri, darasa, somo):
        super().__init__(jina, umri, darasa)
        self.somo = somo

    def introduce(self):
        return f"Mwalimu {self.jina}, ninafundisha {self.somo}"

mwalimu1 = Mwalimu("Baraka", 35, "Form 6", "Physics")
print(mwalimu1.introduce())
⚡ Tip: self inarejelea object yenyewe. Inatumika kupata attributes na methods za object hiyo.

14. Simple Projects / Miradi Midogo

Weka maarifa yako kwenye majaribio

Project 1: Calculator rahisi

def calculator():
    print("=== CALCULATOR RAHISI ===")
    a = float(input("Ingiza namba ya kwanza: "))
    b = float(input("Ingiza namba ya pili: "))
    op = input("Chagua operation (+, -, *, /): ")

    if op == "+":
        print(f"Jumla: {a + b}")
    elif op == "-":
        print(f"Tofauti: {a - b}")
    elif op == "*":
        print(f"Zao: {a * b}")
    elif op == "/":
        if b != 0:
            print(f"Mgawo: {a / b}")
        else:
            print("Error: Kugawanya kwa 0 hairuhusiwi")
    else:
        print("Operation si sahihi")

calculator()

Project 2: Guess the Number

import random

def guess_game():
    secret = random.randint(1, 100)
    attempts = 0
    print("Nimechagua namba kati ya 1 na 100. Nadhani!")

    while True:
        guess = int(input("Nadhani: "))
        attempts += 1

        if guess < secret:
            print("Panda juu!")
        elif guess > secret:
            print("Shuka chini!")
        else:
            print(f"Hongera! Umeipata kwa majaribio {attempts}")
            break

guess_game()

Project 3: Todo List

def todo_app():
    tasks = []
    while True:
        print("\n1. Ongeza task")
        print("2. Onyesha tasks")
        print("3. Futa task")
        print("4. Exit")
        choice = input("Chagua: ")

        if choice == "1":
            task = input("Task gani? ")
            tasks.append(task)
            print("Task imeongezwa!")
        elif choice == "2":
            if tasks:
                for i, t in enumerate(tasks, 1):
                    print(f"{i}. {t}")
            else:
                print("Hakuna tasks")
        elif choice == "3":
            num = int(input("Namba ya task ya kufuta? "))
            if 1 <= num <= len(tasks):
                removed = tasks.pop(num - 1)
                print(f"'{removed}' imefutwa")
        elif choice == "4":
            break

todo_app()
💡 Next Steps: Baada ya kumaliza hizi basics, endelea na: OOP advanced, modules (requests, pandas), web development (Django/Flask), au data science.
← Back to All Courses