0%
در حال بارگذاری...

جستجو در سایت

درس ۳ مقدماتی: داده‌ساختارها – لیست، تاپل و دیکشنری در پایتون

پایتون | Python مقدماتی

تا حالا فقط با یه داده کار کردیم، اما چی می‌شه اگه بخوای صدها داده رو مدیریت کنی؟ 📦 برای مثال، لیست خرید، نمرات دانشجوها یا اطلاعات یه کاربر رو تصور کن. تو این درس، با داده‌ساختارهای مهم پایتون (لیست، تاپل و دیکشنری) آشنا می‌شی که بهت اجازه می‌دن داده‌ها رو ذخیره، تغییر و مدیریت کنی. بنابراین، اگر درس‌های ۱ و ۲ (متغیرها، شرط‌ها و حلقه‌ها) رو یاد گرفتی، حالا آماده‌ای که برنامه‌هات رو حرفه‌ای‌تر کنی! 🚀 با مثال‌های واقعی، جداول مقایسه، ۱۲ تمرین و یه پروژه جذاب، این درس تو رو برای ساخت برنامه‌های پیچیده‌تر آماده می‌کنه. بریم داده‌ها رو فتح کنیم! 🎉

لیست‌ها: جعبه‌های انعطاف‌پذیر 📋

لیست‌ها با [] تعریف می‌شن و می‌تونی هر نوع داده‌ای رو توشون ذخیره کنی. برای مثال، یه لیست می‌تونه اعداد، متن یا حتی لیست‌های دیگه رو نگه داره:

numbers = [1, 2, 3, 4]
names = ["علی", "مریم", "رضا"]
mixed = [1, "سلام", True]
print(names[0])  # خروجی: علی

علاوه بر این، لیست‌ها قابل تغییرن، یعنی می‌تونی محتواشون رو عوض کنی. عملیات مهم:

  • append(item): اضافه کردن به انتها
  • insert(index, item): اضافه کردن در موقعیت خاص
  • remove(item): حذف اولین مورد
  • pop(index): حذف با اندیس

به عنوان مثال:

names = ["علی", "مریم"]
names.append("رضا")  # اضافه به انتها
names.insert(1, "سارا")  # اضافه در اندیس ۱
names.remove("مریم")  # حذف مریم
print(names)  # ['علی', 'سارا', 'رضا']

به علاوه، می‌تونی با len() طول لیست و با اسلایس ([start:end]) بخشی از لیست رو بگیری:

print(len(names))  # 3
print(names[1:3])  # ['سارا', 'رضا']

💡 نکته: اندیس از ۰ شروع می‌شه. بنابراین، names[0] اولین عنصر رو برمی‌گردونه.

تاپل‌ها: جعبه‌های قفل‌شده 🔒

تاپل‌ها با () تعریف می‌شن و غیرقابل تغییرن. برای مثال، برای داده‌هایی که نباید عوض بشن (مثل مختصات) عالی‌ان:

point = (10, 20)
print(point[0])  # 10
# point[0] = 5  # خطا! تاپل غیرقابل تغییره

به همین دلیل، تاپل‌ها سریع‌تر از لیست‌ها هستن و برای داده‌های ثابت استفاده می‌شن. به عنوان مثال:

colors = ("قرمز", "آبی", "سبز")
print(len(colors))  # 3
print(colors[1:])  # ('آبی', 'سبز')

💡 نکته: اگر بخوای تاپل رو تغییر بدی، باید به لیست تبدیلش کنی: list(colors).

دیکشنری‌ها: کلید و مقدار 🗂️

دیکشنری‌ها با {} تعریف می‌شن و داده‌ها رو به صورت کلید-مقدار ذخیره می‌کنن. برای مثال، اطلاعات یه نفر:

person = {"name": "علی", "age": 25, "city": "تهران"}
print(person["name"])  # علی
person["job"] = "برنامه‌نویس"  # اضافه
print(person)  # {'name': 'علی', 'age': 25, 'city': 'تهران', 'job': 'برنامه‌نویس'}

علاوه بر این، می‌تونی کلیدها یا مقادیر رو جدا کنی:

print(person.keys())  # dict_keys(['name', 'age', 'city', 'job'])
print(person.values())  # dict_values(['علی', ۲۵, 'تهران', 'برنامه‌نویس'])

💡 نکته: کلیدها باید منحصربه‌فرد باشن، وگرنه مقدار جدید جایگزین قبلی می‌شه.

حلقه روی داده‌ساختارها 🔄

برای مثال، می‌تونی با حلقه for (درس ۲) روی لیست، تاپل یا دیکشنری بگردی:

numbers = [1, 2, 3]
for num in numbers:
    print(num)  # 1, 2, 3

به علاوه، برای دیکشنری از items() استفاده کن:

for key, value in person.items():
    print(f"{key}: {value}")

به عنوان مثال، روی تاپل:

for color in ("قرمز", "آبی"):
    print(color)

💡 نکته: حلقه‌ها داده‌ساختارها رو قوی‌تر می‌کنن. بنابراین، همیشه ترکیبشون با شرط‌ها (درس ۲) رو تست کن.

مقایسه داده‌ساختارها: کدوم رو انتخاب کنی؟ 📊

برای مثال، این جدول بهت کمک می‌کنه بهترین داده‌ساختار رو انتخاب کنی:

