BREAKING NEWS
🚀 Kaweesha launched the new AI Tech Blog! 💻 Python & Java Tutorials are now live. 🎮 Game Development Guide: Building 2D Games with Godot. 🌐 Web Hosting secrets revealed - Check the latest post!

Python Sinhala - Part 03: Creating a Smart Shopping App (Lists & Data Structures) 🛒

Python Lists Data Structures Shopping List App Code Sinhala Tutorial

අපි කලින් පාඩම් වලදී ඉගෙන ගත්තා Variable එකක් කියන්නේ "පෙට්ටියක්" 📦 කියලා. හැබැයි ඒකේ පොඩි කේස් එකක් තියෙනවා. එක පෙට්ටියක දාන්න පුළුවන් එක දෙයක් විතරයි.

නිකමට හිතන්න ඔයාට යාලුවෝ 100ක් ඉන්නවා. ඒ 100 දෙනාගේ නම් Save කරන්න Variables (පෙට්ටි) 100ක් හදනවද? friend1, friend2... වගේ? පිස්සුනේ! 🤯 ඒක මාරම අමාරු වැඩක්. අපිට ඕන කරනවා නම් 1000ක් වුනත් එක පාර දාන්න පුළුවන් "මැජික් බෑග් එකක්". අන්න ඒකට තමයි Python වල List එකක් කියන්නේ. 🎒

අද අපි නිකන්ම List එකක් හදනවා විතරක් නෙමෙයි, Smart Shopping List App එකක් හදන ගමන්, මේක ඇතුලේ වෙන "Memory Magic" එක ගැනත් සම්පූර්ණයෙන්ම, මුල ඉඳන්ම සරලව ඉගෙන ගමු. 🍏

1. මොකක්ද මේ List එකක් කියන්නේ? (The Backpack Analogy)

සරලව කිව්වොත් List එකක් කියන්නේ එක නමකින් Data ගොඩක් තියාගන්න පුළුවන් තැනක්. Python වලදී අපි මේකට පාවිච්චි කරන්නේ කොටු වරහන් [ ].

දැන් හිතෙනවා ඇති "ඇයි යකෝ මේ කොටු වරහන්ම දාන්නේ?🤨 රවුම් ඒවා දැම්මොත් කොච්චර ලස්සනයිද?😪 වරහනේ හැඩේට පුලුවන්ද එච්චර දෙයක් කරන්න😶" කියලා

පොඩි ප්‍රශ්නයක්: ඇයි අපි () හෝ {} ගන්නේ නැත්තේ? 🧐

මේක ඔයාට අනිවාර්යයෙන්ම හිතෙන්න ඇති. ඇයි අපි [ ] ම පාවිච්චි කරන්නේ? වෙන වරහන් බැරිද? උත්තරේ තමයි "බෑ". මොකද Python වල හැම වරහනකටම වෙන් වුනු විශේෂ රාජකාරියක් තියෙනවා.

  • [ ] (Square Brackets) 👉 List:
    අපි දැන් පාවිච්චි කරන එක. මේක බෑග් එකක් වගේ. ඕන වෙලාවක සිප් එක ඇරලා දේවල් දාන්න, අයින් කරන්න පුළුවන්. (Mutable).

  • ( ) (Parentheses) 👉 Tuple:
    මේක ගල් කුළුණක් වගේ. කොටපු දේ කොටපු දේමයි. හැදුවට පස්සේ ආයේ වෙනස් කරන්න බෑ. (Immutable).

  • { } (Curly Braces) 👉 Dictionary/Set:
    මේක හරියට Dictionary පොතක් වගේ. වචන සහ තේරුම් (Key & Value) පිළිවෙලට තියාගන්න තමයි මේක ගන්නේ.

ඒ නිසා, අපිට Shopping List එකක් වගේ "වෙනස් කරන්න පුළුවන්" දෙයක් හදන්න ඕන නිසා, අනිවාර්යයෙන්ම List [ ] තමයි පාවිච්චි කරන්න ඕනේ.

