دوره های حرفه ای آموزش برنامه نویسی در

آموزش پایتون

متغیرها در پایتون

بیایید با ساده ترین و پر کاربردترین مفهوم در برنامه نویسی پایتون شروع کنیم. یعنی متغیرها

متغیر چیست؟

از یک متغیر برای نگهداری و استفاده مجدد یک مقدار استفاده می کنیم. بیایید یک متغیر تعریف کنیم که به عنوان مثال مبلغ یک محصول را که 25000 تومان است نگهداری می کند:

product_price = 25000

بنابراین دستور تعریف و مقداردهی یک متغیر به این صورت است:

مقدار = نام متغیر

بیایید متغیر دیگری تعریف کنیم که تعداد سفارش کاربر از این محصول را نمایش می دهد:

total_order = 10

حالا می توانیم به مقدار هر متغیر با استفاده از نام آن دسترسی پیدا کنیم. به عنوان مثال برای محاسبه مبلغ کل، می توانیم متغیر product_price را در total_order ضرب کنیم و حاصل این ضرب را در متغیر دیگری با نام total_amount نگهداری کنیم:

total_amount = product_price * total_order

اگر متغیر total_amount را با استفاده از دستور print چاپ کنیم:

product_price = 25000
total_order = 10
total_amount = product_price * total_order
print(total_amount)

 عدد 250000 در خروجی نمایش داده خواهد شد. دستور print مقداری که داخل پرانتزش برای آن مشخص کرده ایم را در خروجی یا همان کنسول چاپ می کند.

نکات مربوط به متغیرها در پایتون

نکته 1: نام  متغیر می تواند دلخواه باشد. مثلا شما می توانید بجای استفاده از نام product_price از نام pp استفاده کنید. بجای total_order از to استفاده کنید و بجای total_amount از ta استفاده کنید و چیزی شبیه به کد زیر را بدست بیاورید:

pp = 25000
to = 10
ta = pp * to
print(ta)

نکته 2: زبان پایتون به کوچک و بزرگ بودن حروف حساس است. بنابراین شما نمی توانید به عنوان مثال product_price را تماما با حروف کوچک استفاده کنید و سپس از آن به صورت دیگری مثلا Product_Price استفاده کنید.

نکته 3: نام متغیر را می توانید بیش از یک کلمه انتخاب کنید. تنها کافیست تمام کلمات را با حروف کوچک تایپ کرده و بین هر کلمه از کارکتر خط زیر _  استفاده کنید. به این روش نامگذاری Snake Case گفته می شود.

نکته 4: می توانیم مقدار یک متغیر را با استفاده از یک مقدار جدید یا با استفاده از مقدار یک متغیر دیگر بروزرسانی کنیم:

price = 10000
price = 8500
print(price)

در این مثال، مقدار 8500 چاپ می شود.

دریافت ورودی از کاربر

همینطور که می توانیم با دستور (یا فانکشن) print مقداری را در خروجی یا همان کنسول نمایش دهیم، با استفاده از فانکشن یا دستور دیگری به نام input می توانیم مقداری را از کاربر دریافت کرده و در متغیری نگهداری کنیم. به عنوان مثال، از کاربر می خواهیم نام و نام خانوادگی اش را وارد کند، سپس یک نام کاربری با استفاده از این مقدار تولید و در خروجی نمایش می دهیم:

name = input('لطفا نام خود را وارد کنید')
surname = input('لطفا نام خانوادگی خود را وارد کنید')
username = name + surname
print(username)

خروجی این برنامه برای نام Behnam و برای نام خانوادگی Khani به صورت زیر خواهد بود:

BehnamKhani

تمرینات این بخش

پاسخ ویدیویی هر تمرین

انواع داده در پایتون

هر مقدار یک نوع داده یا همان Data Type را دارد که در این بخش درباره این موضوع صحبت می کنیم.

انواع داده

نوع داده صحیح:

در زبان پایتون، مقدارها یا داده ها می توانند نوع داشته باشند. به عنوان مثال، متغیر age از نوع عدد صحیح یا Integer است و مقدار یا داده 23 را که یک عدد صحیح است نگهداری می کند:

age = 23

