آموزش پایتون python قسمت یازدهم

1395/1/12 پوریا جهانبخش 4419

سلام خدمت همه علاقه مندان به پایتون.
اگر یادتون باشه در قسمت قبل با چند کلاس و تابع تو کار آشنا شدیم و ساختار داده ای لیست رو معرفی کردیم.

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

_ هم لیست ها و هم رشته ها قابلیت این رو داشتن در اعداد صحیح ضرب بشن.
_ هم لیست ها و هم رشته ها قابلیت این رو داشتند با ساختار داده ای همجنس خودشون جمع بشن.
_میتونستیم با استفاده از براکت ها به کاراکتر ها در رشته ها و به اعضا در لیست دسترسی داشته باشیم و قسمتی از یک رشته یا لیست رو به دلخواه جدا کنیم.
مهمترین فرق این دو ساختار اینه که شما میتونید اعضای موجود در لیست رو تغییر بدید، ولی نمیتونید کاراکتر های موجود در رشته رو تغییر بدید.

آموزش پایتون


در آموزشهای آنلاین وقتی این بحث رو مطرح میکردم بعضی ها میگفتن در رشته ها هم این عمل قابل انجامه و مثال زیر رو براش میزدن.

> > > test = "salam"
> > > test = test[:3]

و با یه نگاه حق به جانب (البته آموزش آنلاین بود ولی خوب این نگاه رو حس میکردم) منتظر جواب بعدی من بودند !

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

خوب برنامه نویسان 0 کیلومتر الان نه میدونن کلاس چیه و نه میدونن تابع چیه !
من هم هنوز صلاح نمیدونم که این دو مبحث رو تدریس کنم، پس چرا میخوام فرقشون رو بگم؟

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

کلاس:
کلاس هم درست مثل تابع میتونه ورودی یا ورودی هایی داشته باشه. تفاوت مهمش اینه که کلاس میتونه شامل چندین تابع باشه.

در واقع کلاس و تابع مثال استان و شهرستان رو دارن!
متد:
یا همون method
به تابع یا تابع هایی که داخل یک کلاس هستند متد گفته میشه.

قبلا هم گفتم که وقتی شما یک رشته میسازید در واقع یک شئ از کلاس ()str میسازید و وقتی دارید یک عدد رو پردازش میکنید دارید یک شئ از کلاس ()int رو پردازش میکنید !

خوب این کلاس ها هم شامل یک سری متد های مفید برای کار کردن با شئ مورد نظر هستند.

این متد ها انقدر مفید هستند و زندگی رو برای برنامه نویسان آسون میکنند که من صلاح دیدم بهتون طرز استفاده ازشون رو یاد بدم قبل از این که به تابع و کلاس برسیم !
کافیه بعد از ساختار داده ای و یا متغیری که ساختار داده ایمون رو توش ذخیره کردیم، با رعایت یک نقطه اسم متد مورد نظر رو که باید در کلاس همون ساختار داده ای باشه، بیاریم! البته همونطور که گفتم متد ها تابع هستند و تابع هم پرانتز داره و میتونه ورودی یا ورودی هایی داشته باشه، که ورودی ها با کاما یا , از هم جدا میشن.

برای مثال فکر کنید میخوایم از متد ()isdigit برای رشته ها استفاده کنیم:

"puriya".isdigit()

یا

test = "puriya"
test.isdigit()

در اینجا به اصطلاح میگیم متد ()isdigit روی رشته ظاهر شده، توجه کنید که هر ساختار داده ای متد های خاص خودش رو داره.
چند متد خوب از کلای ()str :

isdigit() :

اگر رشته ای که این متد روش ظاهر شده باشه، قابل تبدیل به ساختار داده ای عددی باشه، مقدار True رو برمیگردونه و در غیر این صورت مقدار False

split() :

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

lower() :

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

upper() :

درست برعکس ()lower ، یعنی حروف کوچک رو  به حروف بزرگ تبدیل میکنه.

find():

یک رشته به عنوان ورودی دریافت میکنه و در رشته ای که این متد روش ظاهر شده به دنبال اون رشته ورودی میگرده و  اگر پیدا کرد اون رشته رو، عدد ایندکس ابتدای اون رشته ورودیو برمیگردونه و اگر پیدا نشد عدد 1- رو میده.

replace() :

دو رشته قبول میکنه و در رشته ای که روش ظاهر شده جای اون دو رشته ورودی رو با هم عوض میکنه.

تصویر پایین به درک مطلب کمک میکنه :

آموزش پایتون


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

remove() :

یک ورودی میگیره و در صورت وجود اون ورودی در لیستی که متد روش ظاهر شده، اون عضو رو حذف میکنه و توجه کنید که این متد هیچ خروجی نداره و فقط عضو پاک میکنه.

append() :

ورودی رو که بهش میدید به لیستی که روش ظاهر شده اضافه میکنه (به آخر لیست).

index() :

به عنوان ورودی یکی از اعضای موجود در لیستی که روش ظاهر شده رو میگیره و عدد ایندکس اون عضو در لیست رو میده.

تصویر زیر به درک مطالب کمک میکنه:

آموزش پایتون


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

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

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

کلمات کلیدی