# සාමාන්‍ය ක්‍රමය (මේක මාර වදයක්) ❌
fruit1 = "Apple"
fruit2 = "Banana"
fruit3 = "Mango"

# List ක්‍රමය (මේක පට්ට ලේසියි) ✅
fruits = ["Apple", "Banana", "Mango"]

2. ඇයි Computer එක 0 සිට ගණන් කරන්නේ? (The Zero Index Mystery) 🤔

ගොඩක් අයට එන ප්‍රශ්නයක් මේක. මනුස්සයෝ ගණන් කරන්න පටන් ගන්නේ 1, 2, 3 කියලා. හැබැයි Computer එක පටන් ගන්නේ 0, 1, 2 කියලා. ඇයි බං එහෙම වෙන්නේ? 🧐

විද්‍යාත්මක හේතුව (Memory Offset) - සරලව:

List එකක් කියන්නේ Computer Memory (RAM) එකේ ළඟ ළඟ තියෙන කාමර පේළියක් වගේ. හිතන්න ඔයා ඉන්නේ ඒ කාමර පේළියේ ආරම්භයේ කියලා.

  • ඔයාට පළවෙනි කාමරේට (Apple) යන්න ඕන නම්, ඔයා ආරම්භක තැන ඉඳන් කොච්චර දුරක් යන්න ඕනද? පියවර 0 යි! (මොකද ඔයා දැනටමත් එතනනේ ඉන්නේ).
  • දෙවෙනි කාමරේට (Banana) යන්න නම්, ඔයා ආරම්භයේ ඉඳන් පියවර 1ක් ඉස්සරහට යන්න ඕනේ.
අන්න ඒ "යන්න ඕන පියවර ගාණ" (Steps/Offset) තමයි මේ Index එක කියන්නේ. ඒකයි අපි 0න් පටන් ගන්නේ! 😎🧠
fruits = ["Apple", "Banana", "Mango"]

print(fruits[0]) # Output: Apple (පළමු එක්කෙනා - පියවර 0)
print(fruits[1]) # Output: Banana (දෙවන එක්කෙනා - පියවර 1)
print(fruits[-1]) # Output: Mango (මැජික්! -1 ගැහුවොත් අන්තිම එක්කෙනා එනවා)

3. List එක වෙනස් කිරීම (Add & Remove) 🛠️

List එකක් කියන්නේ "Mutable" (වෙනස් කළ හැකි) දෙයක්. ඒ කියන්නේ හදුවට පස්සෙත් අපිට ඒක ඕන විදියට වෙනස් කරන්න පුළුවන්.

  • Add කිරීම: list.append("New Item") - මේකෙන් වෙන්නේ අලුත් අයිතමය ලිස්ට් එකේ අන්තිමට ගිහින් අලවන එකයි.
  • Remove කිරීම: list.remove("Item Name") - මේකෙන් ලිස්ට් එකේ තියෙන නම හොයලා අයින් කරනවා.
  • ගණන් කිරීම: len(list) - ලිස්ට් එකේ බඩු කීයක් තියෙනවද කියලා බලන්න.

Let's Build: Smart Shopping App 🛒

දැන් අපි ඉගෙන ගත්ත ඔක්කොම එකතු කරලා (Lists + Loops + Input), නියම App එකක් හදමු. මේකෙන් ඔයාට බඩු ලිස්ට් එකට දාන්න, බලන්න සහ අයින් කරන්න පුළුවන්. අද ඉඳන් කඩේ යද්දි කොළ කෑලි ඕන නෑ, ඔයාගේම App එක දාගෙන යමන්! 😂

මේ කෝඩ් එක කෙලින්ම Copy කරලා Run කරන්න.

# 1. හිස් ලිස්ට් එකක් හදාගන්නවා (මේක තමයි අපේ බෑග් එක)
cart = []