عدد صحیح یا Integer عددی است که هیچ نقطه اعشاری ندارد.

نوع داده اعشاری:

نوع دیگر داده، عدد اعشاری یا Float است. در این مثال، متغیری با نام gravity و با مقدار اعشاریِ 9.81 داریم:

gravity = 9.81

نوع داده رشته ای:

نوع داده دیگری که در زبان پایتون از آن استفاده زیادی خواهید کرد، نوع داده رشته ای یا String است. رشته یا متن بایستی بین کوتیشن قرار بگیرند. در پایتون 3 نوع کوتیشن داریم:

  • Single Quote یا کوتیشن تکی:
website = 'tamrin24.com'
  • Double Quote یا کوتیشن دوتایی
website = "tamrin24.com"
  • Triple Quote یا کوتیشن سه تایی
website = """tamrin24.com"""

در نظر داشته باشید که هر چیزی که بین این کوتیشن ها قرار بگیرد، رشته محسوب می شود. مثلا اگر شما مقدار عددی بین هر کدام از این کوتیشن ها قرار دهید، خاصیت عددی بودن خود را از دست می دهد و پایتون به آن به عنوان یک رشته نگاه می کند. به عنوان مثال پایتون در اجرای این برنامه به خطا بر خواهد خورد:

product_price = "25000"
total_order = "10"
total_amount = product_price * total_order
print(total_amount)

نکته 1: فانکشن input() همیشه یک مقدار رشته ای بر می گرداند، حتی اگر کاربر عددی را وارد کرده باشد.

نوع داده بولین (Boolean)

یکی دیگر از انواع داده پرکاربرد در زبان پایتون، نوع داده بولین است. این نوع داده تنها می تواند دو مقدار داشته باشد، True یا False. دقت داشته باشید که نباید این مقادیر را داخل کوتیشن قرار دهیم. در اینجا چند مثال از نوع داده بولین آورده ام:

مثال 1: متغیری از نوع بولین با نام is_email_valid که مقدار True را نگهداری می کند و بیانگر این است که ایمیل مد نظر ما معتبر است:

is_email_valid = True

مثال 2: متغیری از نوع بولین با نام is_file_exists که مقدار False را نگهداری می کند و بیانگر این است که فایل مد نظر ما وجود ندارد:

is_file_exists = False

نکته 1: سعی کنید در جهت افزایش خوانایی کدهایتان، نام متغیرهایی که از نوع بولین است را به صورت سوالی مطرح کنید. مثل متغیرهای بالا که از is استفاده کرده اند. به این صورت متوجه می شوید که این متغیرها بولین هستند و قرار است تنها یک جواب بله و خیر را در خود نگهداری کنند.

تبدیل نوع داده

تبدیل نوع داده رشته ای به عددی صحیح

در زبان پایتون می توانیم یک مقدار را از یک نوع (مثلا رشته ای، اعشاری، صحیح، بولین) به نوع دیگری تبدیل کنیم. به این عملیات تبدیل نوع یا Type Casting گفته می شود. به عنوان مثال فرض کنید که از کاربر می خواهیم مبلغ یک محصول و تعداد آن را وارد کند و ما مبلغ نهایی را با استفاده از فرمول:

مبلغ * تعداد

بدست آورده و نمایش دهیم. بنابراین از کد زیر استفاده می کنیم:

price = input('لطفا مبلغ محصول را وارد کنید: ')
number_of_products = input('لطفا تعداد محصول را وارد کنید: ')
result = price * number_of_products
print(result)

زمانی که این برنامه را اجرا می کنید، ابتدا مبلغ محصول را از شما دریافت می کند. به عنوان مثال 25000 را به عنوان مبلغ وارد کنید و کلید Enter را بزنید. سپس تعداد را از شما می خواهد. عدد 10 را وارد کنید و کلید Enter را بزنید. میبینید که بجای نمایش result به شما خطا نمایش می دهد. به این دلیل که فانکشن input() یک مقدار رشته ای بر می گرداند. پس در واقع خط سوم را به این صورت در نظر بگیرید:

result = '25000' * '10'

