Python Learningاز صفر تا نوشتن پروژه از حفظ
درس ۴ · پایه‌ها

لیست و تاپل

حدود ۴۰ دقیقه۳ تمرین۶ سؤال آزمون
بعد از این درس می‌توانی:
  • لیست بسازی، به آن اضافه کنی و جمعش را حساب کنی
  • با شماره (index) به خانه‌ها دسترسی داشته باشی
  • تاپل را بشناسی و آن را «باز» (unpack) کنی
  • لیستی از تاپل‌ها و لیستی از دیکشنری‌ها را بخوانی

لیست

لیست چند مقدار را به ترتیب نگه می‌دارد. داخل [] و با کاما جدا می‌شود:

اجرا کن

خودت امتحان کن

Ctrl + Enter
حواست باشد

شماره‌ی خانه‌ها از صفر شروع می‌شود. در لیست سه‌تایی، شماره‌ها ۰، ۱ و ۲ هستند و sales[3] خطای IndexError می‌دهد.

در پروژه‌ی فروشگاه

فروش‌ها در یک لیست نگه داشته می‌شوند: self.sales = [] در خط ۱۱ پروژه، و هر فروش با append در خط ۵۹ پروژه به آخرش اضافه می‌شود.

تمرین

ثبت فروش‌ها

به لیست خالی sales سه عدد 3000، 1500 و 4200 را با append اضافه کن، بعد جمعشان را در total بگذار.

Ctrl + Enter
دیدن راه‌حل (اول خودت تلاش کن)
sales = []
sales.append(3000)
sales.append(1500)
sales.append(4200)
total = sum(sales)

تاپل: لیستی که عوض نمی‌شود

تاپل با () ساخته می‌شود و بعد از ساختن قابل تغییر نیست. برای چیزهای ثابت عالی است، مثل اسم ستون‌های جدول:

Python
columns = ('name', 'buy', 'sell', 'qty')
در پروژه‌ی فروشگاه

اسم ستون‌های جدول در خط ۱۳۶ پروژه یک تاپل است.

باز کردن (unpacking)

اگر تعداد متغیرهای سمت چپ با تعداد اعضا یکی باشد، هر عضو در یک متغیر می‌رود:

اجرا کن

خودت امتحان کن

Ctrl + Enter
در پروژه‌ی فروشگاه

وقتی روی یک ردیف جدول کلیک می‌شود، خط ۱۲۴ پروژه مقدارهای آن ردیف را همین‌طور در چهار متغیر باز می‌کند. و return name, buy, sell, qty در خط ۸۲ پروژه یک تاپل چهارتایی برمی‌گرداند.

تمرین

سود یک ردیف

تاپل row را در چهار متغیر name, buy, sell, qty باز کن و سود کل را در profit بگذار: (sell - buy) * qty.

Ctrl + Enter
دیدن راه‌حل (اول خودت تلاش کن)
row = ("pen", 10, 15, 3)
name, buy, sell, qty = row
profit = (sell - buy) * qty

لیستی از تاپل‌ها

اعضای لیست می‌توانند خودشان تاپل باشند. این روش خوبی برای جفت کردن چیزهاست، مثلاً متن دکمه و کارش:

Python
buttons = [('افزودن کالا', 'add'), ('حذف کالا', 'delete')]
label, action = buttons[0]
print(label)   # افزودن کالا
در پروژه‌ی فروشگاه

لیست buttons در خط ۱۲۹ پروژه و خط ۱۳۰ پروژه دقیقاً همین شکل را دارد، با این فرق که به‌جای متن 'add' خود تابع add آمده است.

مرتب کن

خط‌ها را مرتب کن

این خط‌ها باید یک لیست بسازند، دو فروش اضافه کنند و جمع را چاپ کنند. مرتبشان کن.

  1. sales.append(3000)
  2. total = sum(sales)
  3. sales = []
  4. print(total)
  5. sales.append(1500)

آزمون این درس

برای گذراندن این درس حداقل ۸۰٪ جواب درست لازم است. هر چند بار خواستی می‌توانی دوباره امتحان بدهی.

۱. در sales = [5, 8, 2]، مقدار sales[1] چیست؟
۲. sales.append(4) چه می‌کند؟
۳. فرق اصلی تاپل با لیست؟
۴. بعد از a, b = (1, 2) مقدار b چیست؟
۵. sum([3, 4, 5]) چیست؟
۶. len([]) چیست؟