print("🛒 Welcome to Smart Shopping Cart!")

while True:
    print("\n--- Menu ---")
    print("1. බඩු එකතු කරන්න (Add)")
    print("2. ලිස්ට් එක බලන්න (View)")
    print("3. බඩුවක් අයින් කරන්න (Remove)")
    print("4. ඉවත් වන්න (Exit)")

    choice = input("ඔයාගේ තේරීම (1-4): ")

    # --- 1. Add Item ---
    if choice == "1":
        item = input("ගන්න ඕන දේ Type කරන්න: ")
        cart.append(item) # මෙතනින් තමයි බෑග් එකට දාන්නේ
        print(f"✅ {item} එකතු කළා!")

    # --- 2. View List ---
    elif choice == "2":
        print("\n🛍️ ඔයාගේ බඩු ලිස්ට් එක:")
        # List එකේ මුකුත් නැත්නම් (බඩු 0 නම්)
        if len(cart) == 0: 
            print("තාම මුකුත් නෑ... (Empty)")
        else:
            # For Loop එකෙන් ලිස්ට් එකේ එකින් එක අරන් පෙන්නනවා
            for product in cart:
                print(f"- {product}")

    # --- 3. Remove Item ---
    elif choice == "3":
        remove_item = input("අයින් කරන්න ඕන දේ කියන්න: ")
        
        # ඒක ලිස්ට් එකේ තියෙනවද කියලා බලන්න ඕන (නැත්නම් Error එනවා)
        if remove_item in cart:
            cart.remove(remove_item)
            print(f"❌ {remove_item} අයින් කළා!")
        else:
            print("⚠️ එහෙම දෙයක් ලිස්ට් එකේ නෑනේ බොක්ක!")

    # --- 4. Exit ---
    elif choice == "4":
        print("Good Bye! 👋 Happy Shopping!")
        break

    else:
        print("⚠️ වැරදි අංකයක්! ආයේ උත්සාහ කරන්න.")

කොහොමද ඒක වැඩ කරන්නේ? (Behind the Code) 🧠

  • cart = [] : අපි මුලින්ම හිස් බෑග් එකක් (Memory Space) ලෑස්ති කරගත්තා.
  • cart.append(item) : අපි Type කරන හැම දේම බෑග් එකේ අන්තිමට එකතු වුනා. මේකට කියන්නේ Dynamic Memory Allocation කියලා. ලිස්ට් එක ලොකු වෙනකොට Python විසින් ඉබේම RAM එකෙන් වැඩිපුර ඉඩක් වෙන් කරගන්නවා. (මාර බුද්ධිමත් නේද?)
  • for product in cart: : මේක තමයි ලස්සනම කොටස. ලිස්ට් එකේ බඩු 1000ක් තිබ්බත්, මේ පේළියෙන් ඒ 1000ම එකින් එක අරගෙන product කියන Variable එකට දාලා අපිට පෙන්නනවා.

දැන් ඔයාට පේනවා ඇති අපි කලින් ඉගෙන ගත්ත If/Else සහ Loops එක්ක List එකතු වුනාම කොච්චර බලවත් සොෆ්ට්වෙයාර් හදන්න පුළුවන්ද කියලා.

ඊළඟ දවසේ අපි මේ ලිස්ට් එක පාවිච්චි කරලා "Magic" වැඩක් කරමු. කෙලින්ම WhatsApp මැසේජ් Auto යවන හැටි බලමුද? 😎🔥

Next: Python Magic Part 02 - Send Automated WhatsApp Messages 📱
දිගටම KP Tech Gear සමඟ රැඳී සිටින්න! 👇

Author

About

Tech enthusiast, Python/Java Developer, and Gamer. Sharing knowledge about coding and modern technology.

Discussion

Kaweesha AI ×
Hello Kaweesha! I am ready to help with Python, Java, or Hosting queries. 🤖