از آنجاییکه نمی توانیم بر روی رشته ها عملیات ضرب انجام دهیم، نیاز است که این رشته ها را به عدد تبدیل کنیم. یعنی نوع داده آنها را از رشته به مثل عدد صحیح تغییر دهیم.  برای تبدیل رشته به عدد صحیح، از فانکشن int() استفاده می کنیم. این فانکشن یک رشته که حاوی تنها کارکتر عدد است را دریافت کرده و آن را به عدد صحیح تبدیل می کند. بنابراین در مثال قبلی، کافی است که از این فانکشن به صورت زیر استفاده کنیم:

price = input('لطفا مبلغ محصول را وارد کنید: ')
number_of_products = input('لطفا تعداد محصول را وارد کنید: ')
result = int(price) * int(number_of_products)
print(result)

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

تبدیل نوع داده عددی به رشته ای

همینطور می توانیم یک عدد (چه صحیح یا اعشاری) را به رشته تبدیل کنیم. به عنوان مثال، زمانیکه می خواهیم یک عدد را به یک رشته بچسبانیم، بایستی ابتدا آن عدد را به رشته تبدیل کنیم. در این مثال، یک رشته را به یک عدد صحیح چسبانده ایم:

message = 'مبلغ: ' + 25000
print(message)

در صورت اجرای این برنامه با خطا مواجه خواهید شد. بنابراین ابتدا با فانکشنی با نام str() عدد را به رشته تبدیل کرده و سپس به رشته دیگر بچسبانید:

message = 'مبلغ: ' + str(25000)
print(message)

تبدیل رشته به نوع داده اعشاری

و زمانیکه شما می خواهید یک رشته که حاوی عدد اعشاری است را به نوع عدد اعشاری تبدیل کنید، از فانکشن float() استفاده کنید.

فانکشن های پرکاربرد بر روی انواع داده

فانکشن های پرکاربرد بر روی انواع داده

در زبان برنامه نویسی پایتون، فانکشن هایی داریم که هر کدام کار خاصی انجام می دهند. به عنوان مثال فانکشن print مقداری را گرفته و آن را چاپ می کند. یا فانکشن input به کاربر اجازه می دهد مقداری را وارد برنامه کند. بیایید هر فانکشن های پرکاربرد را بررسی کنیم.

فانکشن len()

len به معنی طول یا (length) است. این فانکشن یک مقدار رشته ای را گرفته و طول رشته داده شده را بر میگرداند. طول هر رشته، برابر با تعداد کارکترهای آن رشته است. در این مثال، متغیر رشته ای داریم که شامل 16 کارکتر است:

website = "code-academy.net"
result = len(website)
print(result)

بنابراین در خط دوم از این کد، مقدار 16 به متغیر result اختصاص داده می شود و در خط سوم مقدار آن که همان 16 است در خروجی نمایش داده می شود.

پس: فانکشن len() یک مقدار رشته ای را گرفته و یک مقدار عددی صحیح بر میگرداند.

فانکشن round()

این فانکشن دو مقدار می گیرد. مقدار اول یک عدد اعشاری است و مقدار دوم مشخص می کند که تا چند رقم بایستی توسط فانکشن round() گرد شود. نتیجه یک عدد اعشاری خواهد بود که به میزان دلخواه ما گرد شده است. به عنوان مثال، متغیری با نام pi مقدار 3.14159 را نگهداری می کند. ولی ما می توانیم آن عدد را تا دو رقم اعشار نمایش دهیم:

pi = 3.14159
result = round(pi, 2)
print(result)

این برنامه مقدار 3.14 را در خروجی نمایش خواهد داد.

تمرینات این بخش

پاسخ ویدیویی هر تمرین

عملگرها در پایتون

عملگرها بر روی دو عملوند عملیاتی را انجام داده و یک مقدار جدید بر می گردانند. در پایتون چندین نوع عملگر شامل عملگرهای ریاضی، عملگرهای مقایسه ای و عملگرهای رابطه ای وجود دارند.

عملگرهای ریاضی

در پایتون می توانید با استفاده از عملگرهای + * / – بر روی مقادیر عددی عملیات ریاضی انجام دهید:

num1 = 100
num2 = 20
result = num1 + num2