داده‌ساختار قابل تغییر اندیس/کلید کاربرد
لیست [] بله اندیس (۰ به بعد) داده‌های متغیر مثل لیست خرید
تاپل () خیر اندیس (۰ به بعد) داده‌های ثابت مثل مختصات
دیکشنری {} بله کلید (منحصربه‌فرد) جستجوی سریع مثل اطلاعات کاربر

بنابراین، برای داده‌های قابل تغییر لیست، برای ثابت تاپل، و برای کلید-مقدار دیکشنری رو انتخاب کن.

مثال‌های عملی: دنیای واقعی 💡

برای مثال، بیایم چند برنامه کاربردی بسازیم:

۱. میانگین نمرات:

grades = [18, 15, 20, 17]
average = sum(grades) / len(grades)
print(f"میانگین: {average:.1f}")

۲. مدیریت لیست خرید:

shopping = ["شیر", "نان", "تخم‌مرغ"]
shopping.append(input("یه مورد اضافه کن: "))
print("لیست خرید:", shopping)

۳. اطلاعات دانش‌آموز:

students = {"علی": 18, "مریم": 19}
name = input("اسم دانش‌آموز: ")
if name in students:
    print(f"نمره {name}: {students[name]}")
else:
    print("دانش‌آموز پیدا نشد!")

به همین دلیل، این مثال‌ها درس‌های ۱ و ۲ رو با داده‌ساختارها ترکیب می‌کنن. کدها رو توی lesson3_examples.py ذخیره کن.

خطاهای رایج و راه‌حل‌ها ⚠️

به طور کلی، این خطاها تو داده‌ساختارها شایعن:

خطا علت راه‌حل
IndexError اندیس خارج از محدوده len() رو چک کن
KeyError کلید وجود نداره با in وجود کلید رو چک کن
TypeError عملیات روی نوع نادرست نوع داده رو با type() چک کن

برای مثال:

lst = [1, 2]
print(lst[5])  # خطا: IndexError
# حل:
if len(lst) > 5:
    print(lst[5])
else:
    print("اندیس نامعتبر!")

تمرین‌ها: مهارتت رو تست کن! 📝

برای تسلط، این ۱۲ تمرین رو حل کن:

  1. مجموع اعداد یه لیست رو حساب کن.
  2. بزرگ‌ترین عدد در یه لیست رو پیدا کن.
  3. اعداد زوج یه لیست رو چاپ کن.
  4. یه دیکشنری رو معکوس کن (کلیدها بشن مقدار و برعکس).
  5. یه لیست رو مرتب کن (با sort()).
  6. تعداد تکرار یه کلمه در لیست رو بشمار.
  7. یه تاپل از ۳ عدد بساز و مجموعشون رو چاپ کن.
  8. دیکشنری دانش‌آموزان (اسم و نمره) بساز و نمره یه نفر رو چاپ کن.
  9. لیست خرید با امکان اضافه و حذف.
  10. بررسی وجود یه عدد در لیست.
  11. لیست رو به دو لیست زوج و فرد تقسیم کن.
  12. یه دیکشنری با ۳ کلید از ورودی کاربر بساز.

💡 نکته: هر تمرین رو توی فایل جدا (ex1.py، ex2.py) ذخیره کن.

پروژه کوچک: لیست خرید هوشمند 🛒

برای مثال، بیایم یه برنامه لیست خرید بسازیم که کاربر بتونه موارد رو اضافه یا حذف کنه:

  1. لیست خالی بساز.
  2. حلقه برای اضافه کردن.
  3. امکان حذف و نمایش.
shopping_list = []
while True:
    print("\n=== لیست خرید ===")
    action = input("اضافه (a)، حذف (r)، نمایش (s)، خروج (q): ")
    if action == "q":
        break
    elif action == "a":
        item = input("مورد جدید: ")
        shopping_list.append(item)
        print(f"{item} اضافه شد!")
    elif action == "r":
        item = input("مورد برای حذف: ")
        if item in shopping_list:
            shopping_list.remove(item)
            print(f"{item} حذف شد!")
        else:
            print("مورد پیدا نشد!")
    elif action == "s":
        print("لیست خرید:", shopping_list)
        print(f"تعداد موارد: {len(shopping_list)}")
print("خداحافظ!")

💡 تست کن: موارد اضافه کن، حذف کن و لیست رو نمایش بده.

سؤالات متداول (FAQ) ❓

به طور کلی، این سؤالات برای مبتدی‌ها رایجه:

  • لیست یا تاپل؟ لیست برای داده‌های متغیر، تاپل برای ثابت.
  • دیکشنری کی استفاده می‌شه؟ وقتی نیاز به جستجوی سریع با کلید داری.
  • چطور خطای اندیس رو رفع کنم؟ با len() محدوده رو چک کن.
  • چطور دیباگ کنم؟ با print محتوای لیست یا دیکشنری رو ببین.

جمع‌بندی و قدم بعدی ⏭️

تبریک! 🚀 تو این درس لیست‌ها، تاپل‌ها و دیکشنری‌ها رو یاد گرفتی و با بیش از ۱۲ مثال و یه پروژه، حسابی مسلط شدی. بنابراین، حالا می‌تونی داده‌های پیچیده رو مدیریت کنی. علاوه بر این، درس بعدی (توابع) بهت یاد می‌ده کدت رو تمیز و قابل‌استفاده مجدد کنی. در نهایت، تمرین‌ها رو توی PythonLessons ذخیره کن و اگه دوست داشتی، توی GitHub آپلود کن تا پیشرفتت رو نشون بدی! 😎

ارسال نظر جدید

گزارش دیدگاه