حالت کوتاه این عملگرها به صورت =+ =* =/ =- است. در این مثال، به متغیر age مقدار 5 اضافه شده است:

age = 23
age += 5

از این حالت برای کوتاه تر شدن کد استفاده می شود.

نکته 1: در صورتی که یک عدد اعشاری از عدد اعشاری دیگری کسر شود، نتیجه همیشه اعشاری خواهد بود.

نکته 2: نتیجه یک تقسیم همیشه اعشاری است.

تقدم عملگرهای ریاضی:

در یک عبارت ریاضی، پایتون ابتدا عملگر ضرب و تقسیم و سپس جمع و تفریق را انجام می دهد. بنابراین در این مثال:

result = 5 + 2 * 3
print(result)

خروجی 11 خواهد بود. به این دلیل که پایتون ابتدا عملیات ضرب را انجام می دهد و سپس جمع.

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

result = (5 + 2) * 3
print(result)

نتیجه این کد 21 خواهد بود.

نکته 2: شما همینطور می توانید از پرانتزهای تو در تو استفاده کنید. در این صورت پایتون از داخلی ترین پرانتز شروع به محسابه کرده و به سمت بیرونی ترین پرانتز حرکت می کند.

عملگرهای مقایسه ای

دسته دیگر عملگرها در پایتون، عملگرهای مقایسه ای < <= > >= هستند که برای مقایسه دو مقدار استفاده می شوند. نتیجه مقایسه همیشه یک جواب True یا False یا همان بولین خواهد بود. در این مثال:

result = 10 > 5
print(result)

مقدار result برابر True خواهد شد.

برای بررسی تساوی، از عملگر مقایسه ایِ == استفاده می کنیم.

ترکیب عملگرها

عملگر or

می توان عملگرها را با یکدیگر ترکیب کرد و یک نتیجه جدید به دست آورد. در این مثال، مقدار متغییر اول True و مقدار متغیر دوم False است. حالا با استفاده از عملگر or این دو مقدار را با یکدیگر ترکیب کرده ایم و مقدار True را به دست آورده ایم.

is_raining = True
is_snowing = False
is_umbrella_needed = is_raining or is_snowing
print(is_umbrella_needed)

خط سوم را می توانید به این صورت بخوانید. اگر باران می بارد یا برف می بارد، آنگاه مقدار True را برگردان که در این مثال True به این معنی است که چتر لازم داریم.

اگر یک یا هر دو طرفین عملگر or مقدار True را داشته باشند، حاصل این ترکیب True خواهد بود. در غیر اینصورت مقدار False را بر می گرداند.

عملگر and

با استفاده از عملگر and هم می توانیم دو مقدار بولین (که می تواند حاصل عملگرهای مقایسه ای باشد) را ترکیب کنیم. عملگر and تنها در صورتی True برمی گرداند که هر دو طرف مقدار True داشته باشند. در غیر اینصورت مقدار False را بر می گرداند. در این مثال می بینیم که اگر شخصی 18 سال یا بیشتر باشد و ایرانی باشد می تواند رای دهد:

age = 18
is_iranian = True
can_vote = age >= 18  and is_iranian
print(can_vote)

خروجی این برنامه True است. به این دلیل که سن مساوی با 18 و ایرانی است.

تمرینات این بخش

دستورات شرطی

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

دستور شرطی if

دستور شرطی if یک دستور که مقدار بولین تولید می کند را میگیرد. اگر جواب این دستور True بود، آنگاه کدی که بدنه دستور if نامیده می شود اجرا می شود. و در صورتی که جواب این دستور False باشد، بدنه دستور if نادیده گرفته شده و اجرا نمی شود.

به عنوان مثال، می خواهیم سن کاربر را بگیریم و اگر 18 سال یا بیشتر داشت، انگاه دو پیام به او نمایش دهیم:

age = inputلطفا سن را وارد کنید: ') ')
age = int(age)
if age >= 18:
    printشما می توانید برای دریافت گواهینامه اقدام کنید') ')
    printهمینطور می توانید در رای گیری شرکت کنید') ')

برنامه را اجرا کنید و مقداری بزرگتر یا مساوی 18 وارد کنید. میبینید که دو دستور print اجرا می شوند.

بار دیگر برنامه را اجرا کنید و عددی کوچکتر از 18 وارد کنید. میبینید که چیزی در خروجی نمایش داده نمی شود. به دلیل اینکه شرط داخل حلقه مقدار False بر می گرداند. پس پایتون بدنه if را اجرا نمی کند. بدنه if را با استفاده از یک تورفتگی که با کلید Tab ایجاد کرده ایم مشخص می شود و می تواند شامل یک یا چندین خط باشد. پایان شرط بایستی کارکتر دو نقطه : را قرار دهید.

نکته 1: شما می توانید شرط حلقه را با استفاده از عملگرهای مقایسه ای (مانند مثال بالا) و یا ترکیب آنها با عملگرهای ترکیبی بسازید. به عنوان مثال:

is_raining = True
is_snowing = False
if is_raining or is_snowing:
    print('چتر همراه خود داشته باشید')

در این مثال ابتدا دو مقدار با هم ترکیب می شوند و در صورتی که True برگردانند، شرط برقرار شده و بدنه اجرا می شود.

دستور شرطی if else

در صورتی که بخواهید بدنه ای هم برای زمانیکه شرط برقرار نیست در نظر بگیرید، بایستی از else به این صورت استفاده کنید:

is_raining = True
is_snowing = False
if is_raining or is_snowing:
    print('چتر همراه خود داشته باشید')
else:
    print('چتر نیازی نیست')

در این مثال در صورتی که باران یا برف می بارد، پیغام “چتر همراه خود داشته باشید” نمایش داده می شود و در غیر اینصورت پیغام “چتر نیازی نیست” نمایش داده می شود.

بررسی چندین حالت از یک مقدار

در صورتی که می خواهید چندین حالت از یک مقدار را بررسی کنید، می توانید از elif استفاده کنید. در این مثال، با توجه به ناحیه زندگی کاربر، آدرس آموزش پرورش آن ناحیه چاپ می شود.

user_zone = 1

if user_zone == 1:
    print('تهران، منطقه 1، محله حکمت ')
elif user_zone == 2:
    print('تهران، بزرگراه جلال آباد ')
elif user_zone == 3:
    print('تهران، ونک')

نکته 1: ما می توانیم از else هم در انتهای این دستور شرطی استفاده کنیم.

نکته 2: ما می توانیم هر تعداد elif لازم داشتیم استفاده کنیم. ولی تنها می توان یک if و else در یک دستور شرطی داشت.

تمرینات این بخش

فانکشن های سفارشی

تا اینجا دیدید چطور می توان از فانکشن های آماده استفاده کرد. تنها کافی است اسم آن فانکشن را آورده و اگر مقداری می خواهد به آن بدهیم. هر چند شما می توانید فانکشن های سفارشی خودتان را بنویسید تا:

  • از آنها استفاده مجدد کنید
  • کدهایتان را دسته بندی کنید

جلوتر به معنی هر کدام خواهید رسید.

تعریف فانکشن ساده

بیایید فانکشن سفارشی بنویسیم که به ما خوش آمد گویی می کند:

def say_hello():
    print('Salam Behnam!')

در این مثال یک فانکشن سفارشی داریم که پیغامSalam Behnam! را چاپ می کند. ما برای تعریف یک فانکشن سفارشی، کلمه کلیدی def را تایپ می کنیم، سپس یک نام دلخواه آورده، پرانتز باز و بسته و در نهایت یک دو نقطه : قرار می دهیم. سپس بدنه فانکشن سفارشی را با استفاده از فشار دادن کلید Tab ایجاد و کد مد نظرمان را در آن قرار می دهیم.

حالا اگر برنامه را اجرا کنید، چیزی برای شما نمایش داده نمی شود. به این دلیل که بایستی این فانکشن سفارشی را صدا بزنیم. بنابراین بعد از تعریف فانکشن، اسم فانکشن را صدا بزنید:

say_hello()

مراقب باشید که در بدنه فانکشن این کار را انجام ندهید. کد کامل به این صورت است:

def say_hello():
    print('Salam Behnam!')

say_hello()

تعریف فانکشنی که مقدار ورودی می گیرد

می توانید فانکشن سفارشی بسازید که یک یا چند مقدار ورودی می گیرد و بر اساس آنها کاری انجام می دهد. مثلا فانکشن مثال قبل را جوری تغییر می دهیم که یک نام گرفته و پیغام را بر اساس آن نام چاپ کند:

def say_hello(name):
    print('Salam ' + name + '!')

say_hello('Tina')

برای اینکار باید داخل پرانتز فانکشن متغیری تعریف کنیم که در اینجا متغیری با نام name را موقع تعریف فانکشن تعریف کرده ایم. در این مثال name به عنوان پارامتر فانکشن say_hello() شناخته می شود. سپس موقع صدا زدن فانکشن، باید مقداری که مد نظرمان است را به پارامتر فانکشن سفارشی مان ارسال کنید. در نهایت فانکشن ما بر اساس مقدار ارسالی، یک پیغام در خروجی نمایش می دهد که در این مثال Salam Tina! چاپ می شود.

با اینکار، فانکشن سفارشی ما انعطاف بیشتری خواهد داشت. مثلا می توان با اسامی دیگر هم این فانکشن سفارشی را صدا زد:

def say_hello(name):
    print('Salam ' + name + '!')

say_hello('Tina')
say_hello('Maryam')
say_hello('Behnam')

خروجی این برنامه به صورت زیر خواهد بود:

Salam Tina!
Salam Maryam!
Salam Behnam!

بنابراین می بینید که بجای اینکه 3 بار دستور print را بنویسیم، آن را داخل یک فانکشن سفارشی قرار دادیم و آن فانکشن سفارشی را 3 بار صدا زدیم. با اینکار، یک کد یا یک بار نوشته ایم و سپس از آن استفاده مجدد می کنیم. البته که در این مثال فانکشن سفارشی ما بدنه کوچکی (1 خط) دارد. در پروژه های واقعی، یک فانکشن می تواند از ده خط کد یا صدها خط کد تشکیل شده باشد.

بازگشت مقدار از فانکشن

در صورتی که بخواهید فانکشن شما مقداری برگرداند، می توانید از کلمه کلیدی return استفاده کنید. در اینجا یک فانکشن سفارشی داریم که یک نام و نام خانوادگی دریافت می کند و یک نام کاربری تولید و برمی گرداند:

def generate_username(name, family):
    username = name + family
    return username

result = generate_username('Behnam', 'Khani')
print(result)

همانطور که میبینید این فانکشن دو مقدار می گیرد که هر مقدار با کاما از یکدیگر جدا شده اند. در بدنه این فانکشن ابتدا نام و نام خانوادگی را به هم چسبانده، سپس با کلمه کلیدی return مقدار result را بر می گردانیم. همینطور موقع صدا زدن فانکشن، مقدار برگشت داده شده توسط return در متغیر result قرار داده می شود و در نهایت result را چاپ می کنیم.

مقدار پیشفرض پارامترها

همینطور می توانیم یک مقدار پیشفرض را برای هر پارامتر در نظر بگیریم. در این مثال پارامتر country مقدار پیشفرض Iran را دارد:

def print_info(name, country = 'Iran'):
    print('I am ' + name + ' and I am from ' + country + '.')

print_info('Tina', 'USA')
print_info('Behnam')

خروجی این برنامه به صورت زیر است:

I am Tina and I am from USA.
I am Behnam and I am from Iran.

همانطور که میبینید موقع صدا زدن فانکشن، در صورتی که مقداری برای country ارسال کنیم، همان مقدار استفاده می شود (تینا) و در صورتی  که مقداری را به عنوان country ارسال نکنیم، مقدار پیشفرض که Iran است به عنوان country استفاده می شود.

نکته 1: پارامترهای سفارشی را در انتهای لیست پارامترها تعریف کنید.

نکته 2: بجای اینکه از عملگر + برای چسباندن رشته ها استفاده کنیم، می توانیم از آکولاد به این شکل استفاده کنیم:

print(f'I am {name} from {country}.')

تمرینات این بخش

لیست ها در پایتون

تعریف لیست

تا اینجا دیدید که هر متغیر می تواند تنها یک مقدار را نگهداری کند. در مواقعی که نیاز دارید یک لیست از مقادیر را در یک متغیر ذخیره کنید، بایستی از لیست ها به این صورت استفاده کرد. مثلا لیست محصولات:

products = ['Laptop', 'Camera', 'Smartphone', 'Keyboard']

در این مثال لیستی داریم که 4 مقدار را در خود نگهداری می کند. برای تعریف لیست، باید مقادیر را داخل [ ] قرار داد و هر مقدار را کاما جدا کنیم. حالا اگر این لیست را چاپ کنیم:

print(products)

دقیقا همان لیست چاپ می شود:

['Laptop', 'Camera', 'Smartphone', 'Keyboard']

دسترسی به هر عنصر از لیست

در صورتی که بخواهید به هر عنصر از لیست دسترسی داشته باشید، می توانید از اندیس آن عنصر استفاده کنید. اندیس ها از صفر شروع می شوند. به عنوان مثال اندیس Laptop عدد 0 است و یا اندیس Camera عدد 1 است. به عنوان مثال برای چاپ آخرین آیتم از این لیست، می توانیم از نام لیست و اندیس عنصر به این صورت استفاده کنیم:

products = ['Laptop', 'Camera', 'Smartphone', 'Keyboard']
print(products[3])

فانکشن های پرکاربرد

چند فانکشن پرکاربرد بر روی لیست ها:

فانکشن min() و max()

این فانکشن کوچکترین مقدار از یک لیست عددی را برمیگرداند:

numbers = [5, 4, 1, 10, 7]
result = min(numbers)
print(result)

خروجی این برنامه عدد 1 است.

همینطور از فانکشن max برای پیدا کردن بزرگترین عدد از یک لیست استفاده می کنیم.

فانکشن insert() و append()

این فانکشن یک اندیس و یک مقدار گرفته و مقدار را در لیست و در اندیس مشخص شده درج می کند. مثلا برای درج Mouse به ابتدای لیست، از این دستور استفاده می کنیم:

products = ['Laptop', 'Camera', 'Smartphone', 'Keyboard']
products.insert(0, 'Mouse')
print(products)

خروجی این برنامه:

['Mouse', 'Laptop', 'Camera', 'Smartphone', 'Keyboard']

همینطور می توانید از فانکشن append() برای اضافه کردن یک آیتم جدید به انتهای یک لیست استفاده کنید:

products = ['Laptop', 'Camera', 'Smartphone', 'Keyboard']
products.append('Mouse')
print(products)

خروجی این برنامه:

['Laptop', 'Camera', 'Smartphone', 'Keyboard', 'Mouse']

فانکشن clear() و pop()

از فانکشن clear() برای پاک کردن تمام آیتم های یک لیست استفاده می شود:

products.clear()

و از فانکشن pop() برای حذف آیتم و با استفاده از اندیس آن آیتم استفاده می کنیم. مثلا برای حذف لپتاپ از این لیست، از اندیس صفر استفاده می کنیم:

products = ['Laptop', 'Camera', 'Smartphone', 'Keyboard']
products.pop(0)
print(products)

خروجی:

['Camera', 'Smartphone', 'Keyboard']

تمرینات این بخش

حلقه های تکرار

دسترسی به ایتم های یک لیست با حلقه for

با استفاده از حلقه های تکرار می توانیم به ایتم های داخل یک لیست تک به تک دسترسی داشته باشیم. به عنوان مثال برای چاپ تمام محصولات، از حلقه for به این صورت استفاده می کنیم:

products = ['Laptop', 'Camera', 'Smartphone', 'Keyboard']
for product in products:
    print(product)

خروجی این برنامه به صورت زیر است:

Laptop
Camera
Smartphone
Keyboard

برای اینکار کلمه کلیدی for را تایپ می کنیم، سپس یک نام دلخواه، بعد از آن کلمه کلیدی in، سپس نام لیست و در نهایت : را قرار می دهیم. همینطور یک بدنه برای این دستور مشخص می کنیم. در هر بار تکرار، این بدنه اجرا می شود.

تمرینات